chroot进去更新引导
chroot进去更新引导
怎么改
搜grub 引导系统。
grub> root (hd0,1) #设置根分区
grub> kernel /boot/vmlinuz-2.6.15-26-386 #引导内核
grub> initrd /boot/initrd.img-2.6.15-26-386 #引导内核
grub> boot
给你AI一下
你遇到 chroot: failed to run command ‘/bin/bash’: No such file or directory 的原因是:Deepin 25 社区版使用了 OSTree 作为其底层文件系统架构(类似于 Fedora Silverblue 或 Endless OS)。
当你直接挂载根分区 (/dev/nvme0n1p4) 到 /mnt 时,你看到的是 OSTree 的 sysroot 结构,而不是一个可以直接 chroot 的完整传统 Linux 根文件系统。真正的系统文件被部署在 /ostree/deploy/... 的特定版本目录中。
要正确进入 chroot 环境,你需要将目标指向那个具体的 OSTree 部署目录,并重新绑定虚拟文件系统。请按照以下步骤操作:
步骤 1:定义正确的部署目录路径
根据你之前的 ls 输出,当前活跃的部署目录是那个长哈希值的文件夹。我们将其设为变量以便操作:
TARGET="/mnt/ostree/deploy/deepin/deploy/25092c6ca956159489c0ec34113934a74a8880783a9715f086cc8fdcf753d6ee.3"
步骤 2:将必要的系统目录绑定挂载到该目标路径
之前你挂载到了 /mnt,现在需要挂载到 $TARGET:
for i in /dev /proc /sys /run; do mount --bind $i $TARGET$i; done
步骤 3:进入 chroot 环境
现在可以成功进入系统了:
chroot $TARGET /bin/bash
💡 附加建议:如果你是为了修复 GRUB 或内核
进入 chroot 后,由于 OSTree 的特殊性,/boot 和 /boot/efi 可能还没有被正确挂载。如果你需要运行 update-grub 或修复引导,请在 chroot 内部 执行以下命令挂载它们:
# 在 chroot 内部执行:
mount /dev/nvme0n1p2 /boot
mount /dev/nvme0n1p1 /boot/efi
# 然后你可以执行你需要的修复命令,例如:
# update-grub
# grub-install /dev/nvme0n1
步骤 4:退出与清理
完成修复后,按以下顺序安全退出并卸载:
# 1. 退出 chroot
exit
# 2. 如果在 chroot 内挂载了 boot,先卸载它们
umount /mnt/ostree/deploy/deepin/deploy/25092c6ca956159489c0ec34113934a74a8880783a9715f086cc8fdcf753d6ee.3/boot/efi
umount /mnt/ostree/deploy/deepin/deploy/25092c6ca956159489c0ec34113934a74a8880783a9715f086cc8fdcf753d6ee.3/boot
# 3. 卸载虚拟文件系统
umount /mnt/ostree/deploy/deepin/deploy/25092c6ca956159489c0ec34113934a74a8880783a9715f086cc8fdcf753d6ee.3/run
umount /mnt/ostree/deploy/deepin/deploy/25092c6ca956159489c0ec34113934a74a8880783a9715f086cc8fdcf753d6ee.3/sys
umount /mnt/ostree/deploy/deepin/deploy/25092c6ca956159489c0ec34113934a74a8880783a9715f086cc8fdcf753d6ee.3/proc
umount /mnt/ostree/deploy/deepin/deploy/25092c6ca956159489c0ec34113934a74a8880783a9715f086cc8fdcf753d6ee.3/dev
# 4. 最后卸载物理分区
umount /mnt/boot/efi
umount /mnt
如果你在 chroot 后遇到其他特定问题(如网络、特定命令报错),请随时告诉我!
Popular Events
More

中文 

用livecd进去看见
[新建文本.txt]()
求助如何处理