Как создать загрузочную систему с корнем squashfs

Как создать загрузочную систему с корнем squashfs

Моя цель — иметь возможность взять настроенную корневую файловую систему, загруженную нужным мне программным обеспечением. До сих пор я создал сжатую файловую систему с помощью debootstrap и chroot для установки нужного мне программного обеспечения в системе.

Проблема, с которой я сейчас столкнулся... всякий раз, когда я загружаюсь в систему, мои учетные записи пользователей, настроенные в chroot, не работают. При первой загрузке все работает, при второй загрузке я не могу войти. Это сбивает меня с толку.

Кто-нибудь знает причину или место, где начать искать?

решение1

Чтобы получить работающую систему с файловой системой squashfs:

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

Создайте файл squashfs из загруженной или работающей файловой системы Ubuntu с любыми необходимыми вам пакетами. 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

Теперь вы сможете загрузиться с целевого диска в свою сжатую систему.

решение2

Этот вопрос был решен ОП:

Ну, у меня это заработало. Я использовал live-boot и live-boot-initramfs-tools для генерации initrd и extlinux для загрузчика. Работает как по маслу.

Связанный контент