btrfs + uefi で archlinux をインストール

archlinux は　自分が経験したlinux中で 一番はやいと思います。
小さな犬は　決して足は早くない（グレーハウンドの走るスピードは、時速60～70キロ）。
つまり**軽量化と　高速化は別の概念**で、　軽はF１では勝てません。

btrfs 単独　あるいは　uefi 単独で　archlinux をインストールすることは容易です。
**この２つの組み合わせはネットをみても容易には見つからなかったので書きました**

2TB以上のパーティションから起動し、16EiBのファイルサイズに　対応すべく
btrfs + uefi で archlinux のインストールを試みました。

できます。

まずテストとして　USB　ハードディスクにインストールし
全く同様の手段で　sata ハードディスクにインストールできます。
btrfsによって　snapper の　archlinux版　pac-snap が使えますので、　pacman -Sy 某
の取り消しも簡単です。
**でも　最近はpac-snap 使うとディスクをたくさん消費するのでpac-snap 入れてないです**

では　USB　ハードディスクへのインストールを始めます。

まず確認ですが sata ハードディスクにある ntfs , vfat などの microsoft file system はのけとかないといけないとおもいます。
これがあると UEFIが USB ハードディスクでなく sata ハードディスクの方にいっちゃいます。
おそらく UEFIの仕様のためではないかと 自分は*想像*します。


他のぱそこんから archlinux にはいります。
つまり
ssh -l root 192.168.80.116

root@archiso ~ # fdisk -l /dev/sda  <-----------ここです ntfs , vfat はないことの確認
Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda2  *      1050624 614402047 613351424 292.5G 83 Linux
/dev/sda3       614404094 874369023 259964930   124G  5 Extended
/dev/sda4       874371072 976773119 102402048  48.8G a6 OpenBSD
/dev/sda5       614404096 622792703   8388608     4G 82 Linux swap / Solaris
/dev/sda6       622794752 874369023 251574272   120G 83 Linux



root@archiso ~ # gdisk -l /dev/sdb
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   EF00  EFI System
   2         1050624         5244927   2.0 GiB     8200  Linux swap
   3         5244928       312581774   146.5 GiB   8300  Linux filesystem
といふうに USBハードディスクを調整します。


そして
root@archiso ~ #  mkfs.fat -F32    /dev/sdb1
mkfs.fat 4.0 (2016-05-06)

# mkswap /dev/sdb2
# swapon /dev/sdb2

 
# mkfs.btrfs -f -L arch /dev/sdb3
# mount /dev/sdb3 /mnt
# cd /mnt
# btrfs subvolume create /mnt/ROOT
# cd /
# umount /mnt
# mount -o defaults,compress=lzo,subvol=ROOT /dev/sdb3 /mnt


# mkdir -p /mnt/boot
# mount   /dev/sdb1 /mnt/boot 


# nano  /etc/pacman.d/mirrorlist  
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
をミラーリストの一番上に書き加えます

# pacstrap /mnt base  base-devel btrfs-progs



genfstab  -p /mnt >> /mnt/etc/fstab

and rewrite  /mnt/etc/fstab <-------- sdb1,2,3 をつかうと状況によっては変なのにつながるといけないのでUUIDに変えます
# 
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
# UUID=df5ce463-a907-40f8-9021-bb3f565c48d6 LABEL=arch
UUID=df5ce463-a907-40f8-9021-bb3f565c48d6            /          btrfs     rw,relatime,compress=lzo,space_cache,subvolid=257,subvol=/ROOT,subvol=ROOT 0 0

# UUID=479C-992A LABEL=arch
UUID=479C-992A            /boot      vfat       
rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2

# UUID=a35045d7-d17b-401f-a14b-9ffb1ff37816 LABEL=arch
UUID=a35045d7-d17b-401f-a14b-9ffb1ff37816            none       swap       defaults   0 0



arch-chroot /mnt


echo 'arch-pc' >  /etc/hostname


# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime 


# nano /etc/locale.gen の
一番上に次を書き加える
en_US.UTF-8   UTF-8
ja_JP.UTF-8    UTF-8

そして 
# locale-gen
Generating locales...
  en_US.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.
と発生させます


# passwd

# useradd -m -G wheel -s /bin/bash taro
# passwd  taro

# pacman -S net-tools dnsutils  openssh dialog wpa_supplicant

systemctl enable dhcpcd.service
systemctl enable sshd.service


<   ここからが キモですので 省略せず書いてます  > 
# pacman -S dosfstools efibootmgr grub

# grub-install --target=x86_64-efi --efi-directory=/boot  --bootloader-id=arch_grub --recheck
Installing for x86_64-efi platform.
Installation finished. No error reported.


# mkdir /boot/EFI/boot
# cp /boot/EFI/arch_grub/grubx64.efi /boot/EFI/boot/bootx64.efi


[root@archiso /]# grub-mkconfig > kg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image(s) in /boot: initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
done

[root@archiso /]# cp kg /boot/grub/grub.cfg
私の癖です。普通は -o ですよね。

[root@archiso /]# exit
exit
arch-chroot /mnt  8.03s user 1.75s system 1% cpu 8:52.70 total

root@archiso / # umount -R /mnt

root@archiso / # halt -p


これでできたます。
あとは　http://hatahata50.blogspot.jp/2016/12/uefi-btrfs-usb.html　
をご覧ください。

sata ハードディスクにインストールした後の風景は
https://www.youtube.com/watch?v=3jYST5ziVos
です。

archlinuxはとにかく前へ前へ　最新へが基本姿勢ですので
安定サーバーとしては　ちょっとかもしれませんが
個人的仕様ではとっても素敵なシステムです。

# uname -ar（2016/12/27現在）
Linux arch-pc 4.8.13-1-ARCH #1 SMP PREEMPT Fri Dec 9 07:24:34 CET 2016 x86_64 GNU/Linux

# pacman -Ss apache
extra/apache 2.4.25-1


なお　このページの最新版は
http://hatahata50.blogspot.jp/2016/12/uefi-btrfs-arch.html
にあります。