Установка Arch Linux на нетбуки и планшеты с 32 битным загрузчиком

Вступление

Не так давно рынок ноутбуков и планшетов наполнили не совсем качественными но очень дешёвыми устройствами в бюджете до 200$. В основном это смартбуки Prestigio, Chuwi и другие. Из коробки на них установлена операционная система Windows 10 Home. В принципе вроде не плохо, ведь это 12 дюймовые модели весом меньше 1 килограмма и большой автономной работой. Оно и не удивительно, ведь при наличии материнской платы как у планшета и АКБ в 10000 мА/ч, большое время работы гарантированно. Но вот вам ложка дёгтя, и не одна. Процессоры в таких устройствах обычно Intel Atom, ОЗУ 2 Гб и 32 Гб SSD. В принципе как устройство для простого сёрфинга в интернете они имеют адекватные характеристики. Только вот проблема кроется в самой операционной системе. Во первых она 32 битная, хоть и процессор поддерживает 64 битную архитектуру, а во вторых, после нескольких обновлений, устройством пользоваться уже не возможно. Так как система уже требует хотя бы 4 Гб ОЗУ. Ну и не стоит забывать что много программ уже не поддерживают 32 битные архитектуры, и их установить не получится. Умные пользователи могут посоветовать снести Windows с которым устройство продавалось и установить 64 битную версию, но загрузчик UEFI в них как раз 32 битный что не позволяет нормально установить любую операционную систему с поддержкой 64 бит. И тут нам на помощь приходит Linux. Дело в том что мы можем используя 32 битный загрузчик, он же Grub, установить 64 битную версию системы, а что самое главное, 32 битный Grub мы можем сами собрать используя уже установленную систему на виртуальной машине.

Примечание: Все дальнейшие действия описаны на примере установки Arch Linux на нетбуке Prestigio PSB116A03. На других подобных устройствах эта инструкция не проверялась. Делайте все на свой страх и риск. Автор статьи не несёт ответственности за потерянные данные или сломанное устройство. В процессе установки SSD диск вашего устройства будет форматирован. Заранее сделайте резервную копию всех важных данных. Эта статья создана на основе множества существующих инструкций на разных форумах и сайтах.

Подготовка iso

В конце статьи будет ссылка на готовый iso образ. Если не хотите собирать загрузчик вручную, можете использовать его.

Для начала форматируем через Rufus USB накопитель в файловую систему FAT32, схему раздела GPT и целевая система BIOS или UEFI. Метку тома указываем ARCH_YYYYMM. Где YYYYMM это год и месяц релиза Arch Linux. В методе загрузки выбрать “Незагрузочный образ”. Жмём старт. После завершения нужно распаковать всё содержимое образа с Arch Linux прямо на USB накопитель используя архиватор 7zip.

Теперь нам предстоит использовать виртуальную машину с Arch. Просто загружаемся в ней и подключаем USB накопитель в настройках носителей виртуальной машины. Вводим lsblk, мы должны получить список дисковых устройств, среди которых будет наш USB накопитель, для примера обозначу её как sdb (у вас может быть по другому).

Монтируем раздел с файлами установщика Arch в /mnt/usb/:

mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb

Далее устанавливаем GRUB для EFI32, прописав данные команды:

echo 'configfile ${cmdpath}/grub.cfg' > /tmp/grub.cfg
grub-mkstandalone -d /usr/lib/grub/i386-efi -O i386-efi --modules="part_gpt part_msdos" --locales="en@quot" --themes="" -o "/mnt/usb/EFI/boot/bootia32.efi" "boot/grub/grub.cfg=/tmp/grub.cfg" -v

Теперь нам нужно создать файл grub.cfg в директории /mnt/usb/EFI/boot с следующим содержимым:

insmod part_gpt
insmod part_msdos
insmod fat

insmod all_video

insmod font

if loadfont "${prefix}/fonts/unicode.pf2" ; then
    insmod gfxterm
    set gfxmode="1024x768x32;auto"
    terminal_input console
    terminal_output gfxterm
fi

menuentry "Arch Linux by CoderLog www.coderlog.top" {
    set gfxpayload=keep
    search --no-floppy --set=root --label ARCH_YYYYMM
    linux /arch/boot/x86_64/vmlinuz-linux archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap
    initrd /arch/boot/intel-ucode.img /arch/boot/x86_64/initramfs-linux.img
}

Это можно сделать и на основной системе. Не обязательно использовать терминал.

Где ARCH_YYYYMM, указываем метку тома которую указывали в момент форматирования USB накопителя. Вот и все, накопитель готовый для установки системы на ноутбук.

Установка Arch Linux

После загрузки системы с usb, настроим русский язык для удобства работы:

loadkeys ru

Изменим консольный шрифт на тот, который поддерживает кириллицу:

setfont cyr-sun16

Подключение к интернету. Wi-Fi на этом ноутбуке не заведётся, вернее устройство wlan0 работает но к сети вы не подключитесь. По этому подключаем телефон к ноутбуку и включаем режим модема. И подключаемся как по кабелю:

dhcpcd

Синхронизация системных часов:

timedatectl set-ntp true

Создание разделов

Смотрим какие диски есть:

fdisk -l

Разбиваем диски (для ручной разметки используем fdisk, для псевдографической разбивки можно использовать команду cfdisk)

fdisk /dev/mmcblk1

Процесс разбивки диска по шагам

  1. Создаем GPT таблицу командой g
  2. Создаем новый диск командой n
  3. Выбираем primary (основной) или extented (расширенный)По умолчанию стоит primary (основной) поэтому просто жмем enter
  4. Выбор номера диска, по умолчанию подставляется следующий номер. Просто жмем enter
  5. Запрос на первый сектор диска Просто жмем enter
  6. Запрос на последний сектор диска (Ставим + и объем памяти. Пример: +500M)
  7. Для efi не забываем указать, что это efi раздел t и поставить 1

