Как я могу знать, от которого раздела я загрузился?

У меня есть машина, которая имеет мультиразделы начальной загрузки. У меня есть Ubuntu 14.04 на одном разделе, Ubuntu 15.04 на втором и Ubuntu 16.04 на третьей. Есть ли способ знать из командной строки, из которого раздела я загрузился для нахождения Вас, на которых раздел /boot/grub/grub.cfg который использовался для процесса начальной загрузки? Я имею /boot/grub/grub.cfg на каждом из этих трех разделов.

12
задан 10 May 2017 в 04:22

6 ответов

После того как GRUB вручил от начальной загрузки ядру, ядро понятия не имеет, что запустилось, это, и /boot не могло бы быть то, которое использовал тот GRUB. Вы могли бы проверить времена доступа boot/grub/grub.cfg в каждом из разделов для наблюдения, к какому последний раз получили доступ. Это могло сказать Вам, какой конфигурационный файл раздела GRUB использовал.

stat -c %x /boot/grub/grub.cfg

, Если времена доступа не обновляются, необходимо будет искать любые различия в параметрах ядра, используемых различными конфигурационными файлами GRUB. Если можно изменить их, например, добавьте foo=1, foo=2, и т.д. к GRUB_CMDLINE_LINUX в каждом из них, работайте sudo update-grub2 и перезагрузка, то можно проверить /proc/cmdline для наблюдения, какое из этих значений использовалось.

10
ответ дан 23 November 2019 в 03:35

Отобразить устройство, содержащее в настоящее время монтируемую корневую файловую систему:

awk '$2=="/"{print $1}' /proc/mounts

Для отображения в настоящее время рабочей версии выпуска Ubuntu:

lsb_release -rs
3
ответ дан 23 November 2019 в 03:35
lsblk

И проверяют, какой диск смонтирован в /. Прочитайте комментарии ниже или ответ Ravexina, если Вы имеете /boot в Ваших смонтированных точках.

, Если Вы не уверены, проверьте UUID

lsblk -o UUID,NAME,SIZE,MOUNTPOINT
1
ответ дан 23 November 2019 в 03:35

Поскольку Вы знаете файл, который Вы ищете, расположен в /boot каталог Вашей рабочей системы. также /boot отдельный раздел, или это не; Если Ваш /boot отдельный раздел, необходимо искать это:

$ lsblk -r | grep '/boot'
sda2 8:1 0 400M 0 part /boot

Средства grub.cfg в котором используемый расположен sda2.

Othewise необходимо искать root:

$ lsblk -r | grep '/$'
sda1 8:1 0 121.2G 0 part /

на этот раз это расположено в sda1.

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

$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-686-pae root=UUID=938495-1fe2-3302 ro quiet

затем используйте UUID узнать, какой раздел является Вашим корнем.

$ sudo blkid | grep 938495-1fe2-3302
/dev/sda1: UUID="938495-1fe2-3302"

Что означает от sda1.

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

4
ответ дан 23 November 2019 в 03:35

Мы могли добавить простую запись пользовательского меню в каждой ОС, и мы будем видеть в меню Личинки, из которого загрузилась Личинка ОС, это - конфигурационный файл.

Пример:

Мы загружаемся в 16,04 и редактируем файл /etc/grub.d/40_custom добавить запись меню.

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
#

menuentry 'grub.conf loaded from 16.04' {        
            reboot  
    }

Мы удостоверяемся, что файл является исполняемым файлом и выполненный sudo update-grub.

Затем мы делаем те же изменения в другой ОС, мы просто используем различные названия menuentry, i.g. мы изменяемся 16.04 кому: 15.04 и так далее.

Если мы выберем эту запись меню в меню Личинки во время начальной загрузки, то машина просто перезагрузит, мы создали их, чтобы не загрузить любую ОС, но видеть, который ОС на самом деле используется для загрузки grub.conf.

Дополнительная информация

Этот вид беспорядка появляется, когда мы устанавливаем несколько ОС, которая вся Личинка использования и во время установки ОС мы выбираем то же местоположение загрузчика. Нам нужна действительно только одна ОС, которая устанавливает Личинку, Личинка может загрузиться в любой дистрибутив Linux, поэтому если у нас есть одно установленное распределение (включая Личинку), мы могли бы установить дополнительную ОС, не устанавливая Личинку.

