Установка Arch Linux на MacBook Pro с чипом T2 и организация двойной загрузки

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
MacBook Pro 2014 года, на котором у меня работала Invisible Arch Linux, наконец отошёл в мир иной. Это нанесло сокрушительный удар моим возможностям по эффективной разработке качественных программ. У запуска GNU/Linux на виртуальной машине, или у подключения по SSH к Termux, работающему на Android, есть определённая привлекательность. Но ничто не сравнится с операционной системой, работающей на настоящем железе. Ничто не сравнится. Поэтому пришло время в очередной раз пересмотреть процедуру организации двойной загрузки Arch Linux на MacBook Pro.



В прошлый раз, когда я подумывал об установке Arch на мой MacBook Pro с чипом T2, драйверы для клавиатуры и трекпада всё ещё находились на стадии активной разработки, поэтому я, в сущности, ничего достойного не добился. Но в декабре 2021 года эти драйверы оказались рабочими, а ещё обнаружилась целая вики, посвящённая установке Linux на компьютеры с чипом T2.

В этом материале я расскажу о том, как устанавливал Arch Linux на MacBook Pro. Он рассчитан на компьютеры 2019 или 2020 года выпуска.

Освобождение места на диске


Для начала я освободил около 200 Гб на SSD. Для этого я сделал следующее:

  • Воспользовался Storage Management для поиска всякого мусора.
  • Выполнил команду docker system prune, так как активно пользуюсь Docker.
  • Удалил хлам, вроде старых конфигурационных файлов, из ~/Library.
  • Очистил кеш Telegram и ограничил его размер.

Обновление macOS


Я, кроме того, позаботился о завершении обновления на macOS Monterey, так как истекал бета-период, и мне не хотелось, без необходимости, идти на какие-то риски. Это, кроме того, обеспечивало наличие самых свежих драйверов устройств, что пришлось бы кстати в том случае, если бы мне какие-то из них понадобились при установке Arch.


В сведениях о моём Mac показана первая версия macOS Monterey

Отключение чипа T2


О том, как отключить чип T2, можно почитать в вики на t2linux.com. На сайте Apple тоже есть некоторые сведения об этом, так как это нужно тем, кто хочет воспользоваться Boot Cramp для установки Windoze (для ламеров).

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


Далее, я воспользовался Disk Utility для создания FAT-разделов. При создании раздела я столкнулся с проблемой, касающейся сжатия тома. Эта проблема мне уже встречалась при организации двойной загрузки Manjaro на старом компьютере. Я знал, что её можно легко исправить, сначала создав раздел APFS, а затем его уничтожив, подчинив тем самым macOS своей воле.

Я создал два раздела. Оба — ExFAT. Один — это Swap-раздел, второй — загрузочный.


Disk Utility выводит сведения о диске, разбитом на разделы

Загрузка с Live-USB


Существует несколько ISO-образов, которые нам подойдут. Найти их можно здесь (archiso-mbp) и здесь (funami.tech). Каждый из них доработан под T2 Linux. В будущем эта ситуация, весьма вероятно, изменится.

В тот момент, когда я это пишу, самый свежий релиз archiso-mbp датировался 29 августа 2021 года. Там применяется ядро 5.12, которое уже устаревает. Его я использовать не рекомендую. Образ funami.tech содержит ядро 5.15. Именно им я и воспользовался для установки Arch Linux. Особых проблем при этом не возникло.

Более того, ISO funami.tech включает в себя ещё и готовый пакет ядра, заголовочные файлы и Wi-Fi-драйверы (в директории /t2kern). Это ускоряет процесс настройки системы, так как этот образ спроектирован в расчёте на создание и использование локального репозитория Pacman в ходе работы pacstrap.

Минус установки системы с ISO funami.tech заключается в том, что позже может понадобиться поменять ядро (например — на archiso-mbp после его обновления). И, к сожалению, он не предоставляет сигнатур ключей GPG. Но это — обслуживаемый ISO, который, так сказать, был «благословлён» ссылкой на него в вики T2 после того, как я воспевал в его честь хвалебные оды.

Если вы выберете archiso-mbp от 29 августа 2021, то у вас, теоретически, будет нормальная возможность обновления. Но вам ещё придётся потратить больше времени на то, чтобы заставить заработать Wi-Fi, да и оффлайновые процессы установки будут сложнее.

Я воспользовался ISO funami.tech от 21 декабря 2021, так как в моём случае этот образ «просто заработал». Но, независимо от того, какой именно образ вы выбрали, записать его на USB-диск можно с помощью Balena Etcher или прибегнув к команде dd. Я, правда, рекомендую Etcher, так как в эту программу встроены кое-какие механизмы, защищающие пользователя от стирания содержимого его жёсткого диска.

Подключение к Wi-Fi


После того, как будет осуществлена загрузка с ISO-образа, то, будут или не будут автоматически установлены Wi-Fi-драйверы, зависит от того, какой именно образ вы выбрали. Если драйверы установлены не будут, можете обратиться к руководству по работе с Wi-Fi в T2 Linux. Если драйверы окажутся на месте — можно подключиться к беспроводной сети с использованием iwd:

