Раньше у меня была двойная загрузка на одном из моих жестких дисков - Ubuntu и Windows 7. Затем я добавил SSD, который теперь является моим основным жестким диском, и я полностью использую его для Windows 7, сохраняя Убунту в старом HD. Я восстановил Grub, так что все работает нормально, за исключением одного.
Каждый раз, когда я обновляю grub, он обнаруживает два окна:
Found Windows 7 (loader) on /dev/sda1
Found Windows 7 (loader) on /dev/sdb1
Очевидно, я не хочу, чтобы он обнаруживал Windows на sdb1. Потому что я больше не использую его (я удалил файлы вручную). Что я могу сделать с этим, не стирая полностью раздел?
Я не уверен, что он использует для обнаружения ОС. Я бы попробовал быстро переформатировать разделы.
Если ничего не работает, вот патч, который можно сделать для /etc/grub.d/30_os-prober
, который позволит вам указать любые разделы, которые вы хотите пропустить:
/ etc / grub. Модификация d / 30_os-prober
Эти строки можно добавить в файл (сразу после середины), чтобы пропустить любые разделы, которые вы не хотите отображать в меню. Оставляя строку пустой, вы ничего не пропустите.
Добавьте строки, начинающиеся с
############## Patch to prevent some partitions being autodetected
-
############## End of patch
:
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`"
############## Patch to prevent some partitions being autodetected
SKIP_THESE_DEVICES="sdb1"
# SKIP_THESE_DEVICES="sda1 sdb1 sdb2" example for multiple devices
# SKIP_THESE_DEVICES="" example for no devices
PARTITIONNAME="`echo ${DEVICE} | cut -c 6- 2> /dev/null`"
if [ "`echo ${SKIP_THESE_DEVICES} | grep -e ${PARTITIONNAME} 2> /dev/null`" ] ; then
continue
fi
############## End of patch
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
После изменения этого файла вы Разумеется, нужно запустить sudo update-grub
для регенерации меню. Вы должны быть в состоянии видеть результаты из вывода терминала, когда он говорит "Найдено ..." для каждой записи; Вы можете запустить его до модов, а затем сравнить результат после модов. Вы не должны видеть удаленные записи.
Если Windows 7 все еще обнаруживается, это означает, что созданный вами раздел все еще содержит некоторые файлы загрузчика Windows 7. Почему бы не удалить сам раздел? Это определенно решит эту проблему.
Я предлагаю вам сохранить резервную копию любых файлов, которые вы хотите, и удалить раздел Windows 7 на старом HD. После этого обновите grub.
Не думаю, что мне нужно предлагать вам инструменты, но Gparted - лучший редактор разделов из того, что я знаю.
С помощью grub2 вы можете пропустить устройство, добавив в файл / etc / default / grub строку, аналогичную следующей:
GRUB_OS_PROBER_SKIP_LIST="A523009BEFE25938@/dev/sdb1"
GRUB_OS_PROBER_SKIP_LIST - это список устройств, разделенных пробелами, пропущен во время этапа проверки ОС обновления. Каждое устройство имеет формат < UUID > @ < DEVICE & gt ;, где DEVICE - это путь пропущенного устройства, а UUID - его blkid, который можно получить, набрав:
blkid /dev/sdb1
обновите файл / etc / default / grub, просто запустите update-grub.
sudo update-grub
На выходе вы должны увидеть, было ли устройство успешно пропущено.
Вы должны использовать Gparted Live CD, чтобы удалить ваш раздел Windows на старом HD. Но, возможно, вам придется исправить grub после того, как вы это сделаете.
Вы можете использовать wipefs
для очистки метаданных файловой системы, чтобы раздел Windows NTFS больше не обнаруживался. Вы потеряете все данные в разделе.
Вы просто запускаете
sudo wipefs -a /dev/sdb1
Команда заканчивается в секунду, когда она запускается, и это быстрее, чем удаление раздела или удаление файлов.