ArchLinuxをLVM形式でインストールしてみた

ストレージ形式をLVMでArchLinuxのインストールを行ったのですが、結構つまづいたのでメモ書きします。

# 環境
VirtualBoxにインストール
　VirtualBox6.1

ホストPC：Windows10 Pro

ゲストPC設定：
　ストレージ　50GB
　　sda1　　512M　EFI System　/boot
　　sda2　　49.5G　Linux LVM
　　--root　15G　　　　　　　　/
　　--swap　4G　　　　　　　　swap
　　--home　30.5G　　　　 　　/home

LiveCD：archlinux-2020.06.01-x86_64

# LiveCDのダウンロード
[http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/2020.06.01/](http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/2020.06.01/)
で「archlinux-2020.06.01-x86_64.iso」をダウンロード

# VirtualBoxで新規仮想マシンを作成
　ストレージ　50GB
　「EFIを有効化」にチェック
![VirtualBox.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87133/e4a10d98-10b8-1f67-5899-e28969cd03a9.png)

ポートフォワーディングを設定
　「ネットワーク」→「高度」→「ポートフォワーディング」ボタン押下
　ゲストポート：22
　ホストポート：10022
![VirtualBox_ポートフォワーディング.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87133/e51013a6-5fe1-d692-db1c-a134e9e2ec0a.png)

# 起動
コマンド

```
loadkeys jp106  //日本語キーボードに設定
passwd    //rootのパスワードを設定する
pacman -Sy openssh    //sshのインストール
systemctl start sshd.service    //sshサービスの起動
systemctl status sshd.service    //サービスの確認

```
teratermからssh接続
![teraterm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87133/d61d1024-d4b4-3ac8-be43-521a0bc40047.png)

teraterm上でコマンド

```
gdisk /dev/sda
Command (? for help):o
Proceed? (Y/N): Y

Command (? for help):n
Permission number: 何も押さずエンター
First sector : 何も押さずエンター
Last sector : +512M
Hex code or GUID : EF00

Command (? for help):n
Permission number: 何も押さずエンター
First sector : 何も押さずエンター
Last sector : 何も押さずエンター
Hex code or GUID : 8E00

Command (? for help): w
Do you want to proceed? (Y/N): Y

mkfs.vfat -F32 /dev/sda1

pvcreate /dev/sda2
vgcreate arch /dev/sda2

lvcreate -L 15G -n root arch
lvcreate -L 4G -n swap arch
lvcreate -l 100%FREE -n home arch

mkfs.xfs /dev/arch/root
mkfs.xfs /dev/arch/home

mkswap /dev/arch/swap
swapon /dev/arch/swap

mount /dev/arch/root /mnt

mkdir /mnt/home
mount /dev/arch/home /mnt/home

mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot

pacman -S vim
vim /etc/pacman.d/mirrorlist  # Japan Serverを一番上に

pacstrap -i /mnt base base-devel linux linux-firmware grub dosfstools efibootmgr netctl xfsprogs vi vim btrfs-progs cryptsetup device-mapper dhcpcd e2fsprogs inetutils jfsutils logrotate lvm2 man-db man-pages mdadm nano perl reiserfsprogs s-nail sysfsutils texinfo usbutils vi xfsprogs
genfstab -U -p /mnt >> /mnt/etc/fstab

arch-chroot /mnt /bin/bash

ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime  # if you are in Japan

vi /etc/locale.gen  # en_US.UTF-8 UTF-8 と ja_JP.UTF-8 UTF-8 をアンコメント
locale-gen

echo LANG=en_US.UTF-8 > /etc/locale.conf
echo KEYMAP=jp106 > /etc/vconsole.conf  # if you use jp-type keyboard

echo myhostname > /etc/hostname
vi /etc/hosts  # 127.0.1.1	myhostname.localdomain	myhostname を追記

vi /etc/mkinitcpio.conf  # HOOKS="...の行に lvm2 を keyboard の前に追記
mkinitcpio -p linux  # イニシャル RAM ディスクを生成

passwd

pacman -S grub dosfstools efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug

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

vim /etc/lvm/lvm.conf  # 「use_lvmetad = 0」に変更。940行目
grub-mkconfig -o /boot/grub/grub.cfg

exit  #chrootから抜ける
exit  #teratermから抜ける
```

本体側でコマンド

```
reboot　#再起動
```

以上です。

# 参考サイト
[https://wiki.archlinux.org/index.php/Install_Arch_Linux_on_LVM](https://wiki.archlinux.org/index.php/Install_Arch_Linux_on_LVM)
[https://gist.github.com/kayakzt/0198e7b70d58bdc4cf3775265e073739](https://gist.github.com/kayakzt/0198e7b70d58bdc4cf3775265e073739)
[https://qiita.com/niwatolli3/items/926563abb65e1a9a8d4b](https://qiita.com/niwatolli3/items/926563abb65e1a9a8d4b)