저는 수동으로 파티션을 생성하고, rootfs를 적절한 파티션에 복사하고, chroot
rootfs로 편집하고, 이전에 백만 번 했던 것처럼 커널과 Grub을 설치했습니다. 나는 현재 호스트와 똑같은 디스크 레이아웃과 부팅 프로세스를 사용합니다("처음부터" rootfs를 만들 필요가 없습니다).
현재 문제는 시작 프로세스가 중단된다는 것입니다.
A start job is running for ...some-UUID-beginning...73
A start job is running for ...some-UUID-beginning...67
메시지가 나타나면 시작이 실패하고 복구 쉘이 존재합니다. 시스템은 원래 다음으로 만들어진 Debian Buster입니다.
sudo lxc-create -n erik3 -t debian -- -r buster
디스크 레이아웃은 다음과 같습니다.
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sdc
├─sdc1 ext2 1.0 fe2cfe8c-28d3-455c-961e-b586cf763367 224.8M 17% /mnt/zencefil-root-rootfs/boot
└─sdc2 crypto_LUKS 2 32d6e3b6-1e75-4d40-86c2-5a8853996e73
└─zencefil_crypt LVM2_member LVM2 001 ttASfx-WjIt-tuhW-AjRN-6tiJ-dnuI-AU8GgN
├─zencefil-swap swap 1 286b4d65-5ca6-4453-b904-6d56749fed0f
└─zencefil-root btrfs 655c3de0-2963-46d1-bc0f-a6a8690632ad 896.1G 3% /mnt/zencefil-root
상황을 확인하기 위해 루트 비밀번호를 입력했을 때, 필요한 일부 라인을 주석 처리 /etc/fstab
하고 재부팅해도 1분 30초 동안 부팅이 중단되는 것을 막지는 못했지만 시스템이 올바르게 부팅할 수 있었던 것을 발견했습니다.
파일 내용을 다시 확인했는데 /etc/fstab
내용이 정확해야 합니다.
/dev/mapper/zencefil-root / btrfs subvol=rootfs,rw,noatime 0 1
##UUID=fe2cfe8c-28d3-455c-961e-b586cf763367 /boot ext2 defaults,noatime 0 2
###/dev/mapper/zencefil-root /mnt/zencefil-root btrfs subvolid=5,rw,noatime 0 1
tmpfs /tmp tmpfs defaults,noatime,nosuid,nodev,mode=1777,size=512M 0 0
( ##...
및 ###...
라인이 필요하지만 주석 처리하면 시스템이 1분 30초 후에 로그인 화면을 표시할 수 있습니다.)
오타도 아닙니다 fstab
. 이것이 증거입니다:
grep "^##\w" /etc/fstab | sed -e 's/^##//' \
| awk '{print "mount " $1 " " $2 " -t " $3 " -o " $4}' \
| xargs -L 1 -I {} sh -c "echo {}; {}"
위 스크립트는 fstab
파일의 행을 구문 분석 ##...
하고 명령을 구성 mount ...
하고 실행하며 결과적으로 성공합니다.
mount UUID=fe2cfe8c-28d3-455c-961e-b586cf763367 /boot -t ext2 -o defaults,noatime
root@erik3:~# mount | grep boot
/dev/sda1 on /boot type ext2 (rw,noatime)
그러나 동일한 줄을 주석 처리하지 않고 그대로 두면 /etc/fstab
설치되지 않습니다 /boot
. 이유는 무엇입니까?
... / ...
의 응용 프로그램 파티션은 에 /etc/fstab
설치됩니다 . 이 줄을 주석 처리하면 예상대로 파티션이 마운트 됩니다(처음에는 initrd에 의해 수행됨). 따라서 문서화는 확실히 진지하게 받아들여집니다./
rw
/
ro
/etc/fstab
"시작 작업이 실행 중입니다..." 메시지를 표시하는 하위 시스템은 무엇입니까?
답변1
LXC를 사용하여 생성된 rootfs는 실제 설치 생성에 적합하지 않은 것으로 나타났습니다. 대신에 그것을 사용해야 합니다 multistrap
.
위의 문제를 생성하는 정확한 단계는 다음에서 찾을 수 있습니다.multistrap-helpers@2ada86fd. 멀티스트랩을 사용하여 rootfs를 생성하면 install-to-disk
지시어가 완벽하게 작동합니다. .NET을 사용하여 rootfs를 생성하면 lxc-create
문제가 발생합니다 .