Як приховати розділ відновлення від Grub2


1

Я встановив дистрибутив Linux на ПК свого друга. Він не знає, як використовувати Linux чи навіть Windows дуже добре, і я хотів би, щоб це було якомога простіше. Коли я встановив GRUB, він виявив його розділ відновлення, який HP встановив для нього, і його першу Windows у списку.

Після деякого гуглювання та перегляду файлів з посібника з конфігурації та налаштування файлів я все ще не можу зрозуміти, як приховати розділ від GRUB. Я подивився 30_osprober, але не побачив чіткого способу виключення ОС.

Чи може хтось вказати мені в правильному напрямку для виключення ОС / розділу з меню GRUB?

Відповіді:


1

// EDIT // Змінено через зміни (я клянусь, що це змінилося під час набору тексту)

Брудне рішення - це редагувати grub.cfg, але це повинно відбуватися кожного разу, коли відбудеться оновлення ядра.

У grub v2: (ПРИМІТКА ЦЕ НЕ РЕКОМЕНДУЄ)

vim /boot/grub/grub.cfg

Правильний спосіб досягти цього - відредагувати /etc/grub.d/30_os-prober( як ви згадали) і сказати, щоб він ігнорував певні розділи, тут можна знайти хороший посібник.

Брудне рішення №2 може бути запуском сценарію, який коментує цей рядок із grub.cfg для вашого приятеля.


5

Я дотримувався вказівок із цієї публікації (у 6 розділі)

GRUB 2 знайде та створить меню для розділу відновлення Windows (Vista). Принаймні у Vista, ім'я меню те саме, що і звичайний операційний розділ Vista, єдиною відмінністю є позначення розділу. Щоб видалити запис з розділу відновлення з меню:

  • Зробіть резервну копію існуючого /etc/grub.d/30_os-proberфайлу, видаліть виконувану біт із резервної копії, щоб вона не запускалася під час оновлень, та відкрийте оригінал для редагування (розділ починається з рядка 134):

    sudo cp /etc/grub.d/30_os-prober /etc/grub.d/30_os-prober.original  && sudo chmod -x
    

    /etc/grub.d/30_os-prober.original

    gksu gedit +83 /etc/grub.d/30_os-prober &
    
  • Визначте точну назву та розділ відновлення Windows. Вони можуть бути розташовані у /boot/grub/grub.cfg file. Додайте запис нижче. У прикладі меню показано як "Windows Vista (завантажувач) (on / dev / sda1)". Переконайтесь, що ви вибрали правильний розділ, оскільки заголовок може бути однаковим для звичайних та відновлення заголовків. Вміст для $LONGNAMEта ${DEVICE} повинен бути точним вмістом між цитатами в меню меню для відновлення розділу:

    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
    
    # Added to remove Windows Recovery
    if [ "$LONGNAME" = "Windows Vista (loader)" ] && [ "${DEVICE}" = "/dev/sda1" ] ; then
    continue
    fi
    # End Added
    

Збережіть файл та запустіть:

sudo update-grub

Замість Vista мені довелося думати Windows 7 (метод той самий) і все працювало.


2

У файл / etc / default / grub ви можете додати

GRUB_OS_PROBER_SKIP_LIST зі списком розділених пробілами UUID @ path_to_device

наприклад GRUB_OS_PROBER_SKIP_LIST = 12345 @ / dev / sda1

щоб OS_PROBER пропустив ці файлові системи.

Список UUID можна отримати від lsblk -fs

Ось докладніше про GRUB_OS_PROBER_SKIP_LIST .


Це рішення спрацювало, зауваживши одне; При додаванні декількох розділів для ігнорування вони повинні бути в лапках. тобто це не спрацювало, GRUB_OS_PROBER_SKIP_LIST=27a3180c-4b1f-49ac-b0cf-17f48cfcad28@/dev/sdh1 157bea0c-5143-4c17-9636-5f92e4bc3ead@/dev/sdh2 але це спрацювало за призначеннямGRUB_OS_PROBER_SKIP_LIST="27a3180c-4b1f-49ac-b0cf-17f48cfcad28@/dev/sdh1 157bea0c-5143-4c17-9636-5f92e4bc3ead@/dev/sdh2"
Сухімічі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.