web-dev-qa-db-ja.com

squashfsルートでブート可能なシステムを作成する方法

私の目標は、必要なソフトウェアがロードされたカスタマイズされたルートファイルシステムを使用できるようにすることです。ここまでで、システムに必要なソフトウェアをインストールするためにdebootstrapとchrootを使用して、つぶれたファイルシステムを作成しました。

現在実行中の問題..システムを起動するたびに、chrootでセットアップされたユーザーアカウントが機能しません。最初はすべてが正常に起動し、2回目の起動ではログインできません。それは私を困惑させます。

誰かが探し始める理由や場所を知っていますか?

5
cldfzn

Squashfsファイルシステムで動作するシステムを取得するには:

Sudo apt-get install live-boot live-boot-initramfs-tools extlinux
Sudo update-initramfs -u

ブートストラップされた、または実行可能なubuntuファイルシステムから、必要なパッケージを使用してsquashfsファイルを作成します。 https://help.ubuntu.com/community/LiveCDCustomizationFromScratch は、構築するデブートストラップシステムを作成するための適切な手順を提供します。ターゲットドライブをext2/3/4でフォーマットし、ブート可能フラグを有効にします。ターゲットドライブにフォルダーレイアウトを作成し、extlinuxをインストールします。

mkdir -p ${TARGET}/boot/extlinux ${TARGET}/live
extlinux -i ${TARGET}/boot/extlinux
dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdX #X is the drive letter
cp /boot/vmlinuz-$(uname -r) ${TARGET}/boot/vmlinuz
cp /boot/initrd.img-$(uname -r) ${TARGET}/boot/initrd
cp filesystem.squashfs ${TARGET}/live

次の内容で$ {TARGET} /boot/extlinux/extlinux.confを作成します。

DEFAULT Live
LABEL Live
  KERNEL /boot/vmlinuz
  APPEND initrd=/boot/initrd boot=live toram=filesystem.squashfs
TIMEOUT 10
Prompt 0

これで、ターゲットドライブからスカッシュシステムにブートできるはずです。

8
cldfzn

この質問はOPによって解決されました:

さて、私はそれを機能させました。 live-bootとlive-boot-initramfs-toolsを使用して、ブートローダー用のinitrdとextlinuxを生成しました。魔法のように機能します。

3
coversnail