Ubuntuインストーラーのカスタマイズに関する詳細ガイド


9

事前シードカスタマイズのガイドを読んでみましたが、どのオプションをどのようにどこで変更するかがわかりませんでした。私は、この質問をする実際的な例を通してのみ快適に学ぶことができます。

私はいくつかの特定のタスクを実行するためのソリューションの事前シードとカスタマイズを検討しています:

  • デフォルトでインストールされたパッケージを完全に書き直します。最小限のインストールと同様に、--no-install-recommendsフラグはapt-getです。
  • いくつかの専用アプリケーションをデフォルトのインストールリストに追加する
  • インストールおよびライブセッションで独自のドライバーを自動的にインストールしてマウントする
  • デフォルトでインストールされるアプリケーションのデフォルト設定ファイルを編集します
  • パーミッションとともにパーティションを指定する
  • インストーラーメディア(CD / DVD / USB)のパッケージプールを変更します。できればapt-getと同様のコマンドラインツールを使用してくださいaptitude

上記のことだけを行うようにpreseedオプションを設定する方法を教えていただけますか?

注:プールでパッケージを追加/削除した後、GPGの部分がわかりません。

PS 3番目のポイントは特に重要です。


明確にするために、「Ubuntuインストーラー」はグラフィカル(普遍的)または代替(debian-installer)インストーラーを指しますか?
komputes

@komputes、どちらでもかまいません。
Oxwivi

回答:


6

preseedのリファレンスについては、次のサンプルpreseedが含まれているinstallation-guide-i386を参照してください。

  /usr/share/doc/installation-guide-i386/example-preseed.txt.gz
  • 最小インストールのように、デフォルトでインストールされたパッケージを完全に書き直します
  • いくつかの専用アプリケーションをデフォルトのインストールリストに追加する

インストールするパッケージのリストを提供するには、次の行を探します。

  tasksel tasksel/first   multiselect ubuntu-desktop

「ubuntu-desktop」は、任意の数のパッケージまたはメタパッケージ用に変更できます。

  • インストールおよびライブセッションで独自のドライバーを自動的にインストールしてマウントする

必要なパッケージを指定すること(プロプライエタリドライバー用)を除いて、これがどのように達成されるかはわかりません。補足として、パーティションを「マウント」し、カーネルモジュール/ドライバーを「ロード」します。

  • デフォルトでインストールされるアプリケーションのデフォルト設定ファイルを編集します

このようなスクリプトによる変更を行うには、おそらく次のことを調べたいと思います。

  d-i preseed/late_command string ...

「...」は、たとえばsed -iなどの任意のコマンドに置き換えることができます。

  • パーミッションとともにパーティションを指定する

前述のpreseedの例にはパーティションセクションがあります。

プレシードとユビキタス

キャスパーはプレシードをサポートし、ユビキタスは多くの価値をプレシードすることができます。以下は、ユビキタスに関連して事前シードできる変数の一部です。

ubiquity countrychooser/shortlist select US
ubiquity languagechooser/language-name select English
ubiquity localechooser/supported-locales multiselect en_US.UTF-8
ubiquity ubiquity/summary note
ubiquity ubiquity/reboot boolean true
ubiquity ubiquity/poweroff boolean true
ubiquity ubiquity/success_command string ...

「...」に上記のlate_commandと同じものが含まれる場合、success_commandはユビキティによって読み取られ、late_commandはdiによって読み取られます。


設定ファイルを事前に変更する方法はありませんか?推奨パッケージのインストールを防ぐにはどうすればよいですか?オフラインインストール用の専用パッケージを追加するにはどうすればよいですか?
Oxwivi

ここで説明するように、カスタムイメージを作成するように聞こえます。help.ubuntu.com / community / LiveCDCustomization イメージには、前述のように構成ファイルを変更できるpreseedファイルを含めることもできます。別のアプローチは、一部のカスタマイズ用に独自のパッケージを作成することもできます。
komputes

さて、構成の変更を忘れて、デフォルトでディスクに存在しないパッケージを含めるためにカスタムCDの指示をする必要がありますか?
Oxwivi

画像をマウントし、その内容をディレクトリにコピーし、Ubiquityパラメータを変更しました。どうすれば確定できますか?
Oxwivi 2011年

ISOイメージをファイナライズ/ビルドするには、「CDイメージの作成」と題されたおしゃべりに従ってください:help.ubuntu.com/community/LiveCDCustomization
komputes

3

以下は、変更されたブートイメージを作成します。それをCDに書き込むか、ISOをVMに挿入してテストします。cpioand が必要になりますgenisoimage(これはパッケージと実行可能ファイルの名前です)。

以下はMakefileの形式ですが、対話形式で入力できます。${IN_ISO}元のISOイメージ(-alternativeバージョンを使用しました。同じようにすることをお勧めします)${OUT_ISO}を目的のISO名で参照します。

# Extract the ISO image to mount/ and copy it to cdroot/
cdroot:
    mkdir -p mount
    sudo mount -o loop ${IN_ISO} mount
    mkdir cdroot
    cd cdroot && tar cf - ../mount --transform 's,^mount/,,' | tar xf -
    sudo umount mount && rm -r mount
    chmod -R a+rw cdroot

# Copy new files to the disk. Content of those files is posted below
prepare: cdroot
    cp isolinux.cfg cdroot/isolinux/isolinux.cfg
    test -e ./initrd.orig.gz || cp cdroot/install/initrd.gz ./initrd.orig.gz
    mkdir -p initrd
    cd initrd && gunzip <../initrd.orig.gz | sudo cpio -i && cd ..
    cp preseed.cfg initrd/preseed.cfg
    cd initrd && find . | cpio -o --format=newc | gzip -9 > ../cdroot/install/initrd.gz && cd ..
    sudo rm -rf initrd

# Create the ISO image. Make sure to use extensions for lower-case filenames    
iso: cdroot prepare
    genisoimage -o ${OUT_ISO} \
        -force-rr -J \
        -b isolinux/isolinux.bin -c isolinux/boot.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        cdroot

追加のファイルが必要です。

isolinux.cfgブートローダーを設定します。起動して、自動的にインストールプロセスを実行する必要があります。次のようになります。

default install
label install
  menu label ^Install my custom Ubuntu
  kernel /install/vmlinuz
  append auto initrd=/install/initrd.gz --
# Leave 2 seconds to abort or debug
prompt 1
timeout 20

インストールを実際に構成する前に必要な準備はこれだけです。preseedの例ダウンロードして、 preseed.cfgという名前を付けます。それに目を通し、好きなように編集してください。重要なオプションは次のとおりです。

# Locale
d-i debian-installer/locale string en_US
d-i time/zone string US/Eastern

# Partitioning. The following settings WILL OVERWRITE ANYTHING
# Don't insert the CD into your boss' computer ...
d-i partman-auto/method string regular
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# To create a normal user account.
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string ubuntu
d-i passwd/user-password password insecure
d-i passwd/user-password-again password insecure
d-i user-setup/allow-password-weak boolean true

# Package selection. Don't include ubuntu-desktop to significantly reduce the content
tasksel tasksel/first multiselect standard

#d-i preseed/early_command string driver installation commands (stuff needed to boot)
#d-i preseed/late_command string driver installation commands, custom software, etc.

しかし、上記を例として使用するのではなく、Ubuntuの例をダウンロードしてでニーズに合わせて構成することをおlate_command勧めします。カスタムソフトウェアをインストールして構成するスクリプトをダウンロードして実行するなど、シェルから何でも実行できます。たとえば、これをlate_command次のように使用します。

d-i preseed/late_command string in-target sh -c 'wget https://example.com/my/install.sh && sh install.sh'

または、install.sh上記のinitrdに配置して直接実行することもできます。その内容は次のようになります。

#!/bin/sh
aptitude install -y x11-apps any-package-you-want-installed
wget http://proprietary.com/drivers/for/ubuntu.tar.gz -O- | tar xf - && sh drivers/instal.sh

独自のドライバーインストールルーチンがどのように機能するかによります。


質問で述べたように、リストしたタスクの正確さについてのガイダンスが必要です。インストールする予定のパッケージを書き換えるにはどうすればよいですか?専用ドライバーの自動インストールはどうですか?
Oxwivi

@Oxwivi必要なものすべてをインストールするスクリプトを作成し、それをでダウンロードして実行しlate_commandます。Package selectionは、独自のパッケージをインストールするために使用できる部分ですが、スクリプトで実行することもできます。
phihag

1
@Oxwivi jockeyをインストールして、後でaptitude purge jockeyスクリプトで削除できます。「あらゆる種類のプロプライエタリドライバーをインストールする一般的な方法」の意味がわかりません。これは、制限されたドライバーをインストールするための一般的な方法です。インストールするドライバーのパッケージをタスクセルまたは後aptitude install -yのスクリプトに挿入するだけで機能します。イメージを複数のマシンで動作させたい場合は、該当するすべての専用ドライバーをjockeyに問い合わせる方法を見つける必要があるでしょう。...
phihag

1
@Ocwivi ...ただし、一般に、使用可能なすべてのプロプライエタリドライバーをインストールすることは好ましくありません。通常、プロプライエタリドライバーは古く、サポートされておらず、追加の非標準構成が必要です。また、フリーでないドライバーを配布することが法的に許可されていることを確認する必要があります。
phihag

1
@Oxwivi誰もが自由でないリポジトリに何でも置くことができることを考えると、その信頼は根拠のないものです。ただし、この議論はこの質問の範囲外です(事前シードについて)。現在のシステムに適用可能な独自のドライバーのリストを取得する方法を尋ねる必要があります。
phihag
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.