Моя цель — иметь возможность взять настроенную корневую файловую систему, загруженную нужным мне программным обеспечением. До сих пор я создал сжатую файловую систему с помощью 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 для загрузчика. Работает как по маслу.