双系统新建分区后SUSE系统不能启动

双系统新建分区后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 ^!

你可能感兴趣的:(双系统新建分区后SUSE系统不能启动)