ArchLinux: ArchLinuxをインストールする

ArchLinuxのインストール手順を記載します。

anaconda等のGUIインストーラはないので、インストーラがやってくれていたことを手作業でやる必要があります。

デスクトップ環境はlxdmとxfce4を使用します。

 

1 LiveDVDの取得

ArchLinuxのダウンロードページからミラーサイトを選択し、archlinux-2016.06.01-dual.isoをダウンロードします。

2 LiveDVDの起動

ArchLinuxを起動すると以下のメニューが表示されます。

ここではTABキーを押して、console=ttyS0,115200を付けています。

0001_GRUB.png

LiveDVDが起動します。

[  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[  OK  ] Started Serial Getty on ttyS0.
[  OK  ] Started Getty on tty1.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started Initializes Pacman keyring.
[  OK  ] Reached target Multi-User System.

Arch Linux 4.5.4-1-ARCH (ttyS0)

archiso login: root
Last login: Wed Jun  1 20:56:20 on tty1
root@archiso ~ #

3 LiveDVDでの設定

chrootする前の設定について記載します。

3.1 パーティションの作成

fdisk実行前のパーティションは以下の通りです。

root@archiso ~ # cat /proc/partitions
major minor  #blocks  name

 254        0   83886080 vda
  11        0     761856 sr0
   7        0     330856 loop0

fdiskで/dev/vdaにパーティションを作成します。

root@archiso ~ # fdisk /dev/vda

Welcome to fdisk (util-linux 2.28).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x1a1a375b.

/boot用の領域を作成します。

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-167772159, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-167772159, default
167772159): 1026047

Created a new partition 1 of type 'Linux' and of size 500 MiB.

LVM用の領域を作成します。

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2):
First sector (1026048-167772159, default 1026048):
lasst sector, +sectors or +size{K,M,G,T,P} (1026048-167772159,
 default 167772159):

Created a new partition 2 of type 'Linux' and of size 79.5 GiB.

/boot用の領域にbootラベルをつけます。

Command (m for help): a
Partition number (1,2, default 2): 1

The bootable flag on partition 1 is enabled now.

LVM用の領域にLinux LVMラベルをつけます。

Command (m for help): t
Partition number (1,2, default 2): 2
Partition type (type L to list all types): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

変更を/dev/vdaに反映させます。

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

パーティションの構成は以下の通りになりました。

root@archiso ~ # fdisk -l /dev/vda
Disk /dev/vda: 80 GiB, 85899345920 bytes, 167772160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1a1a375b

Device     Boot   Start       End   Sectors  Size Id Type
/dev/vda1  *       2048   1026047   1024000  500M 83 Linux
/dev/vda2       1026048 167772159 166746112 79.5G 8e Linux LVM

3.2 LVMの設定

/dev/vda2にLVM物理ボリュームを作成します。

root@archiso ~ # pvcreate /dev/vda2
  Physical volume "/dev/vda2" successfully created.

/dev/vda2にvg_archlinuxというボリュームグループを作成します。

root@archiso ~ # vgcreate vg_archlinux /dev/vda2
  Volume group "vg_archlinux" successfully created

vg_archlinuxに2GByteの論理ボリュームlv_swapを作成します。

root@archiso ~ # lvcreate -L 2G -n lv_swap vg_archlinux
  Logical volume "lv_swap" created.

vg_archlinuxに残りサイズを使った論理ボリュームlv_rootを作成します。

root@archiso ~ # lvcreate -l 100%FREE -n lv_root vg_archlinux
  Logical volume "lv_root" created.

論理ボリュームは以下の通りとなります。

root@archiso ~ # lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_archlinux/lv_swap
  LV Name                lv_swap
  VG Name                vg_archlinux
  LV UUID                xCzJB4-GtEf-IdaE-5zyb-C9jq-o35Q-LMH0fn
  LV Write Access        read/write
  LV Creation host, time archiso, 2016-06-02 08:40:06 +0000
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/vg_archlinux/lv_root
  LV Name                lv_root
  VG Name                vg_archlinux
  LV UUID                044QxM-XW3y-fM3Z-gO2K-m6LY-zvCp-spJUlJ
  LV Write Access        read/write
  LV Creation host, time archiso, 2016-06-02 08:42:46 +0000
  LV Status              available
  # open                 0
  LV Size                77.51 GiB
  Current LE             19842
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

