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 上的「啟動修復」實用程式才能讓 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 .

相關內容