systemctl start iwd.service && \
iwctl --passphrase <pass> station wlan0 connect <wifi_ssid>

Оффлайновую установку я описал в этом материале про Invisible Arch Linux.

Если в ходе выполнения вышеописанных команд возникли какие-то проблемы — попробуйте команду iwctl. В вашем распоряжении окажется симпатичный псевдографический интерфейс nCurses. Там вы, с помощью команды help, сможете получить справочные сведения по установке и проверке соединения.

Проверка разделов


Прежде чем устанавливать Arch Linux — запустите команду parted из среды Archiso и убедитесь в том, что разделы диска выглядят так, как ожидается, и что они правильно отформатированы. Для того чтобы узнать о том, какой именно диск нужно исследовать, перед применением parted выполните команду lsblk -f и выясните имя SSD-диска.

Внимание! Соблюдайте осторожность, выполняя команду parted или пользуясь любыми командами форматирования дисков из среды Live-USB. Если вы не будете предельно внимательны — вы можете просто стереть содержимое своего диска и уничтожить установленную на нём macOS. Считаете ли вы себя опытным пользователем, или нет — подумайте о создании резервной копии данных macOS прежде чем продолжать установку Arch Linux. Считайте, что я вас предупредил.

Проверьте, чтобы разделы Swap и Boot были бы правильно отформатированы и были бы отмечены ожидаемыми флагами. Если вам в этом нужна помощь — обратитесь к моему руководству по Invisible Arch Linux. Пусть оно будет отправной точкой ваших изысканий. Не надо следовать ему во всех деталях.

Разбиение диска на разделы можно выполнить так, как это было описано выше, из macOS, с помощью инструмента с графическим интерфейсом Disk Utility.

Установка Arch Linux


Есть два подхода к установке Arch Linux. Один предусматривает использование скриптов. Второй — это ручная установка. Вот — профиль установщика для archinstall, рассчитанный на установку системы на MacBook Pro с чипом T2. Правда, инструмент archinstall не рассчитан на работу с разделами. Но у него имеется экспериментальный режим, позволяющий работать с /mnt-директориями. Он — для смелых людей, которые сделали резервную копию всех ценных данных. Когда я попробовал этот режим, я столкнулся с массой неприятностей, после чего оставил эту затею, хотя псевдографический интерфейс этой программы выглядит неплохо.

Инструкции по ручной установке системы можно найти здесь. Если вы раньше никогда не устанавливали Arch Linux — сначала вам стоит разобраться с тем, как выполняется самостоятельная установка этой ОС.

Вот и вот — ресурсы, где можно найти справочные сведения по установке Arch Linux. Можете прибегнуть к ним на пути к успешному завершению установки. Если вы где-то основательно застрянете — можете заглянуть на Discord-сервер, который поддерживают ребята из T2. Только учитывайте то, что у Discord весьма неприятные условия предоставления услуг. Кроме того, администраторы соответствующего сервера открытым текстом обсуждают медицинские эксперименты. Мне не хотелось бы с этим связываться.

Подумайте о том, чтобы, вместо vim, если тачбар не работает, пользоваться для редактирования файлов редактором nano. Это поможет избежать желания воспользоваться клавишей Esc. Если, работая в vim, вы застрянете в режиме INSERT — нажмите Ctrl-C для возврата к нормальному редактированию текста.

Скопируйте конфигурационные файлы для настройки сети из папки /etc/systemd/network ISO-образа в свой корневой каталог, чтобы вам не пришлось вручную настраивать systemd после первой загрузки. Тут имеются настройки для сетей трёх видов, они очень хорошо собраны. Чтобы ими воспользоваться — скопируйте их по одному и тому же пути своей папки /mnt.

Завершите установку и задайте root-пароль. Потом перезагрузитесь, удерживая option, и выбрав новую опцию EFI (тут я исхожу из предположения об успешной загрузке systemd). Если вы не смогли загрузить только что установленную Arch Linux — тщательно проверьте ESP-загрузчики и /etc/fstab. Надо, чтобы, используемые вами UUID загрузчиков соответствовали бы тому, что имеется в fstab.

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


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

▍Настройка сети


Iwd — это очень простой инструмент, которым можно пользоваться без NetworkManager или отдельного DNS-резолвера. Ему нужен лишь systemd. Для того чтобы, сразу после установки системы, заставить работать Wi-Fi, нужно написать в точности 4 строки конфигурационного файла, а так же запустить или включить несколько служб:

  • Запустите или включите iwd.service, подключитесь к сети с помощью iwctl, после чего выполните команду iwctl station wlan0 show для того чтобы посмотреть сведения о подключении. Если у вас нет IP-адреса, обратитесь к этому руководству. Всё тут сводится к написанию пары строк в конфигурационном файле. После этого системе, с использованием встроенного DHCP-функционала iwd, будет назначен IP-адрес. Завершив настройку — перезапустите iwd.
  • Попробуйте попинговать 1.1.1.1 и archlinux.org. Если вы скопировали себе конфигурационные файлы для настройки сети, как было описано выше, то в этот момент у вас должна быть возможность подключиться к WLAN и пинговать другие системы. Для того чтобы позволить iwd разрешать IP-адреса, нужно настроить резолвер. Тут мы пользуемся systemd. Добавьте в /etc/iwd/main.conf ещё пару строк, в соответствии с тем, что написано здесь.
  • После того, как systemd-резолвер настроен, его, чтобы заработала бы служба DNS, нужно, вместе с сетевыми сервисами, включить:

    systemctl enable --now systemd-networkd && \
    systemctl enable --now systemd-resolved
    

    Теперь у вас должно получиться успешно выполнить команду ping archlinux.org, resolved при этом обеспечит нормальную работу с DNS. А это значит, что теперь можно воспользоваться pacman, а так же можно установить любые пакеты, забытые ранее при использовании pacstrap.
  • Если вы пользуетесь Docker, то Docker, поначалу, не сможет решать DNS-задачи, так как эта система ожидает, что в файле /etc/resolv.conf будут содержаться конфигурационные сведения, которых там нет. Для того чтобы справиться с этой проблемой — создайте символьную ссылку /etc/resolv.conf, указывающую на /run/systemd/resolve/resolv.conf — как описано в части «2b» этого ответа на ServerFault. Не стоит благодарности.
  • Кроме того, если хотите, перечитайте документы по iwd и networkd из вики по Arch и внесите в систему необходимые изменения. Например, ещё пара строк в конфигурационных файлах позволяет вам включить поддержку IPv6. Или, ради повышения уровня анонимности, можно сделать так, чтобы при каждом подключении к интернету менялся бы сетевой MAC-адрес. Ещё можно отключить сканирование сетей, в результате, после отключения, iwd не будет этим заниматься.

Пожалуй, тут я уже рассказал обо всём, связанным с настройкой сетей, что позволит наладить нормальную работу. Теперь установим окружение рабочего стола. Я собираюсь воспользоваться GNOME.

▍Установка окружения рабочего стола


Добавьте нового пользователя и установите его пароль:

useradd -m -g users -G wheel,storage,power -s /bin/bash <USERNAME>
passwd <USERNAME>

Сделайте его суперпользователем, выполнив установку EDITOR=vim visudo и раскомментировав в /etc/sudoers строку %wheel ALL=(ALL) ALL.

Теперь установите и запустите рабочий стол gnome:

pacman -S gnome
systemctl start gdm

Остаётся лишь войти в систему под новым пользователем и, возможно, установить помощника AUR, вроде Yay, скопировать или сгенерировать GPG-ключи и поставить gopass. Теперь вы готовы к полноценной работе.

Личные впечатления


Хотя у меня и не возникло проблем с большинством драйверов, была одна неприятность, когда я попытался выполнить рекомендации из вики T2 в применении к выбранному мной ISO-образу. В итоге я понял, что, в зависимости от конкретного ISO, большинство шагов раздела DKMS вики T2 могут оказаться ненужными.

Динамики ноутбука звучат не так хорошо, как в macOS. Ещё — по какой-то причине я не могу расшарить экран в Jitsi Meet. Но видеокамера работает, музыка проигрывается в стереорежиме, а новая версия GNOME очень приятно выглядит на дисплее высокого разрешения.

Моя самая большая досада — это неработающий микрофон. Я, пытаясь это исправить, так задёргал систему, что мне пришлось переформатировать диски и переустановить Arch. Случилось это после того, как я, без особого успеха, попытался перейти с PulseAudio на PipeWrite. У вас всё может пройти не так, как прошло у меня.

Итоги


В этом материале я рассказал об установке Arch Linux на MacBook Pro с чипом T2 в режиме двойной загрузки. Я привёл советы по созданию минималистичной сетевой конфигурации и поделился личными впечатлениями. T2 Linux подходит и для MacBook Pro 2020 года, и для Macbook Air и для других компьютеров Mac. Попробуйте её, чтобы сделать впечатления от своего Mac такими же, как от компьютера с установленной GNU.

Пользуетесь ли вы Linux на ноутбуках?

Источник: https://habr.com/ru/company/ruvds/blog/645917/


Интересные статьи

Интересные статьи

В наши дни редакторы кода часто предлагают программистам помощь или справочные сведения, относящиеся к тому, что вводится с клавиатуры. Это может быть всё что угодно — от списка коротких ...
Для чего вообще специально настраивать клавиатуру? Можно пользоваться и стандартными настройками, но иногда внесенные изменения дают возможность набирать быстрее (это, конечно, не слепая печать...
В WinAPI есть функция CreateRemoteThread, позволяющая запустить новый поток в адресном пространстве другого процесса. Её можно использовать для разнообразных DLL-инъекций как с нехорошими целями ...
Создать приложение для резервного копирования, работающее на любом дистрибутиве — задачка не простая. Чтобы обеспечить работу Veeam Agent for Linux на дистрибутивах от Red Hat 6 и Debian 6, д...
Мы развивали DevOps как могли. Нас было 8 человек, и Вася был самым крутым по Windows. Внезапно Вася ушел, а у меня появилась задача вывести новый проект, который поставляет Windows-разработка. К...