설치 실패 - 잘못된 매개변수

설치 실패 - 잘못된 매개변수

SD 카드에 Kali Linux를 설치하고 LVM 논리 볼륨이 포함된 암호화된 LUKS 파티션을 만든 다음 그 안에 BTRFS 파일 시스템을 만들었습니다.거의모든 것이 잘 작동하지만 LUKS 볼륨을 성공적으로 해독한 후 시작이 실패합니다. 통나무:

Begin: Loading essential drivers ... done.
Begin: Mounting root file system ... Begin: Running /scrypts/local-top ... [ 8.655803] device-mapper: ioctl: 4.28.0-ioctl (2014-09-17) initialised: [email protected]
[ 8.689182] random: lvm urandom read with 113 bits of entropy available
  Volume group "pi" not found
  Skipping volume group pi
Unable to find LVM volume pi/root
Unlocking the disk /dev/mmcblk0p2 (picrypt)
Enter passphrase:
Reading all physical volumes. This may take a while...
  Found volume group "pi" using metadata type lvm2
  ffff0000-ffff1000 r-xp 00000000 00:00 0    [vectors]: mlock failed: Cannot allocate memory
  1 logical volume(s) in volume group "pi" now active
  ffff0000-ffff1000 r-xp 00000000 00:00 0    [vectors]: munlock failed: Cannot allocate memory
cryptsetup: picrypt set up successfully
done.
Begin: Running /scripts/local-premount ... done.
mount: mounting /dev/mapper/pi-root on /root failed: Invalid argument
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... mount: mounting /de on /root/dev failed: No such file or directory
done.
Target filesystem doesn't have requested /sbin/init.
No init found. Try passing init= bootarg.
modprobe: module i8042 not found in modules.dep
modprobe: module atkbd not found in modules.dep
modprobe: module ehci-pci not found in modules.dep
modprobe: module ehci-orion not found in modules.dep
modprobe: module ehci-hcd not found in modules.dep
modprobe: module uhci-hcd not found in modules.dep
modprobe: module ohci-hcd not found in modules.dep

BusyBox v1.20.2 (Debian 1:1.20.0-7) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off

루트 파일 시스템을 마운트할 수 없는 것 같습니다. initramfs에서는 실제로 fstab에 제공된 모든 옵션을 사용하여 BTRFS 파티션을 제대로 마운트할 수 있습니다. 처음에는 진단할 수 없는 이상한 이유로 실패한 것 같았습니다.

initramfs에서 다음 명령을 실행합니다.

mount -t btrfs -o defaults,subvol=@,compress=lzo,ssd,noatime /dev/mapper/pi-root /root

설치가 제대로 작동하고 파일 시스템이 올바르게 표시됩니다.

이 내 꺼야 /etc/fstab:

proc                   /proc    proc     defaults                                      0    0
/dev/mmcblk0p1         /boot    vfat     defaults                                      0    2
/dev/mapper/pi-root    /        btrfs    defaults,subvol=@,compress=lzo,ssd,noatime    0    1

이 내 꺼야 /etc/crypttab:

picrypt /dev/mmcblk0p2 none luks

이것은 내 커널 명령줄입니다.

dwc_otg.fiq_fix_enable=1 console=tty1 console=tty1 root=/dev/mapper/pi-root cryptopts=target=picrypt,source=/dev/mmcblk0p2,lvm=pi rootfstype=btrfs rootwait rootdelay=5 ro rootflags=noload,subvol=@

initramfs.gz가 최신인지 확인했습니다.

다시 말하지만 내 설정은 다음과 같습니다.

  • SD 카드
    • VFAT 파일 시스템 시작
    • LUKS 암호화 파일 시스템( picrypt)
    • LVM 논리 볼륨( /dev/mapper/pi-root)
      • BTRFS 파일 시스템
      • BTRFS 하위 볼륨( subvol=@)

내 메인 노트북에도 똑같은 설정이 있는데 아주 잘 작동합니다.

시작 프로세스 중에 다음 상황이 발생하고 실패합니다.

  1. LUKS 볼륨 암호 해독 picrypt: 유효함
  2. 개방형 볼륨 그룹 pi및 LV root: 유효함
  3. rootfstab을 통해 LV를 마운트 하려고 하면 Invalid argument.

Busybox도 tty에 접근할 수 없어서 실패하는 것 같지만, 이는 문제와는 관계가 없습니다.

여기서 문제가 있는 부분을 어떻게 디버깅할 수 있나요?

답변1

내 커널 라인에 있는 다음 매개변수로 인해 오류가 발생했습니다.

rootflags=noload,subvol=@

이 매개변수의 값은 mount마운트된 루트 파일 시스템에 파일 시스템 옵션으로 직접 전달됩니다. 디버그 문을 삽입함으로써 /scripts/local( build 에서 /usr/share/initramfs-tools/scripts/local) 마운트 매개변수에 어떤 문제가 있는지 확인할 수 있었고 부팅 명령줄을 수정할 수 있었습니다.

관련 정보