grub-mkconfig는 chroot 환경에서 오류를 발생시킵니다

grub-mkconfig는 chroot 환경에서 오류를 발생시킵니다

Live Debian CD에서 외부 디스크에 처음부터 Debian을 수동으로 설치하려고 합니다.

멀티스트랩을 통해 Debian Stretch rootfs를 생성하는 지침을 따랐습니다.여기에서( 44fbcc).

내부 chroot환경에서는 Grub 설치와 관련하여 MBR에 Grub2를 설치했습니다.

debian:~# grub-install /dev/sdX --boot-directory=/boot

명령이 오류 없이 실행됩니다. 생성해야 할 때 /boot/grub/grub.cfg다음 오류가 발생합니다.

debian:~# grub-mkconfig
/usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).

예, /dev와 함께 설치되었습니다 /sys. /proc/run 여기.

grub.cfg내부 환경을 어떻게 생성하나요 chroot?

답변1

오류 메시지의 의미 있는 부분은 명령이 장치 항목을 출력하지 않기 cannot find a device for /때문 입니다 .mount/

질문에서 말하지 않은 것은 rootfs를 BTRFS 하위 볼륨에 직접 마운트하려고 했다는 것입니다. 이 경우 chroot장치를 감지할 수 없는 것 같습니다./

현재 내가 하고 있는 작업은 다음과 같습니다. ( X는 루트 파티션(장치), Y은 부팅 파티션)

host:# mount /dev/X /mnt/mydiskroot
host:# btrfs sub create /mnt/mydiskroot/rootfs
host:# mkdir /mnt/mydiskroot/rootfs/boot
host:# mount /dev/Y /mnt/mydiskroot/rootfs/boot
host:# rsync -avP debian-stretch-rootfs/ /mnt/mydiskroot/rootfs
host:# do-chroot.sh /mnt/mydiskroot/rootfs
root@guest:/#  mount | awk '$3 == "/" {print}' # nothing shows up, so update-grub throws the mentioned error

내가 해결한 방법은 다음과 같습니다.

root@guest:/# exit
host:# mkdir /mnt/actual-rootfs
host:# mount -t btrfs -o subvol=rootfs,defaults /dev/X /mnt/actual-rootfs/
host:# umount /dev/Y
host:# mount /dev/Y /mnt/actual-rootfs/boot
host:# do-chroot.sh /mnt/actual-rootfs
root@guest:/# mount | awk '$3 == "/" {print}'
/dev/X on / type btrfs (rw,relatime,space_cache,subvolid=257,subvol=/rootfs)
root@guest:/# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.9.0-11-amd64
Found initrd image: /boot/initrd.img-4.9.0-11-amd64
done

관련 정보