В установках прежней версии довольно легко обработать местоположение для установки загрузчика, поскольку мы можем выбрать загрузочную запись раздела в качестве местоположения, но мы должны заботиться для выбора корректного раздела. Таким образом, одна ОС устанавливает загрузчик на MBR и установке дополнительной ОС загрузчик к PBR раздела ОС. Эта возможность, которую мы имеем только, когда мы используем Something else- опция во время установки.

В UEFI-установках это немного более странно, загрузчик будет установлен на папке в Системном разделе EFI (ESP), и несколько загрузчиков могут легко сосуществовать. Проблема здесь состоит в том, что все ароматы Ubuntu и также некоторые другие дистрибутивы Linux установят Личинку на той же папке в ESP, и у нас нет выбора. Так установка дополнительного дистрибутива Linux перезаписала бы наш уже существующий загрузчик. Единственным путем я знаю, чтобы избежать, чтобы это загрузилось в живую сессию и запустить установщик с sudo ubiquity -b.

Другое простое решение

Давайте предположим, что у нас есть три дистрибутива Linux, установленные на разделах sda1,sda2 и sda3. Теперь мы смотрим на записи меню начальной загрузки Личинки. Во время начальной загрузки мы будем видеть что-то вроде этого:

1  Ubuntu
2  Advanced options for Ubuntu
3  Memory test (memtest86+)
4  Memory test (memtest86+, serial console 115200)
5  Ubuntu (on /dev/sda2)
6  Advanced options for Ubuntu (on /dev/sda2)
7  Ubuntu 17.04 (on /dev/sda3)
8  Advanced options for Ubuntu (on /dev/sda3)

Первые две записи являются записями для ОС, которая генерировала grub.conf- файл мы на самом деле используем. Записи № 3 и № 4 не интересны в данный момент. Записи № 5, № 6, № 7 и № 8 являются записями, которые были сгенерированы с тестером ОС, и мы видим, на котором делит ОС для этих записей, находятся. Таким образом в случае этого небольшого примера мы можем прийти к заключению что grub.config- файл, который мы на самом деле используем, не принадлежит ОС на sda2 или sda3но к ОС на sda1. В случае один или несколько ОС установлены с отдельным /boot- раздел мы должны были бы проверить который /boot- раздел принадлежит, к которому ОС, но это легко сделано путем выполнения findmnt- команда в каждой ОС.

2
ответ дан 23 November 2019 в 03:35

Знать, от которого делят пользователя, загрузилось, посмотрите на меню загрузчика прежде, чем загрузить любую из установленных систем. Трудно сказать, не видя меню загрузчика.

Где посмотреть на

В следующих объединенных снимках экрана я маркировал три подсказки, что можно было бы знать, от которого делят пользователя, загрузился.

Multi boot menu using GNU GRUB PC/BIOS version with annotation

Маркируйте (1): записи меню GNU GRUB ниже первой записи

Маркируйте (2): GNU версия GRUB наверху меню загрузчика

Маркируйте (3): GNU фоновое изображение GRUB (ручная требуемая установка)

Самая очевидная подсказка, маркируют (3), который должен изменить GNU фоновое изображение GRUB в системе, которые имеют контроль над меню загрузчика. Является самым легким сказать, предоставленный пользователю настраивает его заранее.

Маркируйте (1) объясненный

Ищите раздел, который не перечислен в записях меню ниже первой записи. В снимке экрана существует только две устанавливаемые операционных системы т.е. "Ubuntu" и "Ubuntu 14.04.5 LTS".

Ubuntu
Advanced options for Ubuntu
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Ubuntu 14.04.5 LTS (14.04) (on /dev/sda3)
Advanced options for Ubuntu 14.04.5 LTS (14.04) (on /dev/sda3)

Последний упомянул (on /dev/sda3), что означает, что первый мог бы быть расположен на /dev/sda2 или /dev/sda1. Безусловно, после начальной загрузки системы т.е. "Ubuntu", выполненная соответствующая команда для списка вниз доступных разделов (lsblk кажется, является самым простым).

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    13G  0 disk 
├─sda1   8:1    0   976M  0 part [SWAP]
├─sda2   8:2    0     6G  0 part /
└─sda3   8:3    0     6G  0 part 
sr0     11:0    1  55.7M  0 rom 

Только после по сравнению с выводом lsblk, затем мы знаем, что система т.е. "Ubuntu" найдены в /dev/sda2 (который не был перечислен в записях меню), от которого управляют меню загрузчика.

Маркируйте (2) объясненный

Ищите версию GRUB, которая печатается наверху меню загрузчика. Обратите внимание, что версия и выдерживает сравнение с версией GRUB, которая найдена в загруженной системе т.е. "Ubuntu".

