Arch linux uefi btrfs установка

Обновлено: 08.07.2024

На выходе необходимо получить примерно следующую структуру с указанными типами Ф.С.:

Порядок Описание Раздел Размер Тип
1 ESP /dev/sda1 1Gib EFI System
2 / /dev/sda2 340GiB Linux Filesystem
3 /home /dev/sda3 340GiB Linux Filesystem
4 SWAP /dev/sda4 16GiB Linux Swap

Примечание: Раздел UEFISYS может быть любого размера, который поддерживается файловой системой FAT32. В соответствии с документацией пресловутой Microsoft, минимальный размер раздела с FAT32 - 512Мб. В соответствии с вышесказанным рекомендуется устанавливать размер UEFISYS раздела больше 512Мб. Мы сделаем его размером в 1Gb Подробнее здесь: ArchWiki UEFI (Русский)

2. Создаем Файловые системы на созданных разделах

UEFI раздел FAT32:

Корневой раздел EXT4:

Домашний раздел EXT4:

Раздел подкачки: создаем его :

3. Монтируем Файловые системы

Примечание: Мы будем развертывать новую систему в директории /mnt

Монтируем корневой раздел в /mnt

Создаем директорию /boot и /home для загрузчика и домашнего раздела:

Монтируем UEFI раздел

Монтируем домашний раздел

Монтируем раздел подкачки :

Все вышеописанное можно сделать используя метки которые мы задали при создании файловых систем:

4. Поднимаем сеть WiFi

Выбираем свою точку доступа и подрубаемся к ней <ИМЯ_ИНТЕРФЕЙСА> может быть например таким wlp0s21f0u7i2:

Если сети нет, то выясняем имя беспроводного интерфейса:

И поднимаем его принудительно:

5. Разворачиваем систему из репозитория

  1. В файле /etc/pacman.d/mirrorlist перемещаем адреса российский серверов в самый верх. Ну, или можно сделать как здесь: ArchWiki Mirrors (Русский)
  2. Выполняем скрипт инициализации системы, указав ему :
  3. Для поддержки беспроводной сети на мой взгляд лучше использовать NetworkManager ArchWiki NetworkManager (Русский) т.к он прост в обращении и под него реально найти апплеты для гуевого рабочего стола. Итак укажем установщику дополнительно установить пакеты: networkmanager, dialog, wpa_supplicant:

6. Делаем снимок точек монтирования в файл fstab

"Запечем" правила монтирования файловых систем в файл:

Далее переходим в оболочку новой системы:

И обновляем данные пакетного менеджера и установленные утилиты:

7. Устанавливаем UEFI менеджер загрузки

Установим systemd-boot - UEFI менеджер загрузки при помощи утилиты bootctl:

Всем привет, на связи Уханов. Давно хотел написать заметку про BTRFS, но тема это огромная и когда-нибудь я её закончу. Сегодня же поговорим об установке ArchLinux на subvolume BTRFS. Почему я выбрал именно связку BTRFS + ArchLinux, а не Debian например? Ведь он мне так нравится, это Debian? Я ведь все проекты делаю именно на нём.

Ответ кроется в установщике — программе, которая даёт нам удобный набор инструментов для установки системы, но одновременно ограничивает наши возможности функционалом этих инструментов.

Файловая система BTRFS обладает огромным функционалом и рассказывать о ней можно очень долго. Меня на стадии установки системы интересуют два механизма: поддержка многодисковых конфигураций (multiple device support) и subvolumes. И вот именно на этом, начальном этапе Debian поставил меня в трудное положение: я могу отформатировать в BTRFS диски по-отдельности и никаких мне subvolume.

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

Потому я решил использовать ArchLinux — там нет инсталлятора и ничто не ограничит полёт фантазии. Приступим: у меня есть виртуальная машина с 4 дисками: их я использую для создания RAID10.

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

Настройка сети
Установку начнём с определения сетевого адаптера и получения ip адреса. В первом поможет команда

ip link
В её выводе мы увидим имя адаптера. В нашем случае это enp0s3. Так и запишем в параметрах dhcpcd
dhcpcd enp0s3

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

