# Задания

# 1. BIOS

Установите в машину `studX-bios` две операционные системы. Перед началом проверьте вкладку `Hardware` в Proxmox. В качестве `BIOS` должен быть выбран `SeaBIOS`. В наличии должно быть два диска `scsi0` и `scsi1`. Сетевой интерфейс должен быть `vmbrX`, а ip адреса из сети `192.168.0.0/24` (та же сеть, что и в занятиях 03 и 12 первого модуля) для доступа к сети интернет через шлюз `192.168.0.1`. Настройка сети не обязательна, кроме последнего задания.

Сначала установите Debian из образа `debian-12.1.0-amd64-netinst.iso` на диск `scsi0`. Затем установите Ubuntu Server (minimized) на второй диск `scsi1` `ubuntu-22.04.3-live-server-amd64.iso`. При установке Ubuntu выберите ручную разметку диска (3ий пункт `Something Else`). Создайте на неразмеченном диске следующие разделы:
- `Reserved BIOS boot area` размером 1MB,
- `Ext4 journaling file system` размером 512MB с точкой монтирования `/boot`,
- `swap area` размером 1024MB,
- `Ext4 journaling file system` размером оставшегося свободного пространства с точкой монтирования `/`.

Установите GRUB на тот диск, для которого вы произвели разметку. Игнорируйте предупреждение, об отсутствии `EFI` раздела.

В Proxmox изменить порядок загрузки, в отличие от реального железа, возможно во вкладке виртуальной машины `Options`. В реальном железе в подобное меню можно зайти при старте машины по специальной клавише, заданной производителем материнской платы, например: `Del`, `F12`.

### 1.1 BIOS
Перезагрузите машину. Какая ОС загружается по умолчанию? Загрузите Debian с помощью выбора в GRUB меню. Посмотрите на выдачу следующих команд:
```
# lsblk
# fdisk -l /dev/sda
# fdisk -l /dev/sdb
```
Загрузите Ubuntu и также проверьте эти команды.

Изучите директорию `/boot/`.

### 1.2 BIOS
Теперь загрузите Debian и Ubuntu, но с помощью выбора в меню BIOS диска для загрузки `scsi0` и `scsi1`. В меню можно попасть при загрузке машины по клавише `Esc`.

### 1.3 BIOS
Поменяйте порядок дисков загрузки в BIOS.

# 2. UEFI

Установите в машину `studX-uefi` две операционные системы. Перед началом проверьте вкладку `Hardware` в Proxmox. В качестве `BIOS` должен быть выбран `OVMF (UEFI)`. В наличии должно быть два диска `scsi0` и `scsi1`.

Сначала установите Debian из образа `debian-12.1.0-amd64-netinst.iso` на диск `scsi0`. Затем установите Ubuntu Server (minimized) на второй диск `scsi1` `ubuntu-22.04.3-live-server-amd64.iso`. При установке Ubuntu выберите ручную разметку диска (3ий пункт `Something Else`). Создайте на неразмеченном диске следующие разделы:
- `swap area` размером 1024MB,
- `Ext4 journaling file system` размером оставшегося свободного пространства с точкой монтирования `/`.

Установите GRUB на тот диск, для которого вы произвели разметку.

### 2.1 UEFI

Перезагрузите машину. Какая ОС загружается по умолчанию? Загрузите Debian с помощью выбора в GRUB меню. Посмотрите на выдачу следующих команд:
```
# lsblk
# fdisk -l /dev/sda
# fdisk -l /dev/sdb
```
Загрузите Ubuntu и также проверьте эти команды.

Изучите директорию `/boot/efi/`.

### 2.2 UEFI
Поменяйте порядок загрузки в UEFI графической консоли `UEFI Firmware settings`.

### 2.3 UEFI
Поменяйте порядок загрузки в UEFI терминале `EFI Internal Shell`.  Изучите команды и файловые системы `FS0:`, `FS1:`, `FS2:`. 

### 2.4 UEFI
Поменяйте порядок загрузки с помощью команды `efibootmgr` из операционной системы. Изучите директорию `/boot/efi`. 

# 3. GRUB

### 3.0 GRUB
Зайдите в GRUB меню в shell во время загрузки машины клавишей `c`. Попробуйте следующие команды:
```
grub> ls 
grub> ls (hd0, gpt1)/
grub> ls (hd0, gpt2)/
grub> ls (hd0, gpt3)/
```

Найдите диск с директорией `/efi` и найдите в ней папку `/efi/debian`. Выполните следующие команды:
```
set prefix=(hd0,1)/efi/debian
set root=(hd0,1)
insmod linux
insmod normal
normal
```
Вы должны попасть в GRUB, установленный Debian.

### 3.1 GRUB
Поменяйте порядок загрузки операционных систем в `grub.conf`. 

### 3.2 GRUB
Настройте GRUB на ожидание 15 секунд перед загрузкой операционной системы по умолчанию, если никакая клавиша не нажата.

### 3.3 GRUB
Добавьте опцию в меню, которая загружает ОС в single-user mode (с параметром `single`).


# *Настройте PXE boot сервер

PXE — это протокол, используемый для загрузки операционных систем по сети https://ru.wikipedia.org/wiki/PXE. 

Возьмите любые две машины в сети `192.168.0.1/24` подключенные к интерфейсу `vmbrX`. Следуя руководству https://linuxhint.com/pxe_boot_ubuntu_server/ настройте PXE загрузочный север. 

Проверьте работу сервера на другой машине, выбрав `iPXE` в меню загрузки `BIOS`.


# Источники

## Релевантные веб источники

1. https://0xax.gitbooks.io/linux-insides/content/Initialization/
2. http://www.collados.cat/asix1/m01/tu1/m01tu01pr12.php
3. https://learning.lpi.org/en/learning-materials/101-500/102/102.2/102.2_01/
4. https://www.linux-magazine.com/Online/Features/Coping-with-the-UEFI-Boot-Process
5. http://www.rodsbooks.com/gdisk/mbr2gpt.html
6. https://www.youtube.com/watch?v=Q3rssfwxcyA
7. https://www.youtube.com/watch?v=7D4qiFIosWk
8. https://www.happyassassin.net/posts/2014/01/25/uefi-boot-how-does-that-actually-work-then/
8. https://linuxhint.com/use-uefi-interactive-shell-and-its-common-commands/
9. https://docs.nvidia.com/networking/m/view-rendered-page.action?abstractPageId=25139424
10. https://help.ubuntu.com/community/Grub2
11. https://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/how-to-install-ubuntu-22-04-lts.html

## Релевантные главы в книгах

1. Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley, Dan Macking. Unix Handbook. 2 Chapter. (117 page ebook).
2. Raphael Hertzog, Roland Mas. The Debian Administrators's Handbook. 9 Chapter (233 page ebook).
3. Michael W. Lucas. Absolute FreeBSD. 4 chapter (103 page ebook)