squashfs 루트로 부팅 가능한 시스템을 만드는 방법

squashfs 루트로 부팅 가능한 시스템을 만드는 방법

내 목표는 내가 원하는 소프트웨어가 로드된 사용자 정의 루트 파일 시스템을 사용할 수 있는 것입니다. 지금까지 나는 시스템에 원하는 소프트웨어를 설치하기 위해 debootstrap과 chroot를 사용하여 압축된 파일 시스템을 만들었습니다.

지금 겪고 있는 문제는.. 시스템에 부팅할 때마다 chroot에 설정된 사용자 계정이 작동하지 않는다는 것입니다. 처음 부팅하면 모든 것이 잘 되는데, 두 번째 부팅에서는 로그인할 수 없습니다. 정말 당황스럽습니다.

찾는 이유나 장소를 아는 사람이 있나요?

답변1

squashfs 파일 시스템을 사용하여 작동하는 시스템을 얻으려면:

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

사용 가능한 패키지가 무엇이든 부트스트랩되거나 실행 중인 우분투 파일 시스템에서 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를 생성했습니다. 매력처럼 작동합니다.

관련 정보