Grub2 с ГОРОДОМ: дублирующиеся записи Windows, как я удаляю тот?

У меня есть система двойной загрузки с Ubuntu 12.04 и Windows 7, с помощью GRUB2 (с Городом) как загрузчик.

По некоторым причинам установка Windows обнаруживается дважды в меню начальной загрузки:

Ubuntu GNU/Linux, with Linux 3.2.0-24-generic
Ubuntu GNU/Linux, with Linux 3.2.0-24-generic (recovery mode)
Windows 7 (loader) (on /dev/sda1)
Windows 7 (loader) (on /dev/sda2)

Если я смотрю в своей таблице разделов, /dev/sda2 C:\ установки Windows, и /dev/sda1 "Система Зарезервированный" раздел (который, IIRC, собственный загрузчик Windows). Кроме того, gparted шоу /dev/sda2 - но никакие другие разделы - с a boot флаг:

enter image description here

Что продолжается здесь? Я хотел бы иметь только записи для Ubuntu и одну запись для Windows в моем меню начальной загрузки - как я удаляю одного из них?

5
задан 10 July 2012 в 13:00

4 ответа

Вы правы, что Windows 7 по умолчанию помещает свой «загрузочный» раздел на /dev/sda1, но можно заставить Win 7 также поместить все в свой «корневой» раздел - например, путем установки в предварительно отформатированный раздел NTFS.

Возможно, в прошлом вы настраивали Windows так, чтобы флаг загрузчика / загрузочного диска продолжал работать /dev/sda2? Можете ли вы успешно загрузиться с обеих записей Windows? Если это так, то можно удалить один из них.

Как удалить записи

Опасно!

Это может привести к невозможности загрузки Windows; чтобы выполнить следующие шаги, вам нужно будет вставить sudo, где это уместно, и убедиться, что раздел NTFS предварительно смонтирован для чтения и записи.

cd /mnt/where-o-where-my-ntfs-be
rm -rf bootmgr Boot BOOTSECT.BAK Recovery
cd && umount /mnt/ntfs1
update-grub

То, что должно сделать это - очевидно, я не пробовал свои системы с двойной загрузкой. Пожалуйста, дайте мне знать, если это не сработает, и я либо дам вам более опасные методы, либо, возможно, загляну в источник grub, чтобы увидеть, как он обнаруживает разделы Windows для окончательного ответа.

0
ответ дан 10 July 2012 в 13:00

Мне решали его уже достаточно постоянно для моих потребностей. Я изменил/etc/grub.d/30_os-prober сценарий немного:

запустите в строке 150 (просто добавляют переменную и условие проверить, были ли окна 7 уже найдены):


wubi=

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

  echo "Found ${LONGNAME} on ${DEVICE}" >&2

изменение в:


wubi=
windows7_found=

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

  # Mi-La patch to add Windows 7 only once
  if [ "${LONGNAME}" = "Windows 7 (loader)" ]; then
    if [ "${windows7_found}" = yes ]; then
      echo "Skipping duplicated entry for ${LONGNAME} on ${DEVICE}." >&2
      continue
    else
      windows7_found=yes
    fi
  fi

  echo "Found ${LONGNAME} on ${DEVICE}" >&2

Должен работать, по крайней мере, пока личинка не будет обновлена.Приятного отдыха.

Править: Ubuntu 12.10

30_os-тестер изменился немного, но использование того же если после следующих строк:


  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

работы хорошо.

3
ответ дан 10 July 2012 в 13:00

Просто отредактируйте конфигурационный файл Burg через Терминал: 1.) Откройте Терминал 2.) Введите

Sudo gedit /boot/burg/burg.cfg

3.) Найдите пункт меню «Windows ...» и сразу после --class os add :

--group group_secondary

Где «group_secondary» - это уникальное имя для группировки группы операционных систем. Если вы посмотрите на файл, вы увидите, что ядра Linux имеют:

--group group_main

Теперь у вас должно быть Windows и Windows Recovery выглядеть так:

menuentry "Windows 8 (loader) (on /dev/sdc1)" --class windows --class os --group group_secondary {
    insmod ntfs
    set root='(hd2,1)'
    search --no-floppy --fs-uuid --set b896bf7f96bf3d26
    drivemap -s (hd0) ${root}
    chainloader +1
}
menuentry "Windows 8 (loader) (on /dev/sdc2) (recovery mode)" --class windows --class os --group group_secondary {
    insmod ntfs
    set root='(hd2,2)'
    search --no-floppy --fs-uuid --set c46cc0a06cc08f1c
    drivemap -s (hd0) ${root}
    chainloader +1
}

4.) САМАЯ ВАЖНАЯ ЧАСТЬ !!! Сохранить!!! Теперь вы можете либо REBOOT, либо Start:

sudo burg-emu

5.) На экране выбора нажмите «F», чтобы свернуть папки.

*** СТОРОННОЕ ПРИМЕЧАНИЕ: Когда свернуто, Бург будет использовать ПЕРВЫЙ пункт меню в файле по умолчанию в свернутом режиме.

0
ответ дан 10 July 2012 в 13:00

sudo nano /boot/grub/grub.cfg Затем прокомментируйте вторую запись Windows (sda2), то есть поставьте «#», откуда начинается запись. Это удалит запись, не затрагивая ваши файлы. То же самое относится и к Бургу. Просто замените grub на burg в команде.

0
ответ дан 10 July 2012 в 13:00

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

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