Как вы запускаете update-grub?

25

Я вошел в Live CD и активировал Терминал. Затем я набрал, gksu nautilusчтобы получить временный доступ к моему корневому каталогу. Когда открылось окно диспетчера, я щелкнул по Файловая система и перешел в /etc/default/grubкаталог. Затем я дважды щелкнул файл Grub, чтобы внести изменения в TIMEOUTи TIMEOUT_QUIET.

Я сохранил файл после внесения изменений. Затем я вернулся в режим терминала и набрал:

gksu update-grub

Я получил сообщение об ошибке:

Не удается найти устройство для / (смонтировано / dev?)

Я не уверен, что делать на этом этапе. Как я могу запустить, update-grubчтобы обновить изменения? Заранее спасибо за вашу помощь. Пожалуйста, будьте очень подробны и конкретны с вашим ответом, так как я совершенно новичок в этой среде

newbietoubu
источник

Ответы:

24

Этап 1 - Примечание: не используйте Live CD.

  • В вашем Ubuntu откройте терминал (нажмите одновременно Ctrl+ Alt+ T)
  • Введите gedit admin:///etc/default/grub
    Это запустит текстовый редактор gedit , если вы используете другой, просто введите его имя вместо gedit.
  • Внесите изменения, которые вы хотите внести, и сохраните их.
  • Закрыть Гедит.
    Ваш терминал все еще должен быть открыт.
  • В типе терминала sudo update-grubдождитесь окончания обновления.
  • Перезагрузите компьютер.

Этап 2 - После того, как вы вошли в систему

  • Снова откройте терминал ( Ctrl+ Alt+ T).
  • Введите в терминале gksu gedit /etc/default/grub
  • Чтобы увидеть меню grub во время загрузки,
    прокомментируйте или удалите следующую строку:GRUB_HIDDEN_TIMEOUT=0
    • Чтобы прокомментировать, добавьте #в начале этой строки, результат будет#GRUB_HIDDEN_TIMEOUT=0
  • Сохраните файл.
  • Снова в терминале запустить sudo update-grub.

Если единственное, что вам нужно, это увидеть меню grub при загрузке, отмените внесенные ранее изменения в файл.

Йерун
источник
Спасибо за ваш ответ. Исходная проблема, которую я пытаюсь решить, заключается в том, что я не могу открыть меню grub. Поэтому я подумал, что мне нужно использовать Live CD, чтобы получить доступ к файлу конфигурации grub и внести свои изменения. Я прочитал, что если я изменю TIMEOUT на 10, а TIMEOUT_QUIT на true, я смогу получить доступ к меню Grub. Когда я загружаю систему, я удерживаю клавишу Shift. Я вижу слова GRUB MENU всплывающие только на долю секунды. Поэтому, не имея возможности использовать Live CD для доступа к Терминалу, я не могу понять, как изменить файл конфигурации GRUB. Любые предложения о том, как это сделать?
newbietoubu
Я думаю, что Джероен прямо ответил на это. Возможно, вы пытаетесь изменить меню grub, находясь в grub ???
pfeiffep
2
Смотрите мой улучшенный ответ.
Йероен
6

Вы получаете это сообщение, потому что Live CD не монтирует записываемую файловую систему. Он предназначен только для опробования Ubuntu или для спасения поврежденной системы. Выполнение sudo update-grubтолько работает на установленной версии Ubuntu, где у вас есть доступ на запись к основным файлам GRUB (а на Live CD вы этого не делаете).

Аарон
источник
4
Хорошая информация, но ОП также хотел бы знать, как он может внести необходимые изменения, /etc/default/grubа затем update-grub.
Часов
2

Вы можете сделать update-grub с живого CD на установленном дистрибутиве Ubuntu (хотя я предполагаю, что это работает с любым дистрибутивом [на основе debian?] Linux. Это «требуется» (могут быть другие методы, но, зная этот, я не не волнует их вообще) если вы клонируете свой диск и уже установили новый в компьютер. Я часто упоминаю клонирование, потому что в некотором смысле шаг update-grub является его подмножеством, и подходы имеют то же самое Кроме того, этот метод был обнаружен с помощью поиска в контексте клонирования. Вы можете взять из него то, что вам нужно, если не клонируете, и ваш процесс будет упрощен.

Я должен квалифицировать это здесь; это важно для клонирования, а не просто для обновления grub: я делал это только на системах BIOS. Я не пытался сделать это в системе UEFI. Системе UEFI требуется раздел FAT для загрузки при загрузке, и я не проверял, должен ли этот раздел просто использоваться для выполнения операций копирования клонирования. Я ожидаю, что это действительно влияет на требуемое [bind-] монтирование, которое синтезирует нативную среду grub во время живого сеанса ...

Это подробно описано на этой странице: http://frugaltech.happystoic.com/ssdlinux . Я использовал этот метод много раз, и вы можете менять жесткие диски до бесконечности, используя его. Обмен физическими жесткими дисками становится таким тривиальным, так что заманчиво сделать это своим хобби и / или попытаться починить испорченные компьютеры других людей.

Следующее может быть полезным перефразированием того, что вы найдете там:

  1. Ctrl+ Alt+ Tдля терминала Bash и войти в суперпользовательскую оболочку ( sudo -s) во время сеанса в реальном времени.

  2. смонтировать раздел диска полной установки (тот, который [или станет] вашим постоянным корневым каталогом файловой системы Linux).

    2а. Если на вашем жестком диске уже установлена ​​полная установка, перейдите к (2). ЕСЛИ вы КЛОНИРУЕТЕ: [исходя из предположения, что вы не делаете новую установку, поскольку в этом случае все происходит полностью автоматически], если ваша полная установка еще не существует в этом разделе, сейчас самое время просто

    rsync -a /existing/linux/filesystem/live-mount-point/ /new/linux/filesystem/live-mount-point/ 
    

    [эти точки монтирования относятся исключительно к среде реального сеанса - в Ubuntu они обычно имеют вид "/ media / ubuntu / ???"] на новом диске [раздел].

    2b. Другие полные установки операционной системы могут быть обработаны таким же образом здесь. Я обычно использовал Windows-ресурс для массового копирования разделов Windows на новые диски заранее, но я также использовал rsync, и он работал для Win XP (при условии, что у вас есть поддержка правильного формата раздела, такого как ntfs; я думаю, что в прямом эфире сессионные СМИ обычно включают поддержку альтернативного формата). Просто будьте осторожны с орфографией и используйте трейлинг /в исходном каталоге, если вы полностью называете цель.

  3. привязать каталоги live /dev, /procи /sysкаталоги к соответствующим каталогам в вашем [смонтированном] разделе постоянной полной установки, который вы хотите использовать. Сценарий, описанный в приведенной выше ссылке, очень элегантно завершается с помощью оператора for. Кроме того, данный скрипт не обязательно должен быть выполнен как скрипт как таковой. Его можно ввести из командной строки bash, построчно.

  4. chrootв постоянный раздел полной установки. После выполнения (3) и (4) система теперь «фактически находится» в вашей «конечной файловой системе», и GRUB будет функционировать равномерно. Без этих шагов grub будет предполагать, что ваша система - просто живая сессия, и я не знаю точно, что она делает в этом случае, но в достаточной степени это не желаемый результат, о котором говорилось выше в этой теме.

  5. запустите grub-install на /dev/sdX(диск, а не точка монтирования), который соответствует постоянной установке (или на том диске, на котором будет работать GRUB, если используется система с несколькими дисками [, multi-boot]). Гибкость здесь может зависеть от вашего урожая и BIOS. Насколько я знаю, запуск "grub-install" не делает ничего вредного, если в этом нет необходимости, поэтому я всегда делаю это, если использую этот метод сеанса в реальном времени.

  6. запустите update-grub, и он будет действовать так, как будто работающая система вложена в будущий постоянный раздел, обнаруживая все ядра и загрузочные ОС, которые могут у вас быть.

  7. Если вы физически не меняли жесткие диски, перейдите к (5). В противном случае отредактируйте или проверьте свой /new/linux/filesystem/live-mount-point/etc/fstabфайл, чтобы обеспечить правильную структуру файловой системы для вашей [новой] среды. Если вы находитесь на этом уровне, вы наверняка уже знаете об использовании blkid для сбора UUID для fstab.

    ИМХО: вы всегда должны использовать UUID в fstab (не в форме «dev / sdXY»), поскольку в своей собственной области он не подвержен реконфигурации физического жесткого диска, кроме той степени, в которой это требует буквального обновления значений UUID (например, если в когда-нибудь в будущем вы установите дополнительный жесткий диск для вашего каталога / home и т. д.). Это просто самый фундаментальный, надежный и инвариантный подход.

  8. выйдите из chroot, выйдите из supershell, выйдите из bash, завершите работу и запустите систему без живых носителей. Теперь вы должны быть там, где вы хотели.

    Важное примечание: Аргументы для mount и chrootявляются каталогами (как правило, МОНТАЖНЫЕ ТОЧКИ, такие как /mnt/??или /media/??), соответствующие живому сеансу. В большинстве, если не во всех случаях, полная установка находится в своем собственном разделе, поэтому термины «каталог» и «точка монтирования» являются здесь синонимами. Аргументом для grub-install является PHYSICAL DRIVE (обычно /dev/sdX, где «X» - это буква, соответствующая диску в вашей системе, sda, sdb и т. Д., И она не должна зависеть от сеанса).

Теперь вы должны быть сделаны. Я одновременно клонировал Windows (XP и 7) в различных перестановках вместе с Ubuntu и Puppy, используя этот метод, и это меня не подвело. Я думаю, что вы можете использовать живую среду другого дистрибутива (однако для этого я использовал только разные версии Ubuntu и Mint), если они предоставляют версию GRUB, которую вы намереваетесь использовать. Вы можете перемещать разделы, менять местами диски, объединять другие установки ОС и клонировать их в SSD или из него, используя это. Однако я могу говорить только с ним, работая на той же машине. Я предполагаю, что драйверы, которые могут потребоваться для другого компьютера, могли быть пропущены во время предыдущей полной установки. Мое эмпирическое правило заключается в том, что переключение дисков в компьютере требует этого метода, но переключение компьютеров с помощью диска требует полной [переустановки].

Возможно, кто-то может разоблачить это ..?

Джонатан Уиттум
источник
1
Добро пожаловать в Спросите Ubuntu! :-) Отличный первый ответ! +1
Fabby