Asus Eee как сервер: установка Arch Linux

21 Feb 2010

Внимание! Эта статья написана давно и валяется тут исключительно в исторических целях!

В прошлый раз я рассказывал о неудачной попытке установки на Asus EEE 900 FreeBSD (пост удален). Сегодня все закончится более успешно. Приступим.

Устанавливаться сегодня будет Arch Linux. Образ установщика универсален, его можно спокойно записывать сразу на флешку, используя dd в Linux'е или flashnul в MS Windows. Загрузка с флешки тоже не должна вызвать особых трудностей, благо оба этих шага отлично оговорены в официальной wiki.

Разметка диска

Итак, загрузившись с флешки, не следует приступать сразу к установке. Перед этим стоит правильно приготовить SSD. Опять же в официальной wiki советуют, что ставить MBR на SSD не следует, потому что придется вручную выравнивать разделы, в то время, как gdisk - подобие fdisk, только для работы с таблицей разделов GPT - сделает это сама. Из минусов GPT можно отметить то, что с ней не работает GRUB, но это легко решается установкой GRUB2 или syslinux. Я выбрал последний вариант.

Первым делом необходимо установить сам gdisk. Его нет в установочном образе, поэтому убедитесь, что у вас есть доступ в интернет. После этого наберите в консоли:

# pacman -S gdisk

После этого можно запустить gdisk на нужном разделе:

# gdisk /dev/sda
GPT fdisk (gdisk) version 0.6.13

Partition table scan:
    MBR: not present
    BSD: not present
    APM: not present
    GPT: not present

Creating new GPT entries.

Он выдаст нам информацию о наличии на диске различных таблиц разделов и остановится в ожидании команды. Доступные команды можно посмотреть набрав ?. Для создания новой таблицы разделов GPT используется команда o:

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Теперь можно приступать к созданию разделов. Это делается командой n:

Command (? for help): n
Partition number (1-128, default 1): <нажмите Enter чтобы использовать значение по умолчанию>
First sector (34-125045424, default = 34) or {+-}size{KMGTP}: <Enter>
Information: Moved requested sector from 34 to 2048 in order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-125045424, default = 125045424) or {+-}size{KMGTP}: +10G
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): <Enter>
Changed type of partition to 'Linux/Windows data'

Вуаля:

Command (? for help): p
Disk /dev/sda: 125045424 sectors, 59.6 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): A89B4292-8ED7-40CB-BD45-58A160E090EE
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 125045390
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
    1            2048        20973567   10.0 GiB    0700  Linux/Windows data

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

Выбор файловой системы и установка

После разметки диска можно приступать непосредственно к установке. Выбираем источник установки, настраиваем часы. На третьем шаге ("Prepare Hard Drive") смело пропускаем первые два варианта, так как с разметкой мы разобрались, а вот на третьем остановимся и сделаем маленькое лирическое отступление.

Как вы знаете, главный недостаток SSD в настоящее время - ограниченное количество раз перезаписи ячеек. Это непосредственно влияет на срок службы вашего SSD. Чтобы продлить этот срок необходимо правильно выбрать файловую систему и настроить ее. В данный момент Linux поддерживает достаточно много ФС: ext 2/3/4, reiserfs, xfs, jfs, btrfs. Я выбрал для SSD ext2 потому что она нежурналируемая (журнал = лишние перезаписи), потому что она наиболее стабильна (17 лет - не шутка) и потому что проста в настройке. Остальные ФС в основном были отстранены из-за журналирования, xfs довольно прожорлива до процессора, а btrfs, хотя и имеет специальную ssd "магию", пока еще нестабильна. Единственное замечание к ext2 - используйте бэкапы! Если с ней что-то случится, то журнала нет, а значит и шанса восстановить последние записанные данные тоже.

Для того, чтобы еще больше сократить количество перезаписи ячеек, к опциям монтирования ext2 стоит добавить noatime и nodiratime, которые отключают запись времени последнего доступа к файлам и директориям соответственно. У редких программ (mutt, например) это может вызвать отказ в работе, но у меня таких программ не нашлось.

В остальном особых замечаний по настройке и установке нет. Arch отлично определяет все оборудование, поэтому после перезагрузки у вас должно работать все железо.

Установка загрузчика (syslinux)

Итак, если вы сделали разметку диска согласно инструкции, написанной выше, то сейчас самое время разобраться с загрузчиком, поскольку GRUB не работает с GPT.

Для начала поставим на наш диск отметку о том, что он загрузочный:

# sgdisk /dev/sda --attributes=1:set:2

Далее необходимо будет установить сам syslinux. Делается это стандартно через pacman:

# pacman -S syslinux

Далее следует создать отельную директорию для syslinux в /boot и установить туда syslinux:

# mkdir /boot/syslinux
# extlinux --install /boot/syslinux
/boot/syslinux/ is device /dev/sda1

А после следует записать загрузочную запись на выбранный диск:

# cat /usr/lib/syslinux/gptmbr.bin > /dev/sda

После этого загрузчик будет установлен, но еще не настроен. Его настройки хранятся в файле syslinux.conf (или extlinux.conf) в директории, которую мы создали выше (/boot/syslinux). Мой конфигурационный файл выглядит так (нет отдельного раздела для /boot, одна ОС на компьютере):

PROMPT 0
TIMEOUT 50
DEFAULT Arch

LABEL Arch
    LINUX /boot/vmlinuz26
    APPEND root=/dev/sda1 ro
    INITRD /boot/kernel26.img

За более подробным конфигом прошу, в который раз, в официальную вики.

Дополнительная информация по дискам

Этот раздел касается тех, у кого есть намерения использовать для высоконагруженных каталогов (например, /var или /tmp) внешний USB-HDD. По умолчанию initramfs в Arch Linux собирается без поддержки USB-устройств. Чтобы можно было использовать USB-HDD через /etc/fstab для монтирования на вышеописанные каталоги необходимо в /etc/mkinitcpio.conf в раздел HOOKS добавить usb, чтобы он выглядел примерно так:

HOOKS="base udev autodetect ide scsi sata filesystems usb"

После чего можно спокойно использовать USB-HDD при загрузке.

Заключениe

В последующих статьях я расскажу как поднять на Eee 900 точку доступа по wifi, настроить файрволл для раздачи интернета, sshd для доступа по ssh и прочее.