Ура, адрес получили. Настроим время:


Разметка дисков
До начала разбиения дисков, установка ничем не отличается от обычного сценария. А вот при настройке разделов возникают вопросы и было-бы неплохо понять некоторые моменты.

- Форматирование диска в BTRFS без создания разделов. Такой сценарий вполне возможен: вы форматировать в BTRFS диск без создания на нём разделов. Монтировать его будете так-же: без указания номера раздела — просто диск. Используя так называемые partitionless диски вы рискуете столкнуться с проблемами установки на них загрузчика.
- Раздел подкачки использовать необязательно — его можно заменить на файл подкачки. Это обеспечит вам некоторую свободу от отказа диска. В случае, если выйдет из строя диск с разделом подкачки, система завалится с отказом.
- Постарайтесь не выделять /usr в отдельный раздел — проблем будет меньше.

Создание разделов
Для управления разделами я предпочитаю пользоваться программой cfdisk. Быстро и просто создаём по одному разделу на каждом из четырёх наших дисков

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

Создание файловой системы
У нас есть четыре раздела по одному на диск и пришло время их отформатировать. Нам предстоит создать файловую систему и настроить RAID10. Нам для этого пригодится всего одна команда:
Начнём с подготовки массива под систему: вводим в консоль команду, которая соберёт первые два диска массив уровня RAID1.

mkfs.btrfs -L Archlinux -d raid10 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Команда возвращает нам результат своей работы. По скриншоту видно, что я использовал ключ -f, что не обязательно в работе. Просто мои диски были ранее уже форматированы в btrfs.

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

При этом видно, что метаданные в чередовании не участвуют: только зеркалирование.

Создание subvolume
Теперь смонтируем всю эту музыку.


Монтировать BTRFS можно используя любой раздел — участник массива. В нашем случае /dev/sda1.
Перейдём в каталог /mnt

Создадим subvolume для корня системы, домашнего каталога, каталога var и для снапшотов (об этом потом).
btrfs subvolume create root
btrfs subvolume create var
btrfs subvolume create home
btrfs subvolume create snapshots

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

Теперь выйдем из каталога mnt и отмонтируем наш массив командой:
cd ..

Монтирование и подготовка к установке
Нам предстоит смонтировать subvolume, который мы запланировали как корневой каталог, создать на нём точки монтирования и смонтировать туда остальные subvolume. Монтировать будем с опцией сжатия файловой системы zstd.


Корень есть, создадим точки монтирования одной командой:
mount -o noatime,compress=zstd,subvol=var /dev/sdc1 /mnt/var
mount -o noatime,compress=zstd,subvol=home /dev/sdc1 /mnt/home
mount -o noatime,compress=lzo,subvol=snapshots /dev/sda1 /mnt/snapshots
Результат можно посмотреть и командой mount и при помощи df.

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

Установка
Далее в принципе установка проходит штатно и можно ориентироваться на мою прошлую заметку.
После выполнения pacstrap мы получим предупреждения от mkinitcpio.

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

Не будем игнорировать предупреждения и установим необходимое командой:

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

Последнее отличие будет в установке загрузчика. Нам потребуется установить загрузчик командой:


Она потянет за собой и обычный Grub. Загрузчик устанавливаем по очереди на каждый диск — участник массива. Это позволит загрузить систему в случае выхода из строя любого из них.

Вместо заключения
Мы установили Archlinux на многодисковую конфигурацию BTRFS с использованием subvolume и уровнем отказоустойчивости RAID10. Главное отличие subvolume от разделов в том, что у них общее пространство и не будет ситуации с нехваткой места на каком-то разделе.

ArchLinux: установка системы на subvolume BTRFS Linux, Raid, Файловая система, Руководство, Отказоустойчивость, Длиннопост

В следующий раз подробнее поговорим о функционале BTRFS и о том, что с ней можно делать.

lsblk - подсветить все разделы чтобы определиться, что монтировать.

Так как Btrfs не может содержать swap-файл, необходимо заранее позаботиться о разделе с подкачкой, если он вам нужен.

Создаём файловую систему на разделе. Для разделов от 1ГБ и меньше, чтобы более эффективно использовать пространство, рекомендуется передать ключ -M к параметрам mkfs.btrfs .

При желании можно задать лэйбл ключом -L.

Затем создадим два подтома под корень и домашние каталоги пользователей.

Отмонтируем корень ФС.

Для того, чтобы монтировать подтом подобно обычному разделу диска, команде mount нужно указывать опцию subvol.

Монтируем корень. Сжатие zstd, или lzo.

Создаём директорию и монтируем в неё наш будущий каталог пользователей.

Дальше действуем по вики, т.е. выбираем зеркала и ставим базовую систему. При генерации initramfs mkinitcpio будет ругаться на отсутствие fsck.btrfs - это нормальное явление. Уберём этот хук fsck из конфига, т.к. для Btrfs он не требуется.

Вот данная строка в файле.

И пересоздадим initramfs.

И ещё момент по поводу загрузчика, не знаю как другие, а grub точно умеет грузиться с Btrfs, так что выбрать лучше именно его. Так же не забудьте установить пакет btrfs-progs и позаботиться о бэкапах.

Монтируем корень ФС.

Каталоги абсолютно идентичны, и пока мы не начнём изменять файлы, снимки места не занимают.

Откат: грузимся с live CD, монтируем корень ФС и переименовываем подтома. Так же подтома можно переименовать прямо в рабочей системе, если загрузка удачна.

Либо грузимся как обычно, а в меню grub указываем подтом с бэкапом rootflags=subvol=backup .

Копирование при записи (CoW). Если использовать команду cp с ключом --reflink=auto , то копия файла не будет занимать место на диске. И впоследствии, допустим, при изменении скопированного файла, записываться на диск будут только изменённые блоки.

“Онлайн” - проверка ФС. При которой осуществляется чтение всех данных/метаданных с перепроверкой контрольных сумм, при наличии ошибок обнаружение их и исправление по возможности.

Если опустить ключ -B , процесс уйдёт в фон, и о ходе выполнения можно будет узнать командой.

Рекомендуется проводить проверку регулярно (еженедельно). “Оффлайн” - проверка ФС (на отмонтированном разделе). При отсутствии ошибок утилита возвратит 0.

lsblk - подсветить все разделы что бы определиться что монтировать.

Так как Btrfs не может содержать swap-файл, необходимо заранее позаботиться о разделе с подкачкой, если он вам нужен.

Внимание! это отформатирует весь ваш диск, с потерей данных! В данном примере установка идет на весь диск, а не разделы, если вам нужен swap учтите этот момент.

Создадим два подтома под root @ и домашний каталог пользователя @home .

И отмонтируем корень ФС.

Создаём директорию и монтируем в неё наш будущий каталог пользователей.

Устанавливаем базовые пакеты.

Создаем директорию и монтируем boot, если нужно.

Начиная с ядра 5.0 можно создать swap-файл, swap-файл должен располагаться целиком на одном устройстве, создаваться с отключенным COW и сжатием.

Выбор часового пояса.

Выберем локаль для системы.

Прописать в /etc/locale.conf .

Русский шрифт в консоли.

Создаём рам-диск mkinitcpio.

В /etc/mkinitcpio.conf , в разделе HOOKS, должен быть прописан хук keyboard keymap , убрать fsck .

В разделе MODULES нужно прописать свой драйвер видеокарты: i915 для Intel, radeon для AMD, nouveau для Nvidia.

Потянуло на эксперименты, и на старом HDD решил опробовать BTRFS + поставить Arch с нуля (очень давно этого не делал). Целью статьи не является "переписать wiki/показать как должно быть и т.п." Я всего лишь в кратце опишу что делал, и что допиливал,т.к. считаю без этого систему использовать "не очень".

Статью можно использовать как шпаргалку по установке, заменяя intel на вашу видеоадаптер, malody на свой логин, firefox на свой браузер и т.п.)

