Установка Arch Linux на виртуальную машину


Создание виртуальной машины

Замечание Используется VMWare Server
  • Название: desktop
  • ОС: Linux operating system → Other Linux 64-bit
  • Объём ОЗУ: 1024 М
  • Кол-во процессоров: 1
  • Диск:
    • Объём: 8 ГБ
    • Выделить место сразу: да
  • Сеть: Bridged
  • USB: нет
  • Floppy: нет
  • CD/DVD: загрузочный образ Arch Linux (archlinux-2013.05.01-dual.iso)

Базовая установка ОС Arch Linux

Загрузиться с установочного диска и выбрать “Boot Arch Linux (x86_64)”. Подготовить жёсткий диск:

root@archiso ~ # fdisk -l                               <1>
root@archiso ~ # fdisk /dev/sda                         <2>
root@archiso ~ # fdisk -l /dev/sda                      <3>
root@archiso ~ # mkfs -t ext4 /dev/sda1                 <4>
root@archiso ~ # mkfs -t ext4 /dev/sda3                 <4>
root@archiso ~ # mkswap /dev/sda2                       <5>
root@archiso ~ # swapon /dev/sda2                       <6>
root@archiso ~ # mount /dev/sda3 /mnt                   <7>
root@archiso ~ # mkdir /mnt/boot                        <8>
root@archiso ~ # mount /dev/sda1 /mnt/boot              <9>
  1. Вывод списка определившихся жёстких дисков
  2. Разметка жёсткого диска (см. ниже)
  3. Проверка разметки жёсткого диска
  4. Форматирование разделов
  5. “Форматирование” раздела под swap
  6. Подключение swap
  7. Подключение раздела root
  8. Создание точки подключения для раздела boot
  9. Подключение раздела boot
Таблица 1. Разметка жёсткого диска
Раздел Объём Объём для реальной системы
1
/boot
100М
100М
2
swap
1ГБ
от 1ГБ до 2ГБ
3
/
всё остальное
15-30ГБ
4
/var
8-16ГБ
5
/home
всё остальное

Далее, настроить сетевое подключение:

root@archiso ~ # lspci -v | more                        <1>
root@archiso ~ # dmesg |grep e1000                      <2>
root@archiso ~ # ls /sys/class/net                      <3>
root@archiso ~ # ip addr show enp2s0                    <4>
  1. Вывод списка устройств PCI
  2. Проверка состояния драйвера
  3. Вывод имён сетевых устройств
  4. Вывод текущего IP-адреса интерфейса enp2s0

Если в сети присутствует сервер динамических адресов (DHCP server), то:

root@archiso ~ # systemctl start dhcpcd.service

Если сервера DHCP нет, то настроить сетевое подключение вручную. Остановить сервер динамических адресов, настроить IP-адрес и шлюз по умолчанию:

root@archiso ~ # systemctl stop dhcpcd.service          <1>
root@archiso ~ # ip addr add 10.0.0.136/24 dev enp2s0   <2>
root@archiso ~ # ip route add default via 10.0.0.2      <3>
root@archiso ~ # vi /etc/resolv.conf                    <4>
nameserver 10.0.0.2
search asia-systems.com
root@archiso ~ # ping st.uz                             <5>
  1. Остановка DHCP
  2. Добавление IP-адреса
  3. Добавление шлюза по умолчанию
  4. Указание сервера имён (DNS)
  5. Проверка доступа в Интернет

Настроить репозитарий ПО, изменив файл /etc/pacman.d/mirrorlist так, чтобы первая строка файла указывала на ближайший репозитарий, например http://mirrors.st.uz/archlinux/$repo/os/$arch. Во избежание переключения на другие репозитарии в случае ошибки подключения к основному, пересоздать файл /etc/pacman.d/mirrorlist с указанием только тех репозитариев, которые должны использоваться:

root@archiso ~ # cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.sav
root@archiso ~ # grep st.uz /etc/pacman.d/mirrorlist.sav > /etc/pacman.d/mirrorlist
Подсказка Если в распоряжении имеется другая система с Arch Linux в актуальном состоянии, то для ускорения процесса скачивания необходимого ПО можно переписать содержимое кэша менеджера пакетов pacman из действующей актуальной системы в новую, устанавливаемую. Например:root@archiso ~ # scp root@other_system:/var/cache/pacman/pkg/* /mnt/var/cache/pacman/pkg/

Возможно, на действующей системе кэш менеджера пакетов будет содержать множество устаревших версий ПО, поэтому, перед копированием, следует очистить его от старых файлов командой “pacman -Sc”

Запустить базовую установку системы:

root@archiso ~ # pacstrap /mnt base base-devel

По окончанию установки, сконфигурировать систему

root@archiso ~ # arch-chroot /mnt pacman -S grub-bios   <1>
root@archiso ~ # genfstab -p /mnt >> /mnt/etc/fstab     <2>
root@archiso ~ # vi /mnt/etc/fstab                      <2>
root@archiso ~ # arch-chroot /mnt                       <3>
sh-4.2# echo webserver > /etc/hostname                  <4>
sh-4.2# vi /etc/hosts                                   <5>
sh-4.2# ls /usr/share/zoneinfo                          <6>
sh-4.2# ln -s /usr/share/zoneinfo/Asia/Tashkent 
/etc/localtime                                          <6>
sh-4.2# vi /etc/locale.gen                              <7>
...
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
...
sh-4.2# locale-gen                                       <7>
sh-4.2# echo LANG=ru_RU.UTF-8 > /etc/locale.conf         <7>
sh-4.2# export LANG=ru_RU.UTF-8                          <7>
sh-4.2# setfont /usr/share/kbd/consolefonts/UniCyr_8x16.psf.gz
sh-4.2# vi /etc/vconsole.conf                            <7>
KEYMAP=ru
FONT=/usr/share/kbd/consolefonts/UniCyr_8x16.psf.gz
FONT_MAP=
sh-4.2# loadkeys ru                                      <7>
sh-4.2# mkinitcpio -p linux                              <8>
sh-4.2# grub-install --target=i386-pc --recheck /dev/sda <9>
sh-4.2# cp /usr/share/locale/ru/LC_MESSAGES/grub.mo 
/boot/grub/locale/ru.mo
sh-4.2# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo 
/boot/grub/locale/en.mo                                 <9>
sh-4.2# grub-mkconfig -o /boot/grub/grub.cfg            <9>
sh-4.2# pacman -S openssh                               <10>
sh-4.2# passwd                                          <11>
sh-4.2# exit                                            <12>
root@archiso ~ # umount /mnt/boot                       <13>
root@archiso ~ # umount /mnt                            <13>
root@archiso ~ # shutdown -r now                        <14>
  1. Установка ПО загрузчика
  2. Cоздание и редактирование файла /etc/fstab
  3. Смена корневого окружения
  4. Создание файла с именем узла (пример: webserver)
  5. Редактирование файла /etc/hosts
  6. Настройка часового пояса
  7. Настройка локализации
  8. Создание initial ramdisk
  9. Установка и настройка загрузчика (grub)
  10. Установка сервера SSH
  11. Установка пароля пользователя root
  12. Выход из корневого окружения
  13. Отключение диска
  14. Перезагрузка системы

После перезагрузки, настроить заново сетевое подключение, запустить демон openssh и дальнейшую работу продолжать уже в более комфортных, чем локальная консоль, условиях:

root@webserver ~ # ls /sys/class/net
root@webserver ~ # systemctl stop dhcpcd.service
root@webserver ~ # ip addr add 10.0.0.136/24 dev ens32
root@webserver ~ # systemctl start dhcpcd.service
root@webserver ~ # systemctl start sshd

Открыть удалённую сессию на установленной системе.

Создать файл /etc/systemd/system/network.service и настроить автозапуск сетевых сервисов:

[root@webserver ~]# vi /etc/systemd/system/network.service

[Unit]
Description=Static IP Connectivity
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-ens32.device
After=sys-subsystem-net-devices-ens32.device

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ip link set dev ens32 up
ExecStart=/sbin/ip addr add 10.0.0.136/24 dev ens32
ExecStart=/sbin/ip route add default via 10.0.0.2

ExecStop=/sbin/ip addr flush dev ens32
ExecStop=/sbin/ip link set dev ens32 down

[Install]
WantedBy=multi-user.target

[root@webserver ~]# vi /etc/resolvconf.conf
name_servers=10.0.0.2
[root@webserver ~]# resolvconf -u
[root@webserver ~]# systemctl enable network
[root@webserver ~]# systemctl enable sshd
[root@webserver ~]# systemctl stop dhcpcd
[root@webserver ~]# systemctl disable dhcpcd

Установить vmware-tools:

[root@webserver ~]# pacman -S open-vm-tools open-vm-tools-modules
[root@webserver ~]# systemctl enable vmtoolsd
[root@webserver ~]# systemctl start vmtoolsd
[root@webserver ~]# vmware-toolbox-cmd timesync enable

Поддержка графического режима

Установить необходимые пакеты ПО и драйверы устройств:

[root@webserver ~]# pacman -S xorg-server xorg-xinit 
xorg-server-utils                                               <1>
[root@webserver ~]# lspci | grep VGA                            <2>
[root@webserver ~]# pacman -Ss xf86-video | less                <3>
[root@webserver ~]# pacman -S xf86-video-vmware                 <4>
[root@webserver ~]# pacman -S xorg-twm xorg-xclock xterm        <5>
[root@webserver ~]# pacman -S ttf-dejavu                        <6>
[root@webserver ~]# vi /etc/ssh/sshd_config                     <7>
X11Forwarding yes
  1. Установка базовых пакетов Xorg
  2. Определение модели видеокарты
  3. Вывод списка доступных видео-драйверов (open-source)
  4. Установка подходящего видео-драйвера
  5. Установка простых X-приложений для проверки графического окружения
  6. Установка шрифтов
  7. Настройка поддержки X-Windows через SSH

Дополнительные замечания

В системах с drm-модулем, например, с видеокартами Intel, загрузка этого модуля приводит к появлению нового устройства фреймбуфера (/dev/fb0 и т.д.) с повторной инициализацией консоли со сбросом шрифта. В результате, консольный шрифт может не отображаться правильно. Всё что нужно сделать – это обеспечить старт drm-модуля заведомо раньше загрузки шрифта. Для этого, в файле “/etc/mkinitcpio.conf” добавить значение “drm” в директиве “MODULES” и пересоздать образ initramfs командой “mkinitcpio -p linux”.


Завершение

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

[orca@blizzard ~]$ ssh -X root@10.0.0.136
root@10.0.0.136's password:
Last login: Wed May 29 16:14:18 2013 from 10.0.0.14
[root@webserver ~]# xterm

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