os:boot
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
os:boot [26.09.2023 11:58] – [Уменьшение раздела] viacheslav | os:boot [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ===== Теория ===== | ||
+ | Если вы сделали разметку GPT, то для GRUB нужно место куда записать тот код, который он при разметке в MBR записывает на первый трек за MBR. Этот раздел называется/ | ||
+ | Если вы ставите ОС в режиме загрузки через UEFI, то тогда вам Bios boot раздел не нужен, а нужен вам системный раздел для самого UEFI - это будет тип раздела EFS и он должен быть отформатирован в FAT32. | ||
+ | |||
+ | Теперь вариант с MBR: | ||
+ | В режиме совместимости с BIOS никаких дополнительных разделов не нужно - создаете только разделы под ОС. | ||
+ | Если вы хотите при разметке MBR поставить ОС в режиме загрузки через UEFI, то вам нужен EFS раздел (FAT32) и более того, во многих руководствах его требуют сделать обязательно первым разделом. | ||
+ | |||
+ | Вам нужно четко усвоить - MBR и GPT - разные разметки диска. BIOS и UEFI - разные режимы загрузки компьютера. Они друг от друга практически не зависят, | ||
+ | |||
+ | Тип раздела вы можете выбрать при установке при ручной разбивке диска - там при создании раздела нужно выбрать нужный тип. | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ==== Загрузчик ==== | ||
+ | UEFI systems need to contain a small partition with a mount point of /boot/efi/ containing an EFI System Partition file system. Its recommended size is 200 MiB, which is also the default value for automatic partitioning. | ||
+ | |||
+ | === Тайм-аут в 30 сек. при раположении /boot на LVM === | ||
+ | Если разметить диск на 2 раздела - EFS и LVM без выделения отдельного /boot, то при запуске системы в загрузочном меню будет тайм-аут в 30 сек, который нельзя поменять параметром GRUB_TIMEOUT в / | ||
+ | |||
+ | If a boot fails, grub can't record it to LVM or btrfs, so there is an unlikely chance that you won't be able to get to grub menu for the safe mode, etc. | ||
+ | |||
+ | This can be fixed by setting\\ | ||
+ | GRUB_RECORDFAIL_TIMEOUT=0\\ | ||
+ | in / | ||
+ | |||
+ | if you are sure you'll be able to access UEFI settings. If not quite sure, set it to 5, or 10. | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ==== Раздел SWAP ==== | ||
+ | Примерная рекомендация по размеру | ||
+ | ^Amount of RAM in the system ^Recommended swap space ^Recommended swap space\\ if allowing for hibernation ^ | ||
+ | | less than 2 GB | 2 times the amount of RAM | 3 times the amount of RAM | | ||
+ | | 2 GB - 8 GB | Equal to the amount of RAM | 2 times the amount of RAM | | ||
+ | | 8 GB - 64 GB | 4GB to 0.5 times the amount of RAM | 1.5 times the amount of RAM | | ||
+ | | more than 64 GB | workload dependent (at least 4GB) | hibernation not recommended | | ||
+ | |||
+ | Создавать ли swap на LVM, а не на обычном разделе - скорее да, чем нет, т. к. его размер можно там поменять. В целом - не совсем ясно. | ||
+ | |||
+ | В современных ОС вместо раздела создаётся файл - это гибче и удобнее.\\ | ||
+ | Можно совмещать и раздел, | ||
+ | |||
+ | === Удаление раздела SWAP === | ||
+ | [[https:// | ||
+ | <code bash> | ||
+ | # Disable swapping for the associated logical volume: | ||
+ | swapoff -v / | ||
+ | # Remove the LVM2 logical volume of size 512 MB: | ||
+ | lvremove / | ||
+ | # Remove the following entry from the /etc/fstab file: | ||
+ | / | ||
+ | </ | ||
+ | To test if the logical volume size was successfully removed, use cat /proc/swaps or free to inspect the swap space. | ||
+ | |||
+ | === Создание файла SWAP === | ||
+ | <code bash> | ||
+ | # создаётся файл определённого размера | ||
+ | fallocate -l 1G /swapfile | ||
+ | # если команды fallocate в системе нет, то | ||
+ | dd if=/ | ||
+ | # права | ||
+ | chmod 600 /swapfile | ||
+ | # сделать файл свопом | ||
+ | mkswap /swapfile | ||
+ | # включить | ||
+ | swapon /swapfile | ||
+ | # добавить в автомонтирование | ||
+ | echo '/ | ||
+ | # Проверка | ||
+ | swapon --show | ||
+ | free -h | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | === Приоритет использования свопа (swappiness) === | ||
+ | Значение от 0 до 100, стандартно 60. Меньшее значение - меньшее использование свопа, бывает нужно на серверах. | ||
+ | <code bash> | ||
+ | # Посмотреть текущее значение | ||
+ | cat / | ||
+ | 60 | ||
+ | # Задать новое значение | ||
+ | sysctl vm.swappiness=10 | ||
+ | # Сделать это значение постоянным (чтобы пережило перезагрузку) | ||
+ | echo ' | ||
+ | </ | ||
+ | |||
+ | === Удаление своп-файла === | ||
+ | <code bash> | ||
+ | # выключить | ||
+ | swapoff -v /swapfile | ||
+ | |||
+ | # Удалить строку /swapfile swap swap defaults 0 0 из файла /etc/fstab. | ||
+ | |||
+ | # Удалить сам файл | ||
+ | rm /swapfile | ||
+ | </ | ||
+ | https:// | ||
+ | |||
+ | |||
+ | ===== Создать разделы для установки системы ===== | ||
+ | Подразумевается, | ||
+ | В Hyper-V безопасная загрузка включена, | ||
+ | |||
+ | Примерная структура: | ||
+ | - ESP (200-550 МБ) - /dev/sda1, монтируется в /boot/efi, этот раздел указывается для установки загрузчика. | ||
+ | - boot (>=1GB) - /dev/sda2, монтируется в /boot | ||
+ | - LVM (остальное место) - /dev/sda3, на нём структура LVM: PV, VG и 2 LV - swap и root (монтируется в /). | ||
+ | |||
+ | <WRAP round info 100%> | ||
+ | LVM PV создаётся на весь /dev/sda3, VG - тоже, а при создании LV надо оставить место в конце, чтобы потом была возможность создания снапшотов (а снапшот - это тоже LV). | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | parted | ||
+ | # Диск помечается как GPT | ||
+ | mktable gpt | ||
+ | # Создаётся раздел ESP (Системный раздел EFI) | ||
+ | mkpart fat32 0% 200 MB | ||
+ | # Имя раздела | ||
+ | name 1 ESP | ||
+ | # Флаг esp | ||
+ | set 1 esp on | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | mkfs.fat -F32 /dev/sda1 | ||
+ | </ | ||
+ | |||
+ | ==== The resulting partition is not properly aligned for best performance ==== | ||
+ | Если жёстко указывать начало и конец разделов, | ||
+ | **Warning: The resulting partition is not properly aligned for best performance.** | ||
+ | |||
+ | Крайне рекомендуется не игнорировать это предупреждение, | ||
+ | |||
+ | 1. Get the alignment parameters for your array (remember to replace sdb with the name of your device as seen by the kernel). | ||
+ | <code bash> | ||
+ | cat / | ||
+ | 1048576 | ||
+ | cat / | ||
+ | 262144 | ||
+ | cat / | ||
+ | 0 | ||
+ | cat / | ||
+ | 512 | ||
+ | </ | ||
+ | |||
+ | 2. Add // | ||
+ | |||
+ | 3.This number is the sector at which the partition should start. Your new parted command should look like | ||
+ | <code bash> | ||
+ | mkpart primary 2048s 100% | ||
+ | </ | ||
+ | The trailing ‘s’ is important: it tells //parted// that you’re talking about sectors, not bytes or megabytes. | ||
+ | |||
+ | 4. If all went well, the partition will have been created with no warnings. You can check the alignment thusly (replacing ‘1’ with the partition number if necessary): | ||
+ | <code bash> | ||
+ | align-check optimal 1 | ||
+ | 1 aligned | ||
+ | </ | ||
+ | https:// | ||
+ | |||
+ | ==== Размер ESP-раздела ==== | ||
+ | [[https:// | ||
+ | |||
+ | The minimum size of this partition is 100 MB, and must be formatted using the FAT32 file format. | ||
+ | |||
+ | For Advanced Format 4K Native drives (4-KB-per-sector) drives, the minimum size is 260 MB, due to a limitation of the FAT32 file format. The minimum partition size of FAT32 drives is calculated as sector size (4KB) x 65527 = 256 MB. | ||
+ | |||
+ | Advanced Format 512e drives are not affected by this limitation, because their emulated sector size is 512 bytes. 512 bytes x 65527 = 32 MB, which is less than the 100 MB minimum size for this partition. | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | The author of gdisk suggests 550 MiB. | ||
+ | |||
+ | As per the Arch Linux forum, to avoid potential problems with some EFIs, ESP size should be at least 512 MiB. 550 MiB is recommended to avoid MiB/MB confusion and accidentally creating FAT16. | ||
+ | |||
+ | So, most common size guideline for EFI System Partition is between 100 MB to 550 MB. One of the reason behind this is it is difficult to resize later as it is the first partition on the drive. EFI partition may contain languages, fonts, BIOS firmware, other firmware related staffs. There are some firmware/ | ||
+ | |||
+ | As it may be difficult to enlarge the size in case it is needed later and the Hard Disk size now a days is larger, a big number of size like 100 MB or 550 MB is recommended for ESP. **But in general case, it uses only some Kilo Bytes of space.** | ||
+ | |||
+ | ===== LVM ===== | ||
+ | Logical Volume Manager или lvm — это система управления логическими дисками на одном или нескольких физических дисках без переразметки физических дисков. LVM позволяет изменять размеры дисков, | ||
+ | Преимущества использования логических дисков под управлением lvm перед разделами физического диска: | ||
+ | * Изменение размера: | ||
+ | * Расширяемость пространства: | ||
+ | * Зеркалирование данных: | ||
+ | * Резервное копирование: | ||
+ | * Читаемые имена: логическим разделам можно давать любые понятные имена, что позволит легко понимать предназначение раздела. | ||
+ | |||
+ | У LVM три уровня: | ||
+ | - Физический том (Physical Volume, PV), это нижний уровень, | ||
+ | - Группа физических томов (Volume Group, VG) | ||
+ | - Логические тома (Logical Volume, LV), где уже создаётся файловая система, | ||
+ | |||
+ | ==== Получение информации ==== | ||
+ | <code bash> | ||
+ | # Найти диски LVM | ||
+ | lvmdiskscan | ||
+ | # Инфо о дисках | ||
+ | ls -l / | ||
+ | # Инфо о файловой системе на LV | ||
+ | file -s / | ||
+ | # Инфо о файловой системе | ||
+ | df -T | ||
+ | # Размер раздела swap (например, | ||
+ | fdisk -l /dev/sda5 | ||
+ | |||
+ | # Информация о PV, VG и LV | ||
+ | pvdisplay | ||
+ | vgdisplay | ||
+ | lvdisplay | ||
+ | # Сжатая сводка о них же | ||
+ | pvs | ||
+ | vgs | ||
+ | lvs | ||
+ | |||
+ | # Обращаться к LVM томам можно двумя способами, | ||
+ | / | ||
+ | # Либо через виртуальные устройства (слэш заменяется | ||
+ | / | ||
+ | |||
+ | # Список блочных устройств | ||
+ | lsblk | ||
+ | </ | ||
+ | |||
+ | ==== Создание раздела ==== | ||
+ | <code bash> | ||
+ | # Создать физические тома из дисков (все данные на них будут удалены) | ||
+ | pvcreate /dev/sdb /dev/sdd | ||
+ | # Создать группу из физических томов | ||
+ | vgcreate lvm-vg /dev/sdb /dev/sdd | ||
+ | # Создать логический том с линейным отображением (указав желаемый размер тома 10 ГБ) | ||
+ | lvcreate -n myvolume1 -L 10G lvm-vg | ||
+ | # Вариант с указанием относительных значений в процентах от емкости группы томов | ||
+ | # lvcreate -n myvolume1 -l 60%VG lvm-vg | ||
+ | # Вариант с указанием относительных значений в процентах от свободного пространства | ||
+ | # (новый логический том myvolume2 на оставшемся свободном пространстве в группе томов lvm-vg). | ||
+ | lvcreate -n myvolume2 -l 100%FREE lvm-vg | ||
+ | |||
+ | # Создание тома с чередующимся отображением | ||
+ | # lvcreate -n myvolume3 -l 100%FREE -i 2 lvm-vg | ||
+ | |||
+ | # Созданные разделы нужно отформатировать и смонтировать. | ||
+ | # Формат в ext4: | ||
+ | mkfs.ext4 / | ||
+ | # Монтирование в /mydata | ||
+ | mkdir /mydata | ||
+ | # /etc/fstab | ||
+ | / | ||
+ | # или | ||
+ | / | ||
+ | # или | ||
+ | UUID=cc0b7e49-3381-4dfb-9772-3184c7026bd8 | ||
+ | # выяснить UUID | ||
+ | # blkid / | ||
+ | |||
+ | # Смонтировать без перезагрузки ОС | ||
+ | mount -a | ||
+ | </ | ||
+ | |||
+ | ==== Увеличение раздела ==== | ||
+ | <code bash> | ||
+ | # Добавить новый физический том: | ||
+ | pvcreate /dev/sdb | ||
+ | # Включить его в группу | ||
+ | vgextend lvm-vg /dev/sdb | ||
+ | |||
+ | # Расширить логический том (на 50% от доступного свободного места в группе) | ||
+ | lvextend -l +50%FREE / | ||
+ | # Расширить файловую систему | ||
+ | resize2fs / | ||
+ | |||
+ | # Можно скомбинировать расширение логического тома и файловой системы | ||
+ | lvextend -l +50%FREE -r / | ||
+ | |||
+ | # В некоторых случаях требуется расширить логический том на вполне определенные физические диски, для этого следует явно их указать в команде расширения: | ||
+ | lvextend -l +5118 / | ||
+ | # Указанная команда расширит логический том home на 5118 экстентов с физического тома / | ||
+ | # Перед выполнением команды следует убедиться, | ||
+ | # поэтому наиболее удобно использовать свободные экстенты, | ||
+ | </ | ||
+ | |||
+ | ==== Уменьшение раздела ==== | ||
+ | <WRAP round important 80%> | ||
+ | В первую очередь всегда уменьшается размер файловой системы, | ||
+ | </ | ||
+ | Работать можно только с отмонтированными разделами. | ||
+ | <code bash> | ||
+ | # Прежде всего уменьшим размер файловой системы раздела /home, в нашем случае до 10 ГБ: | ||
+ | resize2fs / | ||
+ | # Затем уменьшим до такого же размера логический том: | ||
+ | lvreduce -L 10G / | ||
+ | |||
+ | # Комбинированный вариант, | ||
+ | lvreduce -r -L 10G / | ||
+ | # Уменьшить на 512MB от текущего размера | ||
+ | lvreduce -r -L -512M / | ||
+ | |||
+ | # Уменьшить PV (если это вообще нужно) | ||
+ | pvresize --setphysicalvolumesize 40G /dev/sdb1 | ||
+ | # После этого VG уменьшится соответственно. | ||
+ | </ | ||
+ | ==== Литература ==== | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | |||
+ | ===== Проблемы ===== | ||
+ | ==== Partition does not start on physical sector boundary ==== | ||
+ | < | ||
+ | / | ||
+ | Partition 1 does not start on physical sector boundary. | ||
+ | </ | ||
+ | |||
+ | Backup all important data first, and then use Gparted to move the partition so that it starts at 4096-byte sector; setting the start boundary at 1 MiB is an easy way to do it. | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ==== Компьютер грузится только если подключен монитор ==== | ||
+ | Надо подкрутить GRUB, отключив графический терминал. | ||
+ | <code bash> | ||
+ | sudo sed -i '/ | ||
+ | sudo update-grub | ||
+ | </ | ||
+ | https:// | ||
+ | |||
+ | ==== Система не ставится, | ||
+ | Очистить всю разметку диска, удалить все разделы и т. п. | ||
+ | <code bash> | ||
+ | wipefs -a /dev/sda | ||
+ | # или | ||
+ | sfdisk --delete /dev/sda | ||
+ | </ | ||