因为虚拟机硬盘不够,给虚拟机增加硬盘后操作错误报错。
当时根据VMware中已建好虚拟机磁盘扩充保姆级教程_vmware对磁盘扩容-优快云博客这篇文章对虚拟机进行硬盘扩容,操作失误,导致重启那步进入grub
在grub时
ls

只有hd0和hd0,msdos1,不管set哪一个都不能正常启动
解决办法
打开虚拟机设置

弄个和原本虚拟机系统相同的镜像
重启或者打开虚拟机,按ESC或者F2,进入选择磁盘的页面,选择cd开头的
进入后来到安装Ubuntu界面,选择try Ubuntu
进入到Ubuntu桌面后

sudo fdisk -l [开头增加硬盘的地方]
可以看到下面箭头所指后面有个p1
尝试在 /dev/sda1 这个主分区内部创建了一个嵌套分区 /dev/sda1p1。这种操作在传统的 MBR 分区表中是不支持的,导致分区表逻辑混乱,从而引发系统启动时的 unknown filesystem 错误。
接下来推荐问ai,笔者也是问ai,我自己也有点懵,下面是我所做的操作
- 打开终端,运行
sudo fdisk /dev/sda进入分区工具。 - 输入
p查看当前分区表,确认/dev/sda1的异常结构。 - 输入
d删除分区,选择分区号1(即删除/dev/sda1)。
注意:此操作会删除分区内所有数据!确保已备份重要文件。
- 输入
n创建新分区,选择p(主分区),起始扇区保持默认(建议 2048)。 - 结束扇区设置为磁盘末尾(例如直接按回车键使用全部空间)。
- 输入
w保存分区表并退出。 - 扩展文件系统:
sudo resize2fs /dev/sda1
这时候我报错了

sudo blkid /dev/sda1
通过这行代码查看分区的文件系统类型和 UUID,后面的/dev/sda1是用fdsik修改的,根据实际情况,下面是输出内容

# 检查文件系统错误(针对 ext4)
sudo fsck -y /dev/sda1
# 如果提示 "Bad superblock",尝试使用备份超级块修复
# 笔者爆了一大堆内容,下面这句没输
sudo fsck -b 32768 /dev/sda1 -y # 32768 是常见的备份超级块位置
sudo resize2fs /dev/sda1
# 挂载原系统分区
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
# 进入原系统环境
sudo chroot /mnt
# 重新安装 GRUB
grub-install /dev/sda
update-grub
exit
# 验证分区表一致性
# 确认分区起始扇区对齐(如 2048 扇区),且文件系统类型为 ext4
sudo parted /dev/sda print
# 重启并测试
sudo umount /mnt/dev /mnt/proc /mnt/sys /mnt
sudo reboot
后面就是重启了,问题就解决了,笔者通过sudo reboot指令重启后会要求删除ios文件,笔者直接重启了。
5174

被折叠的 条评论
为什么被折叠?



