编辑:我要求删除它,但它被关闭了..
我想为 chrooted BTRFS 系统 (/mnt/arch(/@)) 编辑 GRUB 配置。我运行了这些命令:
> sudo chroot /mnt/arch/@/
> grub-mkconfig -o /boot/grub/grub.cfg
但我收到了这个错误:/usr/bin/grub-probe: error: cannot find a device for / (is /dev mounted?).
我怎样才能解决这个问题?
答案1
请确保/dev
/proc
和/sys
已安装在您的 chroot 中。最后两个可能不是必需的,但我总是安装它们以防万一。
您可以通过运行(外部chroot)这个命令:
for i in /dev /proc /sys; do sudo mount -o bind $i /path/to/chroot${i}; done
如果我没记错的话,Arch Linux 有一个特殊的命令可以自动执行此操作,但我不记得它的名字了。
答案2
如果您使用普通chroot
命令而不是特定于发行版的包装器(例如 )arch-chroot
,则需要在 chroot 之前挂载/dev
、/proc
和/sys
虚拟文件系统,否则许多命令将报告奇怪的错误情况,因为它们将无法访问它们的内容d 需要。
在大多数相当现代的 Linux 上,如果需要修复的根文件系统安装到/mnt/arch/@/
,则以下命令应该有效:
sudo mount -o rbind /dev /mnt/arch/@/dev
sudo mount -t proc none /mnt/arch/@/proc
sudo mount -t sysfs none /mnt/arch/@/sys
sudo chroot /mnt/arch/@
要撤消准备工作:
exit # = come back out of the chroot
sudo umount /mnt/arch/@/sys
sudo umount /mnt/arch/@/proc
sudo umount /mnt/arch/@/dev
答案3
chroot 与arch-chroot
.
arch-chroot -a
自动检测并挂载 arch 分区。手动
arch-chroot /dev/<device name>