双系统新建分区后SUSE系统不能启动,grub引导错误
电脑上有一块硬盘两个系统,一个win8,另一个opensuse13.1。系统启动的引导是在suse的grub2,它负责选择不同的操作系统来启动.
周未对win8上的一个分区使用分区助手进行了分割,创建了一个新分区,打算将它转成ext4类型后,扩展/root所指的分区.
新创建分区后,磁盘分布
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: gpt
# Start End Size Type Name
1 2048 2050047 1000M Windows recover Basic data partition
2 2050048 2582527 260M EFI System EFI system partition
3 2582528 4630527 1000M unknown Basic data partition
4 4630528 4892671 128M Microsoft reser Microsoft reserved partition
5 4892672 214609919 100G Microsoft basic Basic data partition
6 214609920 871849693 313.4G Microsoft basic Basic data partition
7 871852032 872185855 163M EFI System primary
8 872185856 876394495 2G Microsoft basic primary
9 876394496 918339583 20G Microsoft basic primary
10 918339584 1293381631 178.9G Microsoft basic primary
11 1293382496 1924616191 301G Microsoft basic Basic data partition
12 1924616192 1953523711 13.8G Windows recover Basic data partition
由于这个新创建的分区是在磁盘中间,所以就导致后面的分区号全部变了,SUSE系统启动不了了,具体情况如下:
盘符 | 原目录 | 新目录 |
---|---|---|
Window boot | sda2 | - |
C | sda5 | - |
D | sda6 | - |
F | sda7 | sda11 |
boot vfat | sda9 | sda7 |
G: swap ext4 | sda10 | sda8 |
H: root ext4 | sda11 | sda9 |
I: home ext4 | sda12 | sda10 |
SUSE系统启动错误
FAT-fs (sda9): bogus number of reserved sectors
EXT4-fs (sda12): VFS: Can't find ext4 filesystem
启动不了,分析排除错误,刚开始就想是不是我新创建的分区,使得它后面的分区号发生了变化.
bogus number of reserved sectors
这个错误,我将新创建的分区合并到F(Data)盘,使得新的分区消失,最后的分区号就如上表中了。
然后再次启动,这个错误不见了,可下面的这个还在啊,那个悲咽,可还得接着分析折腾!-
VFS: Can't find ext4 filesystem
接着来,找不到suse的文件系统,还是新建分区、合并分区后,分区号还是发生了变化。
然后怀疑是不是grub2引导的问题,是不是启动时自动挂载出了问题:使用安装光盘的rescue模式修复boot,然后出现 error:boot common sha1 sum wrong
,修复不可行;系统启动时,进入grub,执行grub 命令,如 root (hd0,9)、setup (hd0)等,没有root 命令,这个也不可行 ...- 方法
/etc/fstab
文件
原来是用/dev/disk/by-id/
的 ID 来标识分区的,这里全部改成了用UUID来标识分区(分区的UUID号码都保存在/dev/disk/by-uuid
目录下,且都保存的是软链接)./boot/grub2/grub.cfg
文件
修改grub2的配置文件(grub.cfg),其中关于启动部分,它选择好内核以只读命令来挂载根文件系统(/
)的时候,选择的分区是sda11
,而此时sda11
已经变成了windows的ntfs分区,所以suse 启动时,找不到文件系统,所以修改配置文件,指向/
目录所指的分区号,
这两个文件修改后,就可以正常启动了 ^ o ^!
- 方法