カスタマイズされたUbuntu Server 12.04 ISOを作成したいのですが、その方法に関する明確なアプローチが見つかりませんでした。 Ubuntuビルダーは、カスタマイズされたUbuntuデスクトップを作成するのに非常に優れたアプリだと思いますが、Ubuntu Serverはどうですか?
ダウンロード
この場所 からUbuntuサーバーISOをダウンロードします。 32ビットまたは64ビットに移行するオプションがあります。サーバーエディションのファイル名は次のようになります。
ubuntu-13.10-server-i386.iso
ubuntu-13.10-server-AMD64.iso
次の手順では13.10 64ビットバージョンを想定しているため、ダウンロードしたコマンドを調整します。プロジェクトの改善が必要な場合に備えて、元のダウンロードから複数の新しいバージョンを作成できるように、ダウンロードのコピーを保管してください。また、すべての作業を行うために~/Downloads/
を使用すると仮定します。
初期セットアップ
これにより、ダウンロードディレクトリ内に2つのディレクトリ「iso」と「isoNew」が作成され、ISOがマウントされ、コンテンツが「iso」から「isoNew」にコピーされ、新しいプロジェクトが開始されます。
これをテキストファイルに入れて保存し、実行可能にして実行します。
# Ubuntu custom server
# rinzwind askubuntu.com
# topic: http://askubuntu.com/questions/409607/how-to-create-a-customized-ubuntu-server-iso/409651#409651
cd ~/Downloads/
mkdir -p iso newIso
Sudo mount -o loop ./ubuntu-13.10-server-AMD64.iso ./iso
Sudo cp -r ./iso/* ./newIso/
Sudo cp -r ./iso/.disk/ ./newIso/
Sudo umount ./iso/
cd ~/Downloads/newIso/
mount: block device /discworld/Downloads/ubuntu-13.10-server-AMD64.iso is write-protected, mounting read-only
これがどのように見えるかのサンプル画像:
実行中:
結果:
ブートメニューオプションの追加
インストーラのメニューオプションはisolinux/txt.cfg
に保存されており、default install
とlabel install
の間に新しいオプションを作成できます。
これにより、「カスタムUbuntuサーバーのインストール」という新しいオプションが作成され、キックスタートファイルが追加されます(キックスタートファイルはオプションの変更に使用されます。以下で説明します)。
label myownoption
menu label ^Install Custom Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-custom.seed initrd=/install/initrd.gz quiet ks=cdrom:/preseed/ks-custom.cfg --
myownoption
は、オプションを識別するために使用できる単なるラベルです。default install
をdefault myownoption
に変更するだけです。例:
ファイルを編集します(nanoを使用しましたが、可能であればgedit、vim、または別のエディターを使用します)。これは、このファイルに追加したもので、「lampserver」をラベルとして使用し、シードも「lampserver」という名前になります。
キックスタート(設定ファイルをグラフィカルに設定)
Red Hat Kickstartのインストール方法は、主に(排他的ではありませんが)Red Hat Enterprise Linuxオペレーティングシステムで使用され、オペレーティングシステムの無人インストールと設定を自動的に実行します。
buntuのpreseeding/kickstartに関するドキュメント 。 Ubuntuでは、キックスタート(およびpreseed)のサポートが制限されています。不足しているものの1つはpreseedのグラフィカルインターフェイスです。 Kickstartdoesにはこれに関するオプションがあります(画像を参照)が、これらはUbuntuでは機能しないようです。ただし、これは手動で行うことができます(以下の事前シードを参照)。
キックスタートのインストールと開始:
Sudo apt-get install system-config-kickstart
ksconfig
**警告**
キックスタートはUbuntu 13.10でバグがあり、起動するとエラーになります。 これは修正です 。コメント内のパッチをテキストファイルに入れて保存し(「patch」と名付けました)、コミットします。
その後ksconfig
が機能し、多くのオプションを操作できる設定エディターが起動します。
設定可能なすべてのオプションの説明については、 Red Hat Linux 7.2:オフィシャルRed Hat Linuxカスタマイズガイド を参照してください。
完了したら、変更をks.cfg
ファイルに保存し、変更するISOにコピーします。
Sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg
ks-custom.cfg
に~/Downloads/newIso/preseed/
として保存することもできます。資格情報を挿入した例。コマンドラインからSudo ksconfig
で始めました。
そして、プロジェクトに保存します:
Preseeding(設定ファイルの手動設定)
Preseeding は、インストールの実行中に手動で回答を入力することなく、インストールプロセス中に尋ねられる質問への回答を設定する方法を提供します。これにより、ほとんどのタイプのインストールを完全に自動化することができ、通常のインストールでは利用できない機能も提供します。
通常のインストールのpreseedを独自のラベルにコピーします。
Sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
myownoption
を使用したものに変更します。設定を変更します。 debconf-get-selections
からdebconf-utils
を使用すると、特定のソフトウェアで使用できるパラメーターを調査できます。
これの設定例:
そして、taskselでインストールするランプサーバーを追加します。
パッケージ「openssh」および「build-essential」を追加する場合、これをシードファイルに含めることができます。
d-i pkgsel/include string openssh-server build-essential
Opensshの例:
debconf-get-selections | grep openssh
openssh-server ssh/vulnerable_Host_keys note
openssh-server ssh/use_old_init_script boolean true
openssh-server ssh/encrypted_Host_key_but_no_keygen note
openssh-server ssh/disable_cr_auth boolean false
これらのオプションをcustom-iso/preseed/ubuntu-myownoption.seed
に追加できます。
Preseedファイルの最後に、次のようなパッケージ(ランダムな例)を追加できます。
%packages openssh-server mysql-server Apache2
オフラインインストール
パッケージを追加し、それらがISOにない場合、インストーラーはこれらをリポジトリからダウンロードします。アクティブなインターネット接続がない場合、これは問題になるため、これらのパッケージ(および依存関係)をプロジェクトに追加して、DVDに書き込む必要があります。幸いなことに、通常のサーバーISOには十分なスペースがありますが、注意してください。CDやDVDのサイズには制限があります。
必要なすべてのDEBパッケージをダウンロードし、~/Downloads/
に保存します。これらの2つのディレクトリは、新しいISOで必要です。
mkdir -p ~/Downloads/newIso/dists/stable/extras/binary-i386
mkdir -p ~/Downloads/newIso/pool/extras/
Sudo cp ~/Downloads/*.deb newIso/pool/extras/
これにより、プロジェクトが新しいパッケージで更新されます。
cd ~/Downloads/newIso
Sudo apt-ftparchive packages ./pool/extras/ > dists/stable/extras/binary-i386/Packages
Sudo gzip -c ./dists/stable/extras/binary-i386/Packages | tee ./dists/stable/extras/binary-i386/Packages.gz > /dev/null
cd ~/Downloads/
ISOを作成します
cd ~/Downloads/
Sudo md5sum `find ! -name “md5sum.txt” ! -path “./isolinux/*” -follow -type f` > md5sum.txt
Sudo mkisofs -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/isolinux.cat -o ./ubuntu-13.10-myowninstall-AMD64.iso -joliet-long newIso/
結果:
そして今、あなたは実際にそれを焼いてインストールすることによってそれを試すことができます。仮想マシンとして使用することをお勧めします。最初に作成されたISOをテストする方が高速になるためです(そうでない場合は再起動を続けます)。
VirtualBoxをインストールすると、次のメニューが表示されます。
バグハンティング
インストール中に1つの問題が発生しました:デフォルトは選択されていません。
シャディン。 シードファイル コメント中
### Package Selection
tasksel tasksel/first multiselect Custom-Ubuntu-Server
d-i pkgsel/include string openssh-server build-essential
%packages openssh-server postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3
おそらく次のようにする必要があります。
### Package Selection
tasksel tasksel/first multiselect lamp-server
d-i pkgsel/include string openssh-server build-essential postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3
LAMPサーバー(Apache、Mysql、Phpなど)が不要なタスクセル行を捨てる