如何从GRUB命令行访问Ubuntu文件系统
如何从GRUB命令行访问Ubuntu文件系统
嘿,我之前在VirtualBox里搞恢复模式的时候也碰到过这个糟心事儿——进了GRUB却死活碰不到Ubuntu的文件系统,想删文件都没辙。别慌,我来给你唠唠一步步怎么解决:
第一步:找到你的Ubuntu根分区
GRUB里没法直接识别系统分区,得自己找。先输入ls命令,会列出所有可用的磁盘和分区,比如(hd0)、(hd0,gpt2)、(hd0,gpt1)这类(GPT分区格式),或者(hd0,msdos1)(MBR分区格式)。
接着逐个测试这些分区,输入ls (hd0,gpt2)/(把括号里的内容换成你要测试的分区),如果能看到bin、etc、home这些熟悉的根目录文件夹,那这个就是你要找的Ubuntu根分区了。第二步:启动到单用户可读写环境
GRUB命令行本身没法直接操作文件,得启动到一个能访问文件系统的shell环境:- 先设置GRUB的根分区为刚才找到的分区:
set root=(hd0,gpt2)(替换成你找到的分区) - 输入
ls /boot/查看可用的内核和初始化镜像文件,你会看到类似vmlinuz-5.15.0-78-generic和initrd.img-5.15.0-78-generic的文件。 - 加载内核并指定启动参数:
linux /boot/vmlinuz-5.15.0-78-generic root=/dev/sda2 rw init=/bin/bash- 这里的
/dev/sda2要对应你找到的分区:比如(hd0,gpt2)对应的就是/dev/sda2,(hd0,msdos1)对应/dev/sda1。 - 加
rw是让分区以可读写模式挂载(默认恢复模式是只读),init=/bin/bash是直接启动到bash shell,跳过正常的系统启动流程。
- 这里的
- 加载初始化镜像:
initrd /boot/initrd.img-5.15.0-78-generic(文件名要和刚才看到的完全一致) - 最后输入
boot回车,系统就会启动到一个单用户的bash环境,这时候你就能直接访问Ubuntu的文件系统了,删文件用rm命令就行,比如rm /home/yourusername/unwantedfile.txt。
- 先设置GRUB的根分区为刚才找到的分区:
小补充
如果你的Ubuntu用了LVM逻辑卷(这种情况不多见,VirtualBox默认安装一般不会用),那还要额外激活LVM卷才能访问,不过大部分普通用户用上面的步骤就足够解决问题了。
备注:内容来源于stack exchange,提问作者Noji
相关产品推荐
相关产品推荐

