Практика загрузки. Изучение процесса загрузки Linux, Windows и Unix

Йогеш Бабар

 Состав исполнителей

Издания на английском языке
Автор
Йогеш Бабар
Директор- распорядитель, Apress Media LLC
Велмоуид Спахр
Редактор приобретения
Селестин Суреш Джон
Редактор по разработке
Мэтью Муди
Координирующий редактор
Адите Мираши
Разработка обложки
eStudioCalamar
Pixabay

 Об авторе

Йогеш Бабар

 Благодарности

 Введение

 Содержание

О книге
Состав исполнителей
Об авторе
О техническом рецензенте
Благодарности
Введение
Глава 1. Введение
Зачем?
Что именно?
На чём сосредоточена эта книга
Электропитание
ЦПУ
Глава 2. Множественная загрузка
Перечень операционных систем
Установка операционной системы
Первичный/ логический разделы
Разбиение на разделы
Первая устанавливаемая ОС: XP
Загрузочный сектор
OpenSolaris 2008
PC-BSD 9.0
Windows Server 2003
Windows 7
RHEL 6
Регулировки GRUB
Взламываем начальный загрузчик Windows
Fedora 15
Полная блок- схема
UEFI
Ограничения BIOS
Преимущества UEFI
GUI UEFI
Реализация UEFI
Системный раздел EFI
EFI
Безопасная загрузка
Таблица разделов
Перечень операционных систем
Ubuntu 18.04 LTS
Windows 10
Fedora 31
Оболочка UEFI
Недоразумения относительно UEFI
Недоразумение 1: UEFI это некий новый BIOS или UEFI и есть BIOS
Недоразумение 2: Microsoft это зло
Производители Linux должны выпускать свою собственную пару ключей
Все производители Linux обязаны выпускать лишь единственную пару ключей
Отключение свойства безопасной загрузки UEFI
Недоразумение 3: Отключаем UEFI
Глава 3. Начальный загрузчик GRUB
Реализация GRUB 2
GRUB 2 в системах на основе BIOS
/boot/grub2
Device.map
grub.cfg
i386-pc
/etc/default/grub
/etc/grub.d/
10_linux
20_linux_xen
20_ppc_terminfo
30_os_prober
30_uefi-firmware
40_custom и 41_custom
GRUB 2 в системах на основе UEFI
BLS
Распространённые проблемы начальной загрузки
Проблема 1 "Can’t Boot" (начальный загрузчик)
Проблема 2 "Can’t Boot" (начальный загрузчик)
Решение для систем на основе BIOS
Решение для систем на основе UEFI
Проблема 3 "Can’t Boot" (начальный загрузчик + ядро)
Решение для систем на основе BIOS
Решение для систем на основе UEFI
Функциональная возможность безопасного запуска UEFI
Проект множественной загрузки 100 ОС
Болванка небольшого начального загрузчика
GRUB 2 на нижнем уровне
Глава 4. Ядро
Загрузка своего ядра в оперативную память
После загрузки ядра в память
Защищённый режим
Длинный режим
Что распаковывает vmlinuz?
extract_kernel
Внутри установленного ядра
Глава 5. initramfs
Зачем требуется initramfs?
Инфраструктура
ramfs
tmpfs
rootfs
Реализация initramfs
bin
Обычные исполняемые файлы
Особые исполняемые файлы
Сетевые исполняемые файлы
Особые точки входа
Исполняемые файлы Systemd
Sbin
Исполняемые файлы файловой системы и относящиеся к хранению программы.
Сетевые исполняемые файлы
Особые исполняемые файлы
Базовые исполняемые файлы
etc
Виртуальные файловые системы
dev
proc и sys
usr, var
lib, lib64
Загрузка initramfs
Как ядро выделяет initramfs из памяти?
Как ядро монтирует initramfs в качестве корня?
Глава 6. dracut
Приступая к работе
Создание некого образа initramfs
Dracut и модули
Как dracut выбирает модули?
Персонализация initramfs
Модуль dracut или модуль ядра?
Проблема 4 "Can’t Boot" (initramfs)
Проблема 5 "Can’t Boot" (initramfs)
Параметры командной строки ядра
root
init
ro
rhgb и quite
selinux
Параметры командной строки dracut
rd.auto (rd.auto=1)
rd.hostonly=0
rd.fstab = 0
rd.skipfsck
rd.driver.blacklist, rd.driver.pre и rd.driver.post
rd.debug
rd.memdebug= [0-4]
lvm, raid и относящиеся к множественной загрузке параметры командной строки dracut
rd.break и rd.shell
Глава 7. systemd (Часть I)
Структура
Как systemd снижает время загрузки?
systemd-analyze
Проблема 6 "Can’t Boot" (systemd)
Поток systemd внутри initramfs
systemd-journal.socket
dracut-cmdline.service
dracut-pre-udev.service
dracut-pre-trigger.service
systemd-udev-trigger.service
local-fs.target
swap.target
dracut-initqueue.service
Проблема 7 "Can’t Boot" (systemd + Root LVM)
plymouth
Установка plymouth
Управление plymouth
Структура
Sysinit.target
Проблема 8 "Can’t Boot" (sysctl.conf)
basic.target
dracut-pre-mount.service
Глава 8. Оболочки отладки
Оболочка
Каким образом systemd перебрасывает нас в аварийную оболочку?
rescue.service и emergency.service
Глава 9. systemd (Часть II)
sysroot.mount
initrd.target
switch_root/pivot_root
Переключение к файловой системе Нового корня в системе на основе init
Переключение к файловой системе Нового корня в системе на основе systemd
Глава 10. Аварийный режим и образы live
Аварийный режим
Аварийный режим initramfs
Проблема 9 "Can’t Boot" (chroot)
Аварийный режим корпоративных дистрибутивов Linux
Образы live
SquashFS
rootfs.img
Последовательность загрузки образа live
Дополнение A. Зеркалирование загрузочного диска Windows
Что стоит знать перед началом
Цели зеркалирования
Используемые инструменты и методы
BCD и BCDedit
Diskpart
Reagentc
Robocopy
Заслуживающие внимания при создании и сопровождении моменты
Обновления
Резервное копирование сервера
Гибернация
Сочетание со Storage Spaces
Внимание к среде выполнения команд
Создание зеркалированного тома в системе на основе UEFI
Отключение гибернации
Клонирование раздела восстановления
Настройка Среды восстановления Windows в её собственном разделе
Клонирование системного раздела
Зеркалирование основного тома операционной системы
Обновление хранилища BCD на первом диске
Обновление хранилища BCD на втором диске
Обновление записи второго сплетения на втором диске
Создание зеркалированного тома в системе на основе BIOS
Отключение гибернации
Клонирование системного раздела и перемещение Среды восстановления Windows
Зеркалирование основного тома операционной системы
Обновление хранилища BCD на первом диске
Обновление хранилища BCD на втором диске
Обновление записи второго сплетения на втором диске
Восстановление имеющегося зеркала после отказа диска
Восстановление отказавшего диска в зеркалированном томе операционной системы в онованных на UEFI компьютерах
Восстановление отказавшего диска в зеркалированном томе операционной системы в онованных на BIOS компьютерах
Настройка пула и Storage Spaces на динамических томах
Создание пула хранения
Создание и форматирование зеркалированного пространства
Перенастройка зеркалированного пространства после отказа диска
Дополнение B. Перенос загрузочного диска Windows
Среда предустановки Windows
Комплект экспертизы и развёртывания Windows
Создание загружаемого носителя Windows PE
CopyPE
Makewinpemedia
Создание загружаемого носителя Windows PE
Перенос копии загрузочного диска при помощи файла .wim
DISM
Фиксация необходимого образа
Применение созданного образа
Вспомогательные сценарии
Применение созданного образа
Перенос копии загрузочного диска при помощи robocopy
Разбиение диска на разделы
Копирование загрузочного диска при помощи robocopy
Восстановление начального загрузчика
Восстанавливаем доверительные отношения между скопированной рабочей станцией и доменом AD
Проверка и изменение NLA
Восстановление доверительных отношений
Дополнение C. Просматриваем состояние дисков Windows Server Core
Запуск PowerShell в Windows Core через RDP
Установка Chocolatey и PowerShell 7
smartmontools
FileCommander как замена explorer.exe
Указатель