В снимке экрана (нижняя половина): GNU GRUB version 2.02~beta2-9

После начальной загрузки системы т.е. "Ubuntu", выполненная соответствующая команда для проверки версии пакета GRUB (grub-install --version является релевантным и самым простым).

$ grub-install --version
grub-install (GRUB) 2.02~beta2-9

Как это релевантно? Поскольку grub-install и update-grub команды оба обеспечиваются тем же пакетом grub2-common. Учитывая, что меню загрузчика создается и обновило инструменты использования от того же пакета, печатная версия наверху меню загрузчика будет тем же.

Маркируйте (3) объясненный

Эта подсказка требует, чтобы быть настроенной вручную, так как фоновое изображение по умолчанию меню загрузчика не ни один (просто черный). Фоновое изображение должно быть 8-разрядной глубиной.

Если desktop-base пакет установлен в Вашей системе, такие фоновые изображения, которые сделаны особенно для GRUB, с готовностью найдены с суффиксом имени файла *grub.png в целевом каталоге.

$ ls /usr/share/images/desktop-base/*grub.png
/usr/share/images/desktop-base/desktop-grub.png
/usr/share/images/desktop-base/joy-grub.png
/usr/share/images/desktop-base/moreblue-orbit-grub.png
/usr/share/images/desktop-base/spacefun-grub.png

Настраивать фоновое изображение:

  1. Открытый /etc/default/grub файл как суперпользователь, затем добавьте строку GRUB_BACKGROUND= с полным путем к предпочтительному изображению и заключенный в кавычки.

    $ sudo nano /etc/default/grub 
    ...
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX=""
    
    # Show background in GRUB boot menu
    GRUB_BACKGROUND="/usr/share/images/desktop-base/spacefun-grub.png"
    ...
    
  2. Затем выполненный sudo update-grub обновить /boot/grub/grub.cfg это включает меню загрузчика. Пользователь будет видеть подобный вывод к следующему.

    $ sudo update-grub
    Generating grub configuration file ...
    Found background: /usr/share/images/desktop-base/spacefun-grub.png
    Found background image: /usr/share/images/desktop-base/spacefun-grub.png
    Found linux image: /boot/vmlinuz-3.13.0-24-generic
    Found initrd image: /boot/initrd.img-3.13.0-24-generic
    Found memtest86+ image: /boot/memtest86+.elf
    Found memtest86+ image: /boot/memtest86+.bin
    Found Ubuntu 14.04.5 LTS (14.04) on /dev/sda3
    done
    
  3. Перезагрузите машину и посмотрите, имело ли меню загрузчика какие-либо видимые изменения, внесенные командой обновления от системы.

Еще, повторите шаги для других систем по одному. Повторные шаги были бы ненужными, должен пользователь, знающий, какая система управляла меню загрузчика (снова, это зависит от того, как установка была сделана).

Отказ от ответственности

Этот ответ объясняет для доказанных и хорошо протестированных критериев системы BIOS со много установкой начальной загрузки с помощью GNU GRUB ПК/версия BIOS. Следующие исключения будут применяться.

  • Для системного дубликата UEFI с помощью GNU GRUB версия EFI это не гарантируется или не известно, если критерии, казалось бы, совпадали бы с описанный выше.

  • Акцент дан взглядам меню загрузчика (как это может появиться другая т.е. верхняя половина снимка экрана) а не продемонстрировать, как chainloading работает. По сути, относительно "то, как много начальная загрузка была настроена, как замечено в снимке экрана", не будет объяснено в этом ответе.

  • Если много установка начальной загрузки когда-либо делается из точно тех же копий подобной операционной системы т.е. Ubuntu 14.04, Kubuntu 14.04, Xubuntu 14.04, и т.д., то единственный надежный способ знать, от которого делят пользователя, загрузился, маркируют (3).

  • Маркируйте (3), мог бы работать лучшее использующее пользовательское фоновое изображение, которое явно пишет, от которого это загружается, т.е. "Этим меню начальной загрузки управляют от/dev/sda1". Точно так же относительно "то, как создать пользовательское фоновое изображение для GRUB", не было бы объяснено в этом ответе.

TL; Взгляд DR на меню загрузчика прежде, чем загрузить любую из установленных систем. Самый легкий и самый надежный способ знать, маркируют (3), который должен настроить фоновое изображение GRUB вручную.

0
ответ дан 23 November 2019 в 03:35

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

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