3.3 ファイルシステムの作成

/dev/vda1をext4で初期化します。

root@archiso ~ # mkfs.ext4 /dev/vda1
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 512000 1k blocks and 128016 inodes
Filesystem UUID: f9cfa9b6-e430-4401-83af-01f7d1848fff
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

/dev/vg_archlinux/lv_rootをext4で初期化します。

root@archiso ~ # mkfs.ext4 /dev/vg_archlinux/lv_root
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 20318208 4k blocks and 5087232 inodes
Filesystem UUID: 9370cab0-2929-4c99-8e11-4c50a35f00b9
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,
2654208,
        4096000, 7962624, 11239424

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

/dev/vg_archlinux/lv_swapをスワップ領域として初期化します。

root@archiso ~ # mkswap /dev/vg_archlinux/lv_swap
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=d9f73db0-770f-4d29-a209-ebfc01080bc7

各種ファイルシステムをマウントします。

root@archiso ~ # mount -t ext4 /dev/vg_archlinux/lv_root /mnt
root@archiso ~ # mkdir /mnt/boot
root@archiso ~ # mount -t ext4 /dev/vda1 /mnt/boot
root@archiso ~ # swapon /dev/vg_archlinux/lv_swap

3.4 パッケージのインストール

pacstrapでbase、sudo、grub、lvm2、opensshをインストールします。

gdmとlightdmは上手く動かなかったので、lxdmをインストールします。

gnome-terminalが上手く動かなかったので、xfce4をインストールします。

root@archiso ~ # pacstrap /mnt base xfce4 xfce4-goodies lxdm \
sudo grub lvm2 openssh
==> Creating install root at /mnt
==> Installing packages to /mnt
:: Synchronizing package databases...

base等のパッケージグループの詳細についてはこちらを御覧ください。

3.5 fstabの作成

genfstabで/etc/fstabを作成します。

root@archiso ~ # genfstab -p /mnt >> /mnt/etc/fstab
root@archiso ~ # cat /mnt/etc/fstab
#
# /etc/fstab: static file system information
#
# <file system> <dir>   <type>  <options>       <dump>  <pass>
# UUID=9370cab0-2929-4c99-8e11-4c50a35f00b9
/dev/mapper/vg_archlinux-lv_root        /               ext4
rw,relatime,data=ordered  0 1

# UUID=f9cfa9b6-e430-4401-83af-01f7d1848fff
/dev/vda1               /boot           ext4
rw,relatime,data=ordered        0 2

# UUID=d9f73db0-770f-4d29-a209-ebfc01080bc7
/dev/mapper/vg_archlinux-lv_swap        none            swap
defaults        0 0

4 chrootでの設定

arch-chrootで作成したルートファイルシステムにchrootします。

root@archiso ~ # arch-chroot /mnt
sh-4.3#

4.1 ホスト名の設定

/etc/hostnameにホスト名を記載します。

sh-4.3# echo "archlinux" > /etc/hostname

4.2 localeの作成

/etc/locale.genと/etc/locale.confを作成します。

sh-4.3# locale-gen
Generating locales...
Generation complete.
sh-4.3# echo "LANG=ja_JP.UTF-8" > /etc/locale.conf

4.3 sudoの設定

visudoで/etc/sudoersを編集します。以下の%wheel前の#を消します。

sh-4.3# EDITOR=nano visudo
sh-4.3# diff -uprN /etc/sudoers{.org,}
--- /etc/sudoers.org    2016-06-02 20:42:43.913333333 +0000
+++ /etc/sudoers        2016-06-02 20:43:28.186666661 +0000
@@ -82,7 +82,7 @@ root ALL=(ALL) ALL
 # %wheel ALL=(ALL) ALL

 ## Same thing without a password
-# %wheel ALL=(ALL) NOPASSWD: ALL
+%wheel ALL=(ALL) NOPASSWD: ALL

 ## Uncomment to allow members of group sudo to execute any command
 # %sudo        ALL=(ALL) ALL

