GRUB і LILO не вдалося встановити на жорсткий диск NVMe при установці Debian


10

Я намагаюся встановити 64-бітний стабільний Debian на ThinkPad Lenovo. Коли я переходжу до кроку встановлення, який встановлює завантажувач, я отримую це повідомлення:

Помилка кроку установки. Ви можете спробувати запустити збіжний елемент знову з меню або пропустити його та вибрати щось інше. Невдалий крок: Установіть завантажувач GRUB на жорсткий диск

Повернення до меню та вибір LILO дає мені таку ж помилку. У журналі встановлення вказується

May  1 13:24:23 main-menu[188]: WARNING **: Configuring 'grub-installer' failed with error code 1
May  1 13:24:23 main-menu[188]: WARNING **: Menu item 'grub-installer' failed.
May  1 13:24:28 main-menu[188]: INFO: Menu item 'lilo-installer' selected
May  1 13:24:28 main-menu[188]: WARNING **: Unable to set title for fdisk-udeb.
May  1 13:24:28 main-menu[188]: WARNING **: Configuring 'lilo-installer' failed with error code 1
May  1 13:24:28 main-menu[188]: WARNING **: Menu item 'lilo-installer' failed.

Я не використовую LVM або RAID. Поки що я намагався

  1. Вимкнення завантаження UEFI і використання замість цього застарілого завантаження. Помилка все-таки виникає як для GRUB, так і для LILO.

  2. Дотримуйтесь інструкцій з цього питання та працюйте

    parted /dev/nvme01
    set 1 bios_grub on
    

    від TTY2, але я отримую помилку, яка говорить parted not found. У моїй системі /dev/nvme01є єдиний жорсткий диск

  3. Перевірте наявність апаратних помилок. Коли я вперше придбав систему, я провів усі доступні тести на апаратне забезпечення як в BIOS, так і в Windows, і він пройшов усі вони. Я припускаю, що це означає, що обладнання не працює в роботі.

  4. На цій темі, яка мала подібну помилку, хоч і з LVM, я спробував повторно розділити невеликий /bootрозділ на початку, відформатований ext2. Та сама помилка.

  5. Перемикаючись на TTY4, щоб подивитися на інсталяційний вихід, я також бачу помилку

    chroot: can't execute 'grub-probe': No such file or directory
    

    Пошук інформації про те, що виявляє цю тему, і цей звіт про помилку, пов’язаний з GRUB, але а) вони старі, і б) я перебігав установку до цього моменту вже десяток разів, і я отримую помилку щоразу , тож це не здається разовою справою.

  6. Я використовував Gparted, щоб перевірити, чи жорсткий диск повністю порожній.

  7. Захищене завантаження відключено в BIOS.

  8. Я запустив інсталяцію за допомогою повного DVD та netinstall CD; обидва завантажуються з USB, але проблема зберігається.

На попередньому кроці встановлення мені вдалося створити msdosтаблицю розділів і три розділи (для /, /homeі swap), тому я не знаю, чому GRUB раптом не може записати на диск.

Як виправити це та встановити Debian? На сьогодні система (абсолютно нова!) Абсолютно непридатна, тому що я не можу отримати ОС на ній.


Чи може бути частиною проблеми те, що Debian / parted розпізнає диск неправильно? Він говорить, що диск становить 512,1 Гб, що правда в тому сенсі, що специфікації кажуть 512 ГБ, і саме так рекламується, і це дозволить мені виділити всі 512 ГБ на різні розділи. Однак якщо я завантажую його в Gparted, фактичний обсяг диска ближче до 476 ГБ, але я припускав, що це просто звичайні 1024 проти 1000 штук.

(Я також розмістив версію цього питання на форумах Debian , тому я оновлю своє запитання будь-яким важливим з цієї теми та навпаки.)


Ви намагалися встановити GRUB на зовнішній накопичувач, наприклад, на флешку?
McSinyx

Я бачу, ви використовуєте msdosтаблицю розділів. Чи працює GPT?
forquare

@forquare Ні, GPT також не працює.
Майкл А

@McSinyx Я можу встановити GRUB на зовнішній накопичувач, якщо зовнішній диск визнаний / dev / sdX, а не / dev / nvmeXXX або / dev / <якась інша дивна комбінація>. Мої переваги полягають у тому, що не потрібно використовувати USB-накопичувач лише для завантаження моєї машини, але все частіше виглядає так, що це мій єдиний варіант.
Майкл A

Відповіді:


13

Ось що працювало для мене, використовуючи Debian jessie (стабільний). Я в основному взяв інструкції з цього вікі-публікації і викреслив усі кроки щодо подвійного завантаження з Windows, оскільки вони не стосувалися мого випадку.

  1. У BIOS встановіть завантажувач "Тільки UEFI".

  2. Використовуючи Gparted, створіть на початку диска розділ FAT32 разом із прапорами bootта espпрапорами. (Інсталятор Debian також повинен це робити, але оскільки інсталятор неправильно визнав розмір диска, я вважаю за краще використовувати Gparted). У моєму випадку розділом FAT32 є / dev / nvme0n1p1.

  3. Під час встановлення переконайтеся, що налаштовано мережеве з'єднання (вручну чи автоматично, не має значення). В іншому випадку наступний крок не вдасться.

  4. На етапі встановлення, коли GRUB не вдалося встановити, відкрийте оболонку та виконайте такі команди:

    mount --bind /dev /target/dev
    mount --bind /dev/pts /target/dev/pts
    mount --bind /proc /target/proc
    mount --bind /sys /target/sys
    cp /etc/resolv.conf /target/etc
    chroot /target /bin/bash
    
    aptitude update
    aptitude install grub-efi-amd64
    update-grub
    grub-install --target=x86_64-efi /dev/nvme0n1
    

    Вийдіть із оболонки та виберіть "Продовжити без встановлення завантажувача". Ви побачите попереджувальне повідомлення, яке дає команди завантаження; ви можете проігнорувати це.

  5. Після завершення встановлення завантажте систему. Додайте "nvme" в / etc / initramfs-tools / module, а потім запустіть update-initramfs -uяк root.

  6. Відредагуйте / etc / default / grub та додайте цей рядок

    GRUB_CMDLINE_LINUX="intel_pstate=no_hwp"
    

    і додайте "nomodeset" до GRUB_CMDLINE_LINUX_DEFAULT, щоб це виглядало так:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset"
    
  7. Біжи update-grub.

Останні кілька команд (initramfs далі) необхідні для запобігання помилкам, що диск не знайдений вдруге при спробі завантаження в нову систему.


2
Дякую за це! Це працювало чудово навіть без використання Gparted!
Віктор Шредер

Коли я grub-install --target=x86_64-efi /dev/nvme0n1, я failed to register the EFI boot entry: No such file or directory
Ран

@Rahn Чи є насправді у /dev/nvme0n1вашій системі? Це не називається чимось іншим на кшталт /dev/nvme0n2? Вам слід задати нове запитання, але sudo fdisk -lце місце для початку.
Майкл А
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.