如何使用squashfs root创建可引导系统

我的目标是能够使用我想要的软件加载自定义的根文件系统。 到目前为止,我已经使用debootstrap和chroot创建了一个压缩的文件系统,以便在系统上安装我想要的软件。

我现在正在运行的问题..每当我启动系统时,我在chroot中设置的用户帐户都不起作用。 首先启动一切正常,第二次启动我无法登录。这让我感到困惑。

任何人都知道开始寻找的理由或地点吗?

要使用squashfs文件系统获得工作系统:

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

使用您想要的任何软件包从引导或运行的ubuntu文件系统创建squashfs文件。 https://help.ubuntu.com/community/LiveCDCustomizationFromScratch提供了有关创建要构建的debootstrapped系统的良好说明。 使用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 

现在,您应该能够从目标驱动器启动到您的压扁系统。

该问题由OP解决:

好吧,我让它工作。 我使用live-boot和live-boot-initramfs-tools为bootloader生成initrd和extlinux。 奇迹般有效。