Ubuntu 14.04 LTS でキックスタート サーバーを作成するための手順が必要です
答え1
要約; カスタム ISO を再パックした後、isohybrid を使用します
この USB を作成するために、Ubuntu 14.04 がインストールされた仮想マシンを使用しました。ここでの目標は、キーボード レイアウトや言語などの選択を必要としない起動可能な USB を作成することです。Ubuntu サーバーを自動的にインストールしたいと考えています。
インストール用にカスタマイズする Ubuntu イメージを取得する必要があります。
wget http://releases.ubuntu.com/14.04/ubuntu-14.04.2-server-amd64.iso
解凍した ISO ファイルをマウントする場所が必要になります。
sudo mkdir -p /mnt/iso
マウントポイントを作成したら、マウントする必要があります。これにより、ISO 内に保持されているファイルが公開されます。残念ながら、ファイルは読み取り専用になります。
. sudo マウント -o loop ubuntu-14.04.2-server-amd64.iso /mnt/iso
ファイルを変更するには、変更できるディレクトリにファイルをコピーする必要があるため、ディレクトリを作成してそこにファイルをコピーします。
sudo mkdir -p /opt/ubuntuiso sudo cp -rT /mnt/iso /opt/ubuntuiso
新しい作業ディレクトリは/opt/ubuntuisoになります
cd /opt/ubuntuiso
インストール プロセスで言語の選択を求められないようにするには、使用する言語を指定する必要があります。この場合、私は英語を話すので en が使用されます。
echo en | sudo tee isolinux/lang
ここで、system-config-kickstart というプログラムを使用して、実際にキックスタート ファイルを作成します。インストールされていることを確認してから実行します。
sudo apt-get install system-config-kickstart system-config-kickstart
次に、GUIからファイルを保存します
/opt/ubuntuiso/
。これにより、ks.cfgというファイルが保存されます。私のks.cfgは次のようになります。#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 America/Denver #Root password rootpw --disabled #Initial user user ubuntu --fullname "ubuntu" --iscrypted --password $1$MQ0zGB4W$pwjX8nolgr2RJch2Omamt. #Reboot after installation reboot #Use text mode install text #Install OS instead of upgrade install #Use CDROM installation media cdrom #System bootloader configuration bootloader --location=mbr #Clear the Master Boot Record zerombr yes #Partition clearing information clearpart --all --initlabel #Disk partitioning information part /boot --fstype ext2 --size 100 --asprimary part swap --recommended part / --fstype ext4 --size 1 --grow #System authorization infomation auth --useshadow --enablemd5 #Network information network --bootproto=dhcp --device=eth0 #Firewall configuration firewall --disabled #Do not configure the X Window System skipx %post #!/bin/bash exec < /dev/tty6 > /dev/tty6 chvt 6 echo 'Acquire::http { Proxy "http://10.2.4.27"; };' > /etc/apt/apt.conf.d/02proxy apt-get update apt-get -y upgrade apt-get -y dist-upgrade apt-get install -y git ansible openssh-server vim chvt 1
ポストスクリプト ( の後のすべて) では、少しだけハイジャックが行われています
%post
。 exec で始まる行とそれに続く行 (chvt 6
) は、インストーラーに、その後に実行されるコマンドの出力を表示するように強制しています。 その理由は、インストール中に読み込みバーが動かず、インストーラーがハングしたように見えることがあるためです。 プロキシを実行する次の行は、ローカル ネットワーク上の apt-cache 用です。 最後の行 (chvt 1
) は、出力をメイン インストーラーに戻します。ここで、他の質問を回避するために、preseed ファイルを追加する必要があります。
echo 'd-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Finish partitioning and write changes to disk d-i partman/confirm boolean true' | sudo tee ks.preseed
ここで、インストーラーに保存したファイルについて通知する必要があるため、isolinux/txt.cfg を変更する必要があります。まず、ファイルを書き込み可能にする必要があります。
sudo chmod +w isolinux/txt.cfg
次に、次のセクションのappend行を置き換える必要があります。
label install menu label ^Install Ubuntu Server kernel /install/vmlinuz append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
追加行を次のように置き換えます。
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
ファイルを保存して終了します。また、ファイルを元の状態に戻す必要があるため、書き込み権限を削除します。
sudo chmod -w isolinux/txt.cfg
次に、起動可能な USB を作成するために使用する新しい ISO ファイルを作成します。
sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso
USB 用の起動可能な ISO を完成させるには、それをハイブリッド化する必要があります。
sudo isohybrid /opt/autoinstall.iso
ハイブリッド化した後、USB ドライブにプッシュできます。仮想マシンの USB ドライブは に表示されます
/dev/sdb
が、正しいラベルを使用する必要があるため、それに応じて X を置き換えます。USB ドライブがマウント解除されていることを確認します。sudo umount /dev/sdX
最後に、ISO を USB ドライブにプッシュします。(注意: これにより、ターゲット デバイスのデータが破壊されます。何をしているのかをよく理解してください)
sudo dd if=/opt/autoinstall.iso of=/dev/sdX
これで、USB ドライブのインストール準備が完了しました。
答え2
完全なソリューション:
CD をリマスターします。つまり、非グラフィカル Ubuntu インストール ISO (サーバーまたは代替インストール CD) をダウンロードしてマウントします。この場合、Ubuntu 14 ISO です。
sudo mkdir -p /mnt/iso
sudo mount -o loop ubuntu.iso /mnt/iso
関連するファイルを別のディレクトリにコピーします
sudo mkdir -p /opt/ubuntuiso
sudo cp -rT /mnt/iso /opt/ubuntuiso
言語選択メニューが表示されないようにする
cd /opt/ubuntuiso
echo en | sudo tee isolinux/lang
GUIプログラムを使用して、キックスタートファイルを追加します。ks.cfg
sudo apt-get install system-config-kickstart
system-config-kickstart # save file to ks.cfg
インストール用のパッケージを追加するには、キックスタート ファイル%package
にセクションを追加し、次のような内容をファイルks.cfg
の末尾に追加します。ks.cfg
%packages
@ ubuntu-server
openssh-server
ftp
build-essential
これにより、ubuntu-server「バンドル」がインストールされ、、およびパッケージが追加されopenssh-server
ます。ftp
build-essential
他の質問を抑制するためにpreseedファイルを追加する
echo 'd-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true' | sudo tee ks.preseed
キックスタートとpreseedファイルを使用するようにブートコマンドラインを設定する
sudo nano isolinux/txt.cfg
検索する
label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
追加行にks=cdrom:/ks.cfg
とを追加します。と の単語は削除できます。次のようになります。preseed/file=/cdrom/ks.preseed
quiet
vga=788
append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
新しいISOを作成します
sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso
これで完了です。CD から起動すると、何も入力しなくても Ubuntu システムがインストールされます。
必要に応じて ks.cfg および preseed ファイルを調整します。