grub-mkconfig выдает ошибку в среде chroot.

Вы можете использовать правило iptables:

iptables -t nat -I PREROUTING -p tcp --dport 80 -d xxx.xxx.xxx.xxx -j DNAT --to-destination yyy.yyy.yyy.yyy

Где xxx.xxx.xxx.xxx — адрес, который вы хотите подделать, а yyy.yyy.yyy.yyy — адрес сервера, на который вы хотите направить трафик. Вы можете добавить это в пользовательские правила.

0
23.12.2019, 22:30
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
3
28.01.2020, 02:59

Теги

Похожие вопросы