Надеюсь опытным пользователям будет что дополнить/посоветовать, а новички вынесут что-то для себя полезное.

Если ставите с нуля, - рекомендую делать это с флешки. Я же ставил с уже установленной системы Arch (да, я знаю что можно просто скопировать на другой HDD и поставить загрузчик, - и будет готово, но как же весь смак от установки, и что бы я тут писал? :-D).

Установка из существующей системы

Настройка sudo

Установка и настройка сети
Найти имя сетевого устройства:
enp2s0 (это моё сетевое устройство)
Включить и запустить юнит
Допиливание

Уменьшение размера журнала логов Systemd

расскомментировать и изменить строку

Отключаем переодическое увеличение загрузки из-за man-db.service

Удалить ненужные локали (после установки всех программ (должна быть установлена localepurge))
и закомментируем строчку NEEDSCONFIGFIRST, которая служит “защитой” от удаления локалей без настройки программы.
сделаем последний абзац похожим на:
Запуск:
- я высвободил 370+ мегабайт :-)
После перезагрузки отключается звук, и громкость сбрасывается на 0.
Исправляем:
- жмём английскую M - на главном канале меняется значение (увеличиваем громкость на максимум стрелкой вверх).
- запоминаем наши настройки
Щелчки при загрузке
Нажмите F6, выберите свою звуковую карту (у меня HDA Intel), пролистайте до Auto Mute и поставьте значение "disabled", выйдите нажав Esc.
Не трогая системного регулятора громкости выполните:
Перезагрузитесь.
Устраняем тиринг (горизонтальный разрыв)
для Intel
к такому виду:

Устраняем тиринг в Firefox (ссылка на проверку тиринга в браузере):
Настройки>Дополнительные>Общие(вкладка)>снять галочку “по возможности использовать аппаратное ускорение”. Перезапускаем браузер (однако, в одном случае это помогло, мне же этот способ не помог (хоть с установленной хоть со снятой галочкой), поэтому пишу второй).
Вводим в адресной строке: about:config, соглашаемся с риском, находим строку
layers.acceleration.force-enabled и ставим true
Перезапускаем браузер.

Включаем аппаратное ускорение видео
Если у вас не Intel, пользуйтесь следующей статьёй с Wiki
Если у вас Интел (в данном случае у меня Intel IvyBridge)
Должны стоять пакеты:
проверить что используется:
vainfo

libva info: Trying to open /usr/lib/dri/i965_drv_video.so

если не автоопределился, то задать вручную в: /etc/environment
smplayer:
Для включения аппаратного ускорения: Настройки-Настройки-Основные-Видео-Устройства вывода: vaapi
Настройки-Настройки-Быстродействие-Потоков декодирования, - ставьте 2 потока если двухядерный процессор, 4 если четырёх ядерный и т.д.).
VLC - подхватывает автоматически, если же нет, то на вкладке Ввод и кодеки выбрать vaapi.

Устанавливаем кодеки
sudo powerpill -S gstreamer gstreamer-vaapi gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly --noconfirm

Уменьшаем место на диске зарезервированное для root (актуально для ext3 и ext4 разделов)

Иероглифы в русских названиях файлов в ZIP-архивах

После установки они заменяют штатные команды zip и unzip , что позволяет использовать их не только в консоли, но и через ГУИшные программы, использующие zip и unzip в качестве бэкэнда для ZIP-архивов.

Снимок экрана горячей клавишей при помощи scrot
В настройках Cinnamon:
Настройки > Клавиатура > Комбинации клавиш > Дополнительные комбинации клавиш > Добавить пользовательскую комбинацию
Снимок всего экрана: (prtscr)
scrot /home/malody/Изображения/Скриншоты/%d-%m-%Y-%H-%M-%S.jpg
Снимок активного окна: (ctrl+prtscr)
scrot -u /home/malody/Изображения/Скриншоты/окно_%d-%m-%Y-%H-%M-%S.jpg

Настройка ПО (постараюсь выложить свои конфиги)
Создание эскизов для файлов (фото, видео, документы, шрифты).
Допишу позже.

Читайте также: