Это первый вопрос, который я когда-либо задавал сообществу 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 получает эту информацию. Но это так.
Кто-нибудь может мне помочь? Или есть еще информация, которую я должен добавить?
Я не знаю, является ли ваш /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. Отсюда двойная запись.
Вы должны найти то, что ищете внутри /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
.