回答:
filesystem.manifestは次のコマンドで生成されます:
dpkg-query -W --showformat='${Package} ${Version}\n' > casper/filesystem.manifest
したがってpackage_name version
、構文は、例:
xserver-xorg-video-nouveau 1:0.0.16+git20110411+8378443-1
の形式dpkg --get-selections
は少し異なりますが、package_name install
例
xserver-xorg-video-nouveau install
そのため、おそらく1つ以上の方法でファイルを使用できます。
apt-get install -y $(awk '{print $1}' filesystem.manifest)
正直に言うと、長年にわたっていくつかのカスタムisoを作成した後、それがどのように機能するかについて学習曲線があります。いくつかのことを理解すれば、それほど難しくはありません。ただ単に必要な知識が適度に大きく、最新の単一の情報源がないということです。
2つのビルドディレクトリを使用します
~/custom - build directory for the iso
~/rootfs - build directory for the root file system.
カスタム -このディレクトリには、最終ISOに移動するすべてのファイルが含まれます。ルートファイルシステム、カーネル、initramfs、およびisolinuxが含まれています。
rootfs-このディレクトリにはライブCDファイルシステムが含まれており、このディレクトリを圧縮して(mksquashfsを使用)、CDに含めます。これをdebootstrapでビルドする(ライブDを最初から作成する)か、ubuntu-desktop.isoからファイルシステムを抽出します(ライブCDをカスタマイズします)。詳細については、以下のubuntu wikiリンクをご覧ください。
1) mksquashfsを理解する-mksquashfsを使用してルートファイルシステムを圧縮しますcasper/filesystem.squashfs
sudo mksquashfs /home/bodhi/rootfs custom/casper/filesystem.squashfs
2) isolinuxを理解する-これにより、iso(およびCD(ブート)メニューがブート可能になります)。Arch Linux Wiki syslinuxをご覧ください。
isolinuxの代替としてgrub2を使用できますが、grub2の動作を理解する必要があります;)。ほとんどのライブCDはまだisolinuxを使用しています。
3) initramfsの作成方法。initramfsは、ブートに使用される2番目のファイルシステムです。多くの場合、問題(カスタムブートイメージが機能せず、カーネルモジュールがロードされない)があり、ルートファイルシステムを見る理由がわからない場合、答えはinitramfsにある可能性が非常に高いです。
#extract to a working_directory , I use ~/initrd
cd ~/initrd
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames
# Make your edits / adjustments
# Package
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../custom.initrd.lz
次に、新しいinitrd.lzをカスタムビルドディレクトリに移動し、 custom/casper/initrd.lz
4)キャスパー。キャスパーとキャスパースクリプトは3つの場所にあり、3つすべてが役割を果たすことができます。これらはすべてbashスクリプトであり、ある時点で、ほぼ確実にそれらを調べたいと思うでしょう。
ホスト - /usr/share/initramfs-tools/scripts/casper
B.ルートファイルシステム-custom / usr / share / initramfs-tools / scripts / casper
C. initramfs内-/ scriptsディレクトリを参照してください。
Ubuntu Man Casperを参照してください
5)であなたはユーザーインタフェース/アプリケーションへのカスタマイズを行う/usr/share
、/usr/share/gnome*
例えば、正確な位置は、リリースによって変化し、/usr/share/gnome-background-properties/ubuntu-wallpapers.xml
バージョン間の古典とかなり標準です。
6)でカスタマイズを行うことができない場合/usr/share/
、を使用/etc/skel
します。これ/etc/skel/.bashrc
はクラシックです。そのファイルは〜/ .bashrcにコピーされます。firefoxやgnomeなどのさまざまなconfgファイルをそこに配置できますが、可能な場合は/ usr / shareの方が適しています(設定によって異なります)。
7) mkisofs-mkisofsを使用して、ビルドディレクトリをisoに変換します
cd ~/custom
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-12.04-custom.iso .
8)永続性。永続性は、ubuntu-desktop cdやカスタムcdを含む多くのライブCDで使用できます。これはcasperによって実装されます。
A. root-casperはcasper-rw
、牛オーバーレイとしてラベル付けされたパーティションまたはファイルを/にマウントします。その後、パッケージをインストールするか、構成ファイルを変更すると、変更は再起動後も保持されます。
これは控えめに使用してください。すべてのパッケージを更新すると、多くのスペースが必要になります。また、この方法にはバグがあることもあります。
B.ホーム-キャスパーシルはhome-rw
、/ homeにaasというラベルの付いたパーティションまたはファイルを牛のオーバーレイとしてマウントします。
これは、Firefoxのブックマークとプライベートデータがブート後も保持され、信頼性が高いためです。
永続的ホーム(永続的/の場合はcasper-rwに変更)
# this is a 1 Gb file, increase or decrease the count to make it larger or smaller
dd if=/dev/zero of=home-rw bs=1M count=1000
# make a file system
mkfs.ext4 home-rw
mke2fs 1.41.14 (22-Dec-2010)
home-rw is not a block special device.
Proceed anyway? (y,n) y <-- ANSWER 'y' here
#tune the file system to remove reserved blocks and label it 'home-rw'
tune2fs -m 0 -L home-rw home-rw
入れhome-rw
(パーティションのルートディレクトリにある)、またはフラッシュドライブ(いないサブディレクトリにある)にして/。
ライブCDを起動するときに、F6キーを押して、それらを起動パラメータの「-」の前にEsc追加します。persistent
quiet splash persistent --
casperブートスクリプトは、マウントを自動的に検出します。
Ubuntu wiki Persistenceを参照-ubuntu wikiページではcasper-rwについてのみ説明しましたが、home-rwはcasperスクリプトで参照され、同じように機能します。名前のみが変更されています。
スクリーンショットのウォークスルーについては、Ubuntuフォーラムのこの投稿を参照してください(ただし、オプションは異なります)。
C.いくつかのグラフィカルツール、たとえばunetbootinで永続性を有効にできます。グラフィカルツール(私の知る限り)はを使用しますcasper-rw
。
OK、今、あなたはすべてを理解したら、これらの2つのページはより意味を持ち始めます
グーグルにする必要があります。あなたはインターネット中にアドバイスの断片を見つけるでしょう。
すべてを理解したので、Debian Liveスクリプトを使用してください。名前にだまされてはいけません。これらのスクリプトは、MintやUbuntuを含むすべての.debシステムで正常に動作します。
インストールする
sudo apt-get install live-build
グラフィカルインターフェイスがあります
sudo apt-get install live-magic
remastersysやその他のGUIが失敗するのと同様に、ライブマジックGUIが失敗する可能性があることを理解してください。その場合、live-buildスクリプトにフォールバックします(live-magicはビルドディレクトリを生成します)。
ライブビルドスクリプトとディレクトリレイアウト/構造を学習するには時間がかかります
Debian Live Manuel Ayeをご覧ください。長いので、一度に1つずつisoで作業してください。
ライブビルドスクリプトの利点は、ライブCDのコンポーネントを理解すると、スクリプトはビルドの90%以上を自動化し、変更を加えることは、構成ファイル(通常)を簡単に編集するか、initramfsをビルドすることです。
それが長すぎる場合は、深呼吸をしてリラックスし、情報を一度に1つずつ調べます。私はそれが何らかの意味を持ち始めると約束し、あなたはその時間が価値があることに気付くでしょう。
別のツールセットで開始する場合は、このツールセットに戻ってください。いくつかのisoの後、この一連の指示に感謝します;)
私のカスタム12.04ビルドは、gma500をサポートしています。2dのみ(3dなし)ですぐに使用できます(今後数日でgma 500の観客がisoを公開する予定です)。