Повторяем все шаги снова для всех нужных разделов диска. Как все разметили не забываем все записать командой w . В итоге можете проверить, что у вас получилось командой fdisk -l

Форматирование и монтирование разделов

Форматирование дисков:

mkfs.fat -F32 /dev/mmcblk1p1
mkfs.ext4  /dev/mmcblk1p2

Монтирование дисков:

mount /dev/mmcblk1p2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/mmcblk1p2 /mnt/boot/efi

Устанавливаем базовую систему + необходимые пакеты:

pacstrap /mnt base base-devel linux linux-firmware nano netctl dhcpcd

Настройка системы

Генерируем fstab, для этого используем следующую команду:

genfstab -pU /mnt >> /mnt/etc/fstab

Перейдём в установленную систему:

arch-chroot /mnt

Прописываем имя компьютера. Вместо ArchLinux впишите свое название:

echo "ArchLinux" > /etc/hostname

Настроим часы (Для Киева):

ln -sf /usr/share/zoneinfo/Europe/Kiev /etc/localtime

Добавим русскую локаль в систему:

echo -e "en_US.UTF-8 UTF-8\nru_RU.UTF-8 UTF-8" >> /etc/locale.gen

Обновим текущую локаль системы:

locale-gen

Указываем язык системы:

echo 'LANG="ru_RU.UTF-8"' > /etc/locale.conf

Указываем keymap для console + прописываем шрифт:

echo 'KEYMAP=ru' >> /etc/vconsole.conf
echo 'FONT=cyr-sun16' >> /etc/vconsole.conf

Создадим загрузочный RAM диск:

mkinitcpio -p linux

Изменим пароль root:

passwd

Обновляем базы данных пакетов:

pacman -Syy

Устанавливаем загрузчик:

pacman -S grub efibootmgr
grub-install /dev/mmcblk1

Обновляем grub.cfg:

grub-mkconfig -o /boot/grub/grub.cfg

Ставим программу для Wi-fi:

pacman -S dialog wpa_supplicant

Выходим и перегружаем:

exit
reboot

После установки

Логинимся, логин root, пароль тот, что установили.

Подключаем wifi:

wifi-menu

Добавляем пользователя

Добавим нового пользователя. Вместо MYUSERNAME пишем имя пользователя без спец символов, только маленькие лат. буквы:

useradd -m -g users -G wheel -s /bin/bash MYUSERNAME

Установим пароль для нового пользователя. Вместо MYUSERNAME пишем имя пользователя:

passwd MYUSERNAME

Устанавливаем SUDO

Заходим в файл sudoers:

nano /etc/sudoers

В файле /etc/sudoers находим строчку # %wheel ALL=(ALL) ALL и раскомментируем ее убрав символ #

Ставим иксы и драйвера

Установим Х (Иксы) и свободные драйвера + читаем зависимости при необходимости ставим их тоже:

pacman -S xorg-server xorg-drivers

Ставим Xfce, LXDM и сетевые утилиты

Ставим Xfce + менеджер входа lxdm (или sddm):

pacman -S xfce4 xfce4-goodies lxdm

Ставим шрифты, чтобы можно было читать, что написано. Иначе будут просто квадратики:

pacman -S ttf-liberation ttf-dejavu

Ставим менеджер сети:

pacman -S networkmanager network-manager-applet ppp

Подключаем автозагрузку менеджера входа и интернет (с соблюдением регистра для NetworkManager):

systemctl enable lxdm NetworkManager

Перезагрузка

Выбираем Xfce Session или просто “Сеанс”!!!!! Это важно иначе не войдете!

Установка AUR

yaourt и aurman более не обновляются разработчиками поэтому рекомендую к использованию именно yay

Обновляем систему:

sudo pacman -Syu

Создаём yay_install директорию и переходим в неё:

mkdir -p /tmp/yay_install
cd /tmp/yay_install

Установка “yay” из AUR:

sudo pacman -S git
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -sir --needed --noconfirm --skippgpcheck
rm -rf yay_install

Если вы предпочитаете работать с графическим интерфейсом, а не с терминалом то как альтернативу yay можно использовать pamac (установщик пакетов из AUR c GUI)

Обновляем систему:

sudo pacman -Syu

Создаём pamac-aur_install директорию и переходим в неё:

mkdir -p /tmp/pamac-aur_install
cd /tmp/pamac-aur_install

Установка “pamac-aur” из AUR:

sudo pacman -S git
git clone https://aur.archlinux.org/pamac-aur.git
cd pamac-aur
makepkg -si --needed --noconfirm --skippgpcheck
rm -rf pamac-aur_install

Установка программ

Установка пакетов, которые решают большинство проблем, с которыми вы можете столкнуться:

sudo pacman -S f2fs-tools dosfstools ntfs-3g alsa-lib alsa-utils file-roller p7zip unrar gvfs aspell-ru pulseaudio

Установка AUR программ:

yay -S sublime-text-dev cherrytree timeshift hunspell-ru pamac-aur papirus-maia-icon-theme-git breeze-obsidian-cursor-theme xflux xflux-gui-git flameshot-git megasync

Вот и вся инструкция. Дальше можете кастомизировать и настраивать xfce как вам угодно.

Ссылка на iso образ: ARCH_202104.iso

Ссылка на bootia32.efi для Arch Linux: bootia32.efi

Ссылка на grub.cfg для Arch Linux: grub.cfg

Файлы bootia32.efi и grub.cfg нужно положить по пути EFI/BOOT/ на USB накопитель с записанным образом Arch Linux