カスタマイズされたUbuntuサーバーISOを作成する方法は?


42

カスタマイズされたUbuntu Server 12.04 ISOを作成したいのですが、その方法に関する明確なアプローチが見つかりませんでした。Ubuntuビルダーは、カスタマイズされたUbuntuデスクトップを作成するのに非常に優れたアプリだと思いますが、Ubuntu Serverはどうですか?

回答:


61

ダウンロード

この場所から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/
  • 1つのエラーメッセージがスローされます。 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 オプションを識別するために使用できる単なるラベルです。
  • 「カスタムUbuntuサーバーのインストール」は、ブートメニューに表示されるテキストです。
  • あなたは、メニューオプションデフォルトのものにしたい場合は、あなただけ変更する必要がありますdefault installdefault myownoption

例:

ここに画像の説明を入力してください

ファイルの編集(nanoを使用しましたが、可能であればgedit、vim、または別のエディターを使用します)。このファイルに追加したのは、「lampserver」をラベルとして使用し、シードも「lampserver」という名前になります。

ここに画像の説明を入力してください

キックスタート(構成ファイルのグラフィカルなセットアップ)

Red Hat Kickstartのインストール方法は、主に(排他的ではありませんが)Red Hat Enterprise Linuxオペレーティングシステムによって使用され、オペレーティングシステムの無人インストールと設定を自動的に実行します。

Ubuntuのpreseeding / kickstartに関するドキュメント。Ubuntuでは、キックスタート(およびpreseed)のサポートが制限されています。不足しているものの1つはpreseedのグラフィカルインターフェイスです。Kickstartにこのためのオプションあります(画像を参照)が、Ubuntuでは機能しないようです。ただし、これは手動で行うことができます(以下の事前シードを参照)。

キックスタートのインストールと開始:

sudo apt-get install system-config-kickstart
ksconfig

**警告**

キックスタートはUbuntu 13.10でバグがあり、起動時にエラーが発生します。ここに修正があります。コメント内のパッチをテキストファイルに入れて保存し(「パッチ」と名付けました)、コミットします。

ここに画像の説明を入力してください

その後は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コマンドラインから始めました。

ここに画像の説明を入力してください

そして、プロジェクトに保存します:

ここに画像の説明を入力してください

事前シード(構成ファイルの手動セットアップ)

Preseedは、インストールの実行中に手動で回答を入力することなく、インストールプロセス中に尋ねられた質問に対する回答を設定する方法を提供します。これにより、ほとんどのタイプのインストールを完全に自動化することができ、通常のインストールでは利用できない機能も提供します。

通常のインストールの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

  • debconf設定を使用して説明/例
  • サンプルpreseedファイル
  • :ローカリゼーション、ネットワーク構成、ネットワークコンソール、クロックと時刻、パーティション分割
  • 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/
  • 2行目は新しいチェックサムを作成し、パッケージを追加するときにのみ必要です。
  • 3番目はプロジェクトからISOを作成し、DVDに書き込むことができます。

結果:

ここに画像の説明を入力してください

そして今、あなたは実際にそれを焼いてインストールすることによってそれを試すことができます。仮想マシンとして使用することをお勧めします。最初に作成された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など)が不要なタスクセル行を捨てる


これはデスクトップバージョンに使用できますか?
Braiam 14年

どうもありがとうございます!!このプロセスを簡単かつスムーズにするために本当に感謝しているわけではありません!VirtualBoxをインストールし、カスタマイズしたサーバーをインストールすることを選択した後、1つの問題が発生しました。このエラーメッセージが表示されました。有効なXHTML
シャディン14年

はい、しました。あなたは私のシードファイルを見てみるならば、実際に私が好む[ megafileupload.com/en/file/493602/...私は、ファイルの末尾にパッケージを追加方法についてはよく分からない
Shadin

ああ!ありがとう!それを試して、あなたに戻ってきます。また、このプロセス中にメールサーバー、Webサーバー、JBOSSなどのイメージから追加のサーバーを削除する方法があるかどうかを知りたいと思います。postgresqlとそのパッケージのみを含めたいです。
シャディン14年

2
@shadinは大丈夫ですLucioがそれをどのように行うか見てください;-)コメントを整理しました。Braiam:はい、できます。デスクトップ上で変更することはもっとたくさんありますが、これはスタートです(パッチを当てるとキックスタートも機能しますが、Ubuntuでサポートが制限されています)。
リンツウィンド14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.