4.4 rootのパスワード設定

rootのパスワードを設定します。

sh-4.3# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

4.5 ユーザの作成

sudoが使えるユーザを作成します。

sh-4.3# useradd -m hiroom2
sh-4.3# gpasswd -a hiroom2 wheel
Adding user hiroom2 to group wheel
sh-4.3# passwd hiroom2
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
sh-4.3# su - hiroom2
[hiroom2@archiso ~]$ ls -la
total 20
drwx------ 2 hiroom2 hiroom2 4096 Jun  2 09:37 .
drwxr-xr-x 3 root    root    4096 Jun  2 09:37 ..
-rw-r--r-- 1 hiroom2 hiroom2   21 Nov 23  2015 .bash_logout
-rw-r--r-- 1 hiroom2 hiroom2   57 Nov 23  2015 .bash_profile
-rw-r--r-- 1 hiroom2 hiroom2  141 Nov 23  2015 .bashrc
[hiroom2@archiso ~]$ sudo ls -a /root
.  ..  .bash_history  .gnupg
[hiroom2@archiso ~]$ exit

4.6 GRUBの設定

カーネル起動パラメータroot=にUUID=xxxではなく/dev/xxxを用いるようにします。

sh-4.3# diff -uprN /etc/default/grub{.org,}
--- /etc/default/grub.org       2016-06-02 21:05:42.826666637 +0000
+++ /etc/default/grub   2016-06-02 21:05:56.266666657 +0000
@@ -27,7 +27,7 @@ GRUB_GFXPAYLOAD_LINUX=keep

 # Uncomment if you want GRUB to pass to the Linux kernel the old
 # parameter
 # format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
-#GRUB_DISABLE_LINUX_UUID=true
+GRUB_DISABLE_LINUX_UUID=true

 # Uncomment to disable generation of recovery mode menu entries
 GRUB_DISABLE_RECOVERY=true

ArchLinuxのgrub-installには若干問題があり、適切なroot=の場所を探すことができないようです。

grub-mkconfigでgrub.cfgを作成し直す必要があります。

sh-4.3# grub-install --boot-directory=/boot /dev/vda
Installing for i386-pc platform.
Installation finished. No error reported.
sh-4.3# grub-mkconfig -o /boot/grub/grub.cfg

4.7 initramfsの設定

initramfsでlvm2のスクリプトを読み込むようにします。

sh-4.3# diff -uprN /etc/mkinitcpio.conf{.org,}
--- /etc/mkinitcpio.conf.org    2016-06-02 21:10:11.310000004 +0000
+++ /etc/mkinitcpio.conf        2016-06-02 21:10:39.563333326 +0000
@@ -49,7 +49,7 @@ FILES=""
 #
 ##   NOTE: If you have /usr on a separate partition, you MUST include the
 #    usr, fsck and shutdown hooks.
-HOOKS="base udev autodetect modconf block filesystems keyboard fsck"
+HOOKS="base udev autodetect modconf block filesystems keyboard fsck lvm2"

 # COMPRESSION
 # Use this to compress the initramfs image. By default, gzip compression

mkinitcpioでinitramfsを作成します。

sh-4.3# mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset:

LiveDVDを再起動して、インストールしたArchLinuxを起動します。

sh-4.3# exit
root@archiso ~ # umount /mnt/boot
root@archiso ~ # umount /mnt
root@archiso ~ # reboot

5 インストールしたArchLinuxでの設定

インストールしたArchLinuxを起動して、ログインします。

lxdmが動いていないので、ttyの画面が表示されます。

 

dhcpcdでDHCPサーバからIPアドレス、経路情報、DNS情報を取得します。

[root@archlinux ~]# systemctl enable dhcpcd

sshdを有効にします。

[root@archlinux ~]# systemctl enable sshd

lxdmを有効にします。

[root@archlinux ~]# systemctl enable lxdm

再起動します。

[root@archlinux ~]# reboot

lxdmのログイン画面が表示されました。

0002_LXDM.png

Xfceでログインできました。

0003_Xfce.png