grub 恢复后没有分区

grub 恢复后没有分区

我愚蠢地将 Windows CD 插入我的双启动 Ubuntu 11.10 / Windows XP 系统。我只是想看看我是否可以在我的外部 USB HD 上安装 Windows,但实际上并没有继续安装。

好像 Windows CD 弄乱了我的 MBR,我不得不使用启动修复和 Ubuntu 11.10 live CD 才能再次访问 Ubuntu。

启动过程似乎有点不同(速度较慢),但可以正常工作。但是,我现在在 nautilus 中看不到任何分区(共有 3 个)。

当我打开 gparted 时,它只是显示我的整个硬盘为未分配(我知道它有一个可以运行的 Windows 分区和我现在正在使用的 Ubuntu 分区)。

如果我插入一个 USB 笔,它在 Nautilus 中也是不可见的,但在 Gparted 中会显示为 FAT32 分区(虽然我无法访问它,但这是正确的)。

sudo fdisk -l给出以下内容:

demian@dimbo-TP:~$ sudo fdisk -l
[sudo] password for demian:  omitting empty partition (5)

Disk /dev/sda: 320.1 GB, 320072933376 bytes

240 heads, 63 sectors/track, 41345 cylinders, total 625142448 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier:
0x877b877b


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *          63    63842309    31921123+   7 
HPFS/NTFS/exFAT

/dev/sda2        63844350   133484084    34819867+   5  Extended

/dev/sda3       127636488   133484084     2923798+  82  Linux swap /
Solaris

/dev/sda4       133484085   625137344   245826630   83  Linux

/dev/sda5        63844352   123445247    29800448   83  Linux

/dev/sda6       123447296   127635455     2094080   82  Linux swap /
Solaris

Disk /dev/sdb: 8100 MB, 8100249600 bytes

12 heads, 40 sectors/track, 32960 cylinders, total 15820800 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xc3072e18

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *        5992    15820799     7907404    c  W95 FAT32
(LBA)

这是我的grub.conf文件。就像我之前说的,我必须使用 live cd 中的“boot-repair”实用程序才能让 grub 重新工作。我认为这个实用程序可能为我创建了一个新的 grub,因为启动肯定不一样。屏幕空白了一段时间,然后 Ubuntu 加载点短暂出现(而不是在整个启动过程中),然后显示桌面。

反正:

# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root 5349ff67-b7b7-489f-a881-ae49c1dcd84a
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos6)'
  search --no-floppy --fs-uuid --set=root 5349ff67-b7b7-489f-a881-ae49c1dcd84a
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=10
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
if [ ${recordfail} != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 5349ff67-b7b7-489f-a881-ae49c1dcd84a
    linux   /boot/vmlinuz-3.0.0-12-generic root=UUID=5349ff67-b7b7-489f-a881-ae49c1dcd84a ro   quiet splash vt.handoff=7
    initrd  /boot/initrd.img-3.0.0-12-generic
}
menuentry 'Ubuntu, with Linux 3.0.0-12-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 5349ff67-b7b7-489f-a881-ae49c1dcd84a
    echo    'Loading Linux 3.0.0-12-generic ...'
    linux   /boot/vmlinuz-3.0.0-12-generic root=UUID=5349ff67-b7b7-489f-a881-ae49c1dcd84a ro recovery nomodeset 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-3.0.0-12-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 5349ff67-b7b7-489f-a881-ae49c1dcd84a
    linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos6)'
    search --no-floppy --fs-uuid --set=root 5349ff67-b7b7-489f-a881-ae49c1dcd84a
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 72A89361A89322A1
    drivemap -s (hd0) ${root}
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

我怎样才能让一切恢复正常?

答案1

该错误是由于 Windows 安装程序磁盘造成的分区重叠所致。

我通过以下方式修复了它:

使用具有互联网连接的 liveCD。

使用 fixparts 实用程序:固定零件

这将修复分区,但可能会破坏您的 grub。要修复 grub,请使用 grub-recover。

谢谢大家。

D.

相关内容