Из любопытства, можно ли узнать, какой загрузчик использовался для запуска данной системы? Система была загруженаGRUB,ЛИЛОили любой другой загрузчик?
Полагаю, должна существовать какая-то /sys
переменная /proc
для этого?
РЕДАКТИРОВАТЬ:
Сводка информации о загрузке: => Lilo установлен в MBR /dev/sda
сда1: ___________________________________________________________________
File system: Boot sector type: Unknown Boot sector info: Mounting failed: mount: unknown filesystem type ''
/dev/sda
это единственное устройство, с которого мне приходится загружаться.
Интересно, если на единственном доступном разделе нет известной файловой системы, то как ему удалось загрузиться?
решение1
Я не верю, что эта информация отслеживается осмысленным образом в /sys
или /proc
. Единственный способ, которым я могу представить, чтобы это было доступно вам после загрузки, — это опрос системы, либо путем проверки наличия файла конфигурации GRUB или Lilo, либо путем использования скрипта, такого какbootinfoscript
.
Пример - проверка загрузочного устройства
Если вы знаете, с какого устройства была загружена ваша система, вы можете использовать его dd
для сброса содержимого загрузчика, а затем grep
для GRUB или LILO.
Чтобы определить, используете ли вы GRUB или LILO, можно использовать следующие команды:
$ sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep GRUB
$ sudo dd if=/dev/sda bs=512 count=1 2>&1 | grep LILO
Какой бы из этих загрузчиков вы ни использовали, он и будет возвращать эту строку:
Binary file (standard input) matches
Пример - использование bootinfoscript
$ sudo ./bootinfoscript --stdout
Boot Info Script 0.61 [1 April 2012]
============================= Boot Info Summary: ===============================
=> Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of
the same hard drive for core.img, but core.img can not be found at this
location.
sda1: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System:
Boot files: /grub2/grub.cfg
...
Однако ни один из этих подходов не является «окончательным», поскольку несколько загрузчиков могут сосуществовать, но, по крайней мере, он дает вам приблизительное представление о загрузчиках, которые «могут» использоваться.
Рекомендации
решение2
Видетьэтот. Однако этот скрипт написан на Bash, поэтому если вам нужно запустить его на встроенной платформе, вам придется его модифицировать. Я протестировал этот скрипт, и он правильно распознал GRUB на Ubuntu и LILO на Slackware.
решение3
Чтобы получить идентификатор загрузчика, используйтетип_загрузчика
echo $((`cat /proc/sys/kernel/bootloader_type`>>4))
Найди свойидентификатор загрузчика