web-dev-qa-db-ja.com

事前シードされたネットワークインストールがUSBインストールドライブを上書きしています

私がやっていることについて、できる限り多くの情報を提供させてください。

私は100以上のサーバーシステムを管理するラボ開発環境で働いています。私たちは頻繁に異なるオペレーティングシステムでシステムのイメージを再作成する必要があり、これをすばやく簡単に行うためにCloneZillaを使用しています。 CloneZillaはUSBドライブにインストールされ、そのgrub.cfgファイルはさまざまなOSインストーラーを起動するように構成されています。オペレーティングシステムの1つ(ご想像のとおり)はUbuntu(14.04と16.04の両方)です。 Ubuntuのネットワークインストーラーを起動し、ローカルWebサーバーからpreseed/kickstartファイルを読み込むように構成されています。

#Generated by Kickstart Configurator
#platform=AMD64 or Intel EM64T

#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone --utc America/Los_Angeles
#Root password
rootpw --disabled
#Initial user
user lab --fullname "Lab" --iscrypted --password $1$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use Web installation
url --url http://ubuntu.osuosl.org/ubuntu
preseed mirror/http/proxy string "http://proxy.corp.com:123"
#System bootloader configuration
#bootloader --location=mbr 
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel 
#System authorization infomation
auth  --useshadow  --enablemd5 
#Network information
network --bootproto=dhcp 
#Firewall configuration
firewall --disabled 
#Do not configure the X Window System
skipx

#preseed functions
preseed base-installer/kernel/image string linux-image-generic
preseed base-installer/kernel/override-image string linux-image-generic
preseed clock-setup/ntp-server string pool.ntp.org
preseed partman-auto/choose_recipe select atomic
preseed partman-auto/disk string /dev/sda
preseed partman-auto/method string regular
preseed partman/choose_partition select finish
preseed partman/confirm boolean true
preseed partman/confirm_nooverwrite boolean true
preseed partman/default_filesystem string ext4
preseed partman-lvm/confirm boolean true
preseed partman-lvm/device_remove_lvm boolean true
preseed partman-md/confirm boolean true
preseed partman-md/device_remove_md boolean true
preseed partman-partitioning/choose_label string gpt
preseed partman-partitioning/confirm_write_new_label boolean true
preseed partman-efi/non_efi_system boolean true
preseed pkgsel/update-policy select unattended-upgrades
preseed grub-installer/only_debian boolean true
preseed grub-installer/with_other_os boolean true
preseed netcfg/get_hostname string hostname
preseed netcfg/get_domain string domain

# auto method must be lvm
preseed partman-basicfilesystems/choose_label string gpt
preseed partman-basicfilesystems/default_label string gpt
preseed partman-partitioning/default_label string gpt
preseed partman/choose_label string gpt
preseed partman/default_label string gpt
preseed partman-auto/text/boot-root-all :: \
1 1 1 free \
$gptonly{ } \
$primary{ } \
$bios_boot{ } \
method{ biosgrub } \
. \
512 100 512 vfat \
$gptonly{ } \
$primary{ } \
method{ efi } \
format{ } \
$lvmignore{ } \
mountpoint{ /boot/efi } \
.\
128 512 256 ext2 \
$defaultignore{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext2 } \
mountpoint{ /boot } \
. \
1024 4096 -1 ext4 \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
.

preseed partman-auto/choose_recipe select boot-root-all
# This makes partman automatically partition without confirmation, provided
# that you told it what to do using one of the methods above.
preseed partman-partitioning/confirm_write_new_label boolean true
preseed partman/choose_partition select finish
preseed partman-md/confirm boolean true
preseed partman/confirm boolean true
preseed partman/confirm_nooverwrite boolean true

# This is fairly safe to set, it makes grub install automatically to the MBR
# if no other operating system is detected on the machine.
preseed grub-installer/only_debian boolean true
preseed grub-installer/with_other_os boolean true
preseed grub-installer/bootdev string /dev/sda

#addtional packages
%packages --resolvedeps
openssh-server
libvirt-bin
vim
libpam-systemd
dbus
bash-completion

これは、Ubuntu 16.04のpreseed/kickstartファイルです(識別情報が一部削除されています)。

ネットワークインストーラーが正常に起動し、自動インストールプロセスを開始します。ただし、ローカルハードドライブまたはSSDにインストールする代わりに、USBインストールドライブにインストールして、CloneZillaイメージを上書きします。

他のオペレーティングシステムは、独自のローカルインストーラーまたはネットワークインストーラーを使用してCloneZillaから正常にインストールされます。 Ubuntuに問題があるようです。

現在の回避策は、ネットワークインストーラの起動を確認して初期化を開始したら、USBドライブをシステムからすぐに引き出すことです。ネットワークインストーラーは既にRAMにロードされているため、続行してローカルドライブのみを検出します。ネットワークインストーラーはRAM =そして、あなたが遅すぎる場合、USBドライブは通常すでに破損しています。

インストーラーにソースメディアデバイスを無視するように設定オプションを見つけることを期待してpartmanのドキュメントを検索しましたが、ネットワークインストールであるため、これを行う方法はありません。

この問題を解決するpreseed/kickstart構成オプションを知っている人はいますか?

2
Bradley Odell

問題はあなたが綴っているようです:

preseed partman-auto/disk string /dev/sda

そしてUSBは/dev/sda

インストーラーは正しいディスクを見つけるのに十分スマートで、この行を削除できると思います。それ以外の場合は、使用するドライブをスペルアウトする必要があります。

2
j1mc