- GRUB: Получаем полный доступ к системе
- Сценарий 1: загружаемся со внешнего носителя
- Сценарий 2: получаем консоль root’a
- Защита?
- Баян!
- Booting GNU/Linux Manually with GRUB Prompt
- System Summary
- 1. See Normal Prompt
- 2. See All The Hard Disk Drives
- 3. See Your OS Partition
- 4. The First Command
- 5. The Second Command
- 6. The Third Command
- 7. The Fourth Command
- 8. Commands Summary
- 9. The Result
GRUB: Получаем полный доступ к системе
GRUB, безусловно, является самым продвинутым загрузчиком на сегодняшний день, и за это любим админами и разработчиками по всему миру. Его функционал настолько широк, что он практически монополизировал рынок загрузчиков в мире *NIX, а некоторые вообще говорили, что GRUB2 — это скорее маленькая операционная система, чем просто загрузчик. Эдакий швейцарский нож в мире загрузчиков.
Но в этот раз я хочу обратить внимание на то, что с помощью швейцарского ножа можно не только открывать консервы, но и вырезать неприличные слова на парте.
Сценарий 1: загружаемся со внешнего носителя
- Изготавливаем загрузочную флешку любым способом, например, с помощью unetbootin.
- Вставляем флешку и включаем компьютер.
- Дожидаемся появления экрана grub (иногда для того, чтобы успеть его поймать, надо держать Shift ).
- Перед нами появляется список вариантов загрузки.
- Нажимаем c и входим в интерактивный режим.
- Теперь требуется указать носитель, с которого будем грузиться. Обычно (hd0) — это родной жесткий диск компьютера, а флешка становится (hd1). Выяснить, как назовется флешка в вашем случае, нетрудно просто опытным путем.
Так или иначе, вводим: root (hd1) для GRUB Legacy или set root=(hd1) для GRUB2 - Просим передать управление загрузчику на указанном диске: chainloader +1
- Загружаемся! boot
Сценарий 2: получаем консоль root’a
- Аналогично, добираемся до списка вариантов загрузки.
- Выбираем нужный нам вариант.
- Входим в режим редактирования. Здесь есть небольшие отличия между GRUB Legacy и GRUB2. В GRUB2 после нажатия клавиши e мы сразу попадаем в режим редактирования, а в GRUB Legacy нужно нажать e первый раз, выбрать строку для редактирования и еще раз нажать e .
- Выбираем строку, которая начинается со слова linux или kernel.
- Удаляем из нее слова quiet и splash , если они есть, и дописываем в конец single init=/bin/bash
- Если у нас GRUB2, то сразу жмем Ctrl+X , а если GRUB Legacy — Esc и потом b
Защита?
И GRUB2, и GRUB Legacy предоставляют возможность ограничить доступ к интерактивному режиму и редактированию с помощью директивы password . Подробности описаны в руководстве по GRUB2 и GRUB Legacy. В обоих случаях манипуляции весьма просты и не требуют много времени.
Баян!
В общем, да, ничего нового я не сказал — все это можно нагуглить, например так. Однако, проблема от этого меньше не становится, наоборот. Более того, если с января в школа действительно поставят linux, то желающих считерить или просто «похакать терминалку» станет на порядок-другой больше. И не стоит недооценивать школьников — найдутся и те, кто умеют гуглить. Если же принять во внимание лирическое отступление, которое я сделал в первой части, то тут еще и поле для утечки данных. Думаю, каждый сможет придумать еще пару способов применения.
Booting GNU/Linux Manually with GRUB Prompt
This is a recovery tutorial about using GRUB prompt to boot an operating system inside a hard disk drive. GRUB prompt is a program appearing at screen with black and white color, while a normal GRUB bootloader failed to be installed. GRUB prompt is similar to bash command line, usually in Terminal, but it has special commands because it is actually also the bootloader. By using GRUB prompt you can boot an operating system manually inside internal or external hard disk drive in any partition. Later, by successfully boot a GNU/Linux operating system with GRUB prompt, you may install the GRUB bootloader from the operating system.
System Summary
- ASUS X44C
- Internal hard disk drive 320 GB with 3 primary partitions.
- External hard disk drive 320 GB with 3 primary partitions, 1 extended partition, and 6 logical partitions.
- External hard disk drive has no GRUB bootloader (selecting bootloader), but has only GRUB prompt.
1. See Normal Prompt
It means it waits the user to enter a command.
2. See All The Hard Disk Drives
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos3) (hd1,msdos2) (hd1,msdos1)
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos3) (hd1,msdos2) (hd1,msdos1)
Hard disk drive: GRUB names every hard disk drive with the name format (hdd_position) then names every partition (partition_position, partition_type[partition_number]). Then (hd0) means your first hard disk drive detected by GRUB, and hd1 is your second. In GNU/Linux, we usually call them /dev/sda and /dev/sdb respectively. If your have more hard disk drives attached, you will have hd2, hd3, and afterwards.
Partition: (hd0,msdos1) is the first partition in the first hard disk. In some systems, this will be the /dev/sda1. Pay attention into the name /dev/sda for the hard disk and /dev/sda1 for the partition inside the hard disk. Notice the number following the name. Then (hd0,msdos2) and (hd0,msdos3) are /dev/sda2 and /dev/sda3 partitions inside the same hard disk respectively.
If you have more than one hard disk, then (hd1,msdos1) usually means /dev/sdb1 partition . (hd1,msdos2) and (hd1,msdos3) usually mean /dev/sdb2 and /dev/sdb3 partitions inside the same hard disk.
Msdos: The name msdos in every partition name showing that the partition is using Master Boot Record (MBR) partition table scheme. It is an old partition table from the MSDOS era so it is called simply msdos.
3. See Your OS Partition
You should remember where is your OS partition, whether it is in the first hard disk or in the second hard disk. Then after you are sure, you should be sure in what partition it is.
In our example, we want to boot the operating system inside (hd0,msdos3) or in our system in the second hard disk drive, in the /dev/sdb3 (not /dev/sda3) partition, with the operating system name Kubuntu 15.10 Wily Werewolf.
4. The First Command
The first command to perform is to enter the hard disk drive. We want to enter (hd0,msdos3) so we type this command:
5. The Second Command
The second command is to call the operating system kernel to live. Because we have entered the (hd0,3) or /dev/sdb3 in our external hard disk drive, we type the command:
linux /boot/vmlinuz-4.2.0-16-generic root=/dev/sdb3
TAB: press tab button after writing /boot/vmli and GRUB will automatically complete the long name for you. It is very similar with bash shell. You don’t have to type vmlinuz-4.2.0-16-generic long name manually.
PARAMETER: the second argument (root=/dev/sdb3) is a clue for the kernel to find the root operating system. You must give it correctly, otherwise you will find a kernel panic error. We’ve mentioned that our (hd0,msdos3) is /dev/sdb3, so we give here parameter root=/dev/sdb3.
Explanation: the format of this command is . Because we want to boot a GNU/Linux operating system, then we use the linux as , /boot/vmlinuz-4.2.0-16-generic as , and root=dev/sdb3 as .
6. The Third Command
The third command is to call initrd (initial ram disk) to help kernel to boot. The command is very similar:
initrd /boot/initrd.img-4.2.0-16-generic
TAB: press tab button after writing /boot/init and GRUB will automatically complete the long name for you. It is very similar with bash shell. You don’t have to type long name initrd.img-4.2.0-16-generic manually same as when you type the kernel name.
7. The Fourth Command
The fourth command is to execute all three commands have typed. In another word, to boot the OS. The command is simply:
8. Commands Summary
set root=(hd0,3) linux /boot/vmlinuz-4.2.0-16-generic root=/dev/sdb3 initrd /boot/initrd.img-4.2.0-16-generic boot
9. The Result
You will see your monitor shows many line of texts output as usually you see from a normal bootloader. At the final steps, you will see your operating system is booted and ready to use.