Да, Arch отлично живёт на внешнем SSD. Установка почти не отличается от обычной: та же разметка, тот же pacstrap, тот же chroot. Единственное серьёзное отличие — загрузчик. Если в BIOS нет опции загрузки с USB, ставь его в fallback-путь: grub-install --target=x86_64-efi --efi-directory=/boot --removable создаёт EFI/BOOT/bootx64.efi, который грузится почти с любой UEFI-прошивки. Такой диск грузится на любом компьютере.
Можно, и это не хак. Arch не знает, на каком носителе лежит: SATA, NVMe или USB-коробка с SSD — для системы это просто блочное устройство. Вся разница в двух вещах: как прошивка находит загрузчик и как ядро находит корень.
С корнем всё просто: в параметрах ядра указываешь root=UUID=..., и ядро само найдёт раздел, даже если диск переехал на другой порт. С загрузчиком сложнее — прошивка ищет его по записи в NVRAM или по стандартному пути. Вот тут и прячется подводный камень.
На многих материнках (особенно офисных и ноутбуках) в BIOS нет пункта «Boot from USB», или он скрыт. Но это не значит, что внешний диск не загрузится. UEFI-спецификация требует от прошивки: если в NVRAM нет ни одной загрузочной записи, искать \EFI\BOOT\BOOTX64.EFI на подключённых дисках. Это и есть fallback-путь.
Задача — положить загрузчик именно туда. Тогда прошивка найдёт его сама, без записей и без опции USB-boot в меню.
Сначала всё же загляни в BIOS: опция может называться «USB Storage Boot», «Removable Devices» или «Boot from External Device». Есть — включи, это самый простой путь. Нет — fallback-путь решает проблему.
Разметка — GPT, как и для обычного диска. Обязателен ESP-раздел: FAT32, минимум 512 МБ, лучше 1 ГБ — поместятся несколько ядер, микрокод и запас на будущее. Капризные прошивки с маленьким ESP работают нестабильно, не жадничай.
fdisk /dev/sdb
# g — создать таблицу GPT
# n — раздел 1, размер +1G, тип t → 1 (EFI System)
# n — раздел 2, остальное место, тип t → 23 (Linux root)
# w — записать изменения
Форматируем и монтируем:
mkfs.fat -F 32 /dev/sdb1
mkfs.ext4 /dev/sdb2
mount /dev/sdb2 /mnt
mount --mkdir /dev/sdb1 /mnt/boot
Дальше — обычная установка: pacstrap, fstab, locale. Если забыл последовательность — вот чек-лист установки и установка за 15 минут. Загрузиться с установочной флешки можно через Ventoy — просто кидаешь ISO на раздел и грузишься.
Вот ключевой момент. Обычная команда grub-install пишет загрузчик в EFI/GRUB/ и создаёт запись в NVRAM. Запись привязана к конкретной прошивке: на другой машине её просто не будет. Для внешнего диска это не годится.
Ставь GRUB с флагом --removable:
pacstrap -K /mnt base linux linux-firmware grub efibootmgr
arch-chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot --removable
grub-mkconfig -o /boot/grub/grub.cfg
--removable кладёт загрузчик в EFI/BOOT/bootx64.efi — тот самый fallback-путь. Прошивка находит его на любом компьютере, где включена UEFI-загрузка. Бонус: команда не трогает NVRAM, так что работает, даже если установочную флешку загрузили в BIOS-режиме.
Альтернатива — systemd-boot, он уже в системе. Если ESP примонтирован в /boot, достаточно:
bootctl install
bootctl install копирует загрузчик сразу в два места: EFI/systemd/systemd-bootx64.efi и EFI/BOOT/BOOTX64.EFI. Второе — тот же fallback-путь, диск загрузится на любой машине. Если ESP в другом месте, укажи путь: bootctl install --esp-path=/efi.
Загрузочные записи UEFI живут в NVRAM — энергонезависимой памяти прошивки. Это не файл на диске, а данные внутри материнской платы. Запись, созданная на одном компьютере, физически не существует на другом. Поэтому обычный grub-install без --removable даёт диск, который грузится только на той машине, где его ставили.
Плюс NVRAM — хрупкая штука: обновление прошивки, сброс BIOS, кривой efibootmgr — и запись пропала. Про ошибки вида «EFI variables are not supported» я писал в отдельной статье. Fallback-путь от этого не зависит: файл лежит на диске, прошивка находит его по стандарту.
SSD без TRIM деградирует: контроллер не знает, какие блоки свободны, запись замедляется. Для внешнего диска это особенно актуально — USB-мост добавляет задержек.
Проверь, поддерживает ли связка USB-мост + SSD TRIM:
lsblk -D /dev/sdb
Колонки DISC-GRAN и DISC-MAX не равны нулю — TRIM работает. Тогда включи периодическую очистку:
systemctl enable --now fstrim.timer
fstrim -av
Либо добавь опцию discard в fstab — тогда TRIM выполняется при каждом удалении файла:
UUID=xxxx-xxxx / ext4 rw,noatime,discard 0 1
noatime тоже полезен: меньше лишних записей, диск живёт дольше. Если lsblk -D показывает нули — мост не умеет TRIM, тут ничего не сделаешь.
Можно ли просто скопировать установку с внутреннего диска на внешний?
Можно, но проще поставить с нуля: pacstrap сам соберёт систему под новое железо. При переносе придётся пересобирать загрузчик, править fstab и mkinitcpio — больше возни, чем пользы.
Будет ли система медленной на USB?
Зависит от моста. USB 3.2 Gen 2 с UASP даёт почти нативную скорость NVMe. Старые мосты без UASP режут скорость и добавляют задержки. Для повседневной работы нормально, для игр с тяжёлой загрузкой — так себе.
Secure Boot помешает загрузке с внешнего диска?
Да, если включён. GRUB и systemd-boot в стоке не подписаны, прошивка их не запустит. Для внешнего диска проще отключить Secure Boot, чем подписывать загрузчик ключами.
Fast boot тоже мешает?
Иногда. В режиме fast boot прошивка может пропускать разделы, кроме ESP, или не инициализировать USB-контроллер до загрузчика. Если диск не находится — отключи fast boot в BIOS и попробуй снова.
Нужен ли отдельный ESP на внешнем диске?
Да, обязателен. UEFI не умеет грузить загрузчик с ext4 или btrfs — только с FAT-раздела. Без ESP внешний диск не загрузится ни на одной машине.
Установка Arch на внешний SSD — это обычная установка плюс один трюк с загрузчиком. Размечаешь GPT с ESP на 1 ГБ, ставишь систему как обычно, а загрузчик пишешь в fallback-путь: grub-install --removable или bootctl install. Такой диск грузится на любом компьютере с UEFI, даже если в BIOS нет опции USB-boot. Не забудь про TRIM — и внешний Arch прослужит долго.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии