/etc/fstab의 내용이 잘못된 것 같지만 그렇지 않습니다.

/etc/fstab의 내용이 잘못된 것 같지만 그렇지 않습니다.

저는 수동으로 파티션을 생성하고, rootfs를 적절한 파티션에 복사하고, chrootrootfs로 편집하고, 이전에 백만 번 했던 것처럼 커널과 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문제가 발생합니다 .

관련 정보