Grub2 обнаруживает две записи Windows 7 (загрузчик)

Это первый вопрос, который я когда-либо задавал сообществу Ubuntu.

Я довольно новичок в Ubuntu, но я понимаю основы и знаю, как ориентироваться в Терминале. Я также знаю, как искать существующие решения, прежде чем обращаться за помощью. Я изучал Интернет все выше и ниже и узнал многое о том, как работает Grub2. Но ничто не помогло мне решить мою проблему.

Моя проблема в следующем: у меня есть компьютер с тремя жесткими дисками. Ранее у него была Windows XP, но я обновился до Windows 7. Я также установил Ubuntu 12.04 LTS (Precise Pangolin).

Во время установки Windows 7 произошел сбой, и мне пришлось перезапустить установку. После этого я установил Ubuntu. После некоторых проблем с удалением всех следов ОС XP (Ubuntu обнаружил ее автоматически, но не Windows 7), я получил две операционные системы безупречно. Или почти.

При загрузке Grub2 отображал Ubuntu, режим восстановления Ubuntu, другие версии Linux, memtest, за которыми следуют Windows 7 (loader) on /dev/sda1 и Windows 7 (loader) on /dev/sdb1.

В конце концов я удалил режим восстановления, другие версии и Memtest. Теперь, когда я запускаю:

sudo update-grub

, я получаю эту распечатку:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-26-generic
Found initrd image: /boot/initrd.img-3.2.0-26-generic
Found Windows 7 (loader) on /dev/sda1
Found Windows 7 (loader) on /dev/sdb1

Я хотел бы удалить «Windows 7 (загрузчик) на / dev / sda1», так как это поврежденная запись, которая не должна существовать и должна быть установлена ​​во время моей первой попытки Windows 7.

Я не могу найти запись Windows 7 в папке /etc/grub.d, и я не знаю, где искать.

Вот схема расположения моих жестких дисков:

/dev/sda1/ (1.82 TiB), NTFS ("Media")

/dev/sdb1/ (100 Mib), NTFS ("System Reserved")
/dev/sdb2/ (149 GiB), NTFS ("Windows 7")
/dev/sdb3/ (149 GiB), Extended (" ")
    /dev/sdb4/ (145 GiB), ext4 (" ")
    /dev/sdb5/ (4 GiB), linux-swap (" ")

/dev/sdc1/ (488.28 GiB), NTFS ("Downloads")
/dev/sdc2/ (488.28 GiB), NTFS ("AltMedia") 
/dev/sdc3/ (886.45 GiB), NTFS ("Personal")
unallocated (2.09 MiB), unallocated

То, что я думаю, произошло: Windows 7 установлена ​​первой и плохо. Я установил его снова. Во-первых, была Windows XP, которая указывала, куда пошел загрузчик, чтобы он был установлен /dev/sdb1/. Но во второй раз такого руководства не было, поэтому машина установила еще один загрузчик /dev/sda1/. Кстати, sda1 - единственный раздел на диске объемом 2 ТБ. В соответствии с gedit раздел загрузочной записи не существует. Я не уверен, откуда Grub2 получает эту информацию. Но это так.

Кто-нибудь может мне помочь? Или есть еще информация, которую я должен добавить?

6
задан 2 July 2012 в 07:51

2 ответа

Быстрое решение, если sda - это внешний диск.

Я не знаю, является ли ваш /dev/sda жесткий диск внутренним или внешним. Если это внешний диск, отключите внешний диск перед запуском команды update-grub2. Это должно помочь быстро.

Решение:

Установите привод /dev/sda1. (Я полагаю, вы можете сделать это очень легко ). Затем на этом диске найдите папку с именем Boot и файл с именем bootmgr. Удалите и папку, и файл. Затем снова введите команду update-grub2.

Возможно, вы захотите установить grub2 снова. Как я вижу, ваша Ubuntu установлена ​​в /dev/sdb, команды будут

sudo grub-install /dev/sdb
sudo update-grub 

В чем причина проблемы:

Grub2 ищет загрузочные файлы Windows для обнаружения записей Windows , Несмотря на то, что вы удалили Windows 7, загрузочные файлы Windows 7 не удаляются (это папка «Boot» и файл «bootmgr»). И поскольку там есть загрузочные файлы Windows 7, grub2 просто предполагает, что есть и установка Windows 7. Отсюда двойная запись.

0
ответ дан 2 July 2012 в 07:51

Вы должны найти то, что ищете внутри /boot/grub/grub.cfg. Этот файл динамически генерируется с помощью update-grub2. Я с двойной загрузкой Ubuntu 32-битной и 64-битной. Если бы я хотел удалить один, я бы просто удалил его раздел из этого файла. Вот как выглядит одна из моих записей:

menuentry 'Ubuntu, with Linux 3.2.0-23-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root 94916094-afe9-4b74-9413-a3c54b39eb91
    linux   /boot/vmlinuz-3.2.0-23-generic root=UUID=94916094-afe9-4b74-9413-a3c54b39eb91 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.2.0-23-generic
}

Изменения должны вступить в силу немедленно, поэтому сделайте резервную копию и будьте осторожны. Кроме того, все, что вы измените в этом файле, будет полностью перезаписано, если вы снова запустите update-grub2.

0
ответ дан 2 July 2012 в 07:51

Другие вопросы по тегам:

Похожие вопросы: