web-dev-qa-db-ja.com

Ubuntu 14.04でキックスタートサーバーを作成する手順

Ubuntu 14.04 LTSでキックスタートサーバーを作成するには、手順を追った手順が必要です

1
suresh

これは適切なステップバイステップガイドです

TL; DR;カスタム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 mount -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

次に、次のセクションの追加行を置き換える必要があります

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ドライブをインストールする準備ができました!

1
Andrea D'Ubaldo

完全なソリューション:

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-serverftp、およびbuild-essentialパッケージが追加されます。

プレシードファイルを追加して、他の質問を抑制します

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を追加行に追加します。 quietvga=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

それでおしまい。入力すると、Ubuntuシステムを起動するとインストールされるCDがあります。

必要に応じてks.cfgおよびpreseedファイルを微調整します。

0
remoteitguy