如何使用squashfs根建立可啟動系統

如何使用squashfs根建立可啟動系統

我的目標是能夠採用載入了我想要的軟體的客製化根檔案系統。到目前為止,我已經使用 debootstrap 和 chroot 創建了一個壓縮的檔案系統來在系統上安裝我想要的軟體。

我現在遇到的問題是..每當我啟動系統時,在 chroot 中設定的使用者帳戶都不起作用。第一次啟動一切正常,第二次啟動我無法登入。

有人知道開始尋找的原因或地方嗎?

答案1

要獲得具有 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

現在您應該能夠從目標磁碟機啟動到壓縮的系統。

答案2

這個問題由OP解決:

好吧,我成功了。我使用 live-boot 和 live-boot-initramfs-tools 為引導程式產生 initrd 和 extlinux。奇蹟般有效。

相關內容