Why Arch Linux?
Docker を動かす為のできるだけ小さい構成の OS を捜していた。
Arch は全部自分でパッケージ入れて好きに構成するという考え方らしいので
できるだけ最小にできるはず!ということでやってみた記事です。(なお初めてです)
手順は以下を参照しながらやっています
https://dzone.com/articles/install-arch-linux-on-windows-10-hyper-v
環境
- Hyper-V 第二世代 VM
- ディスク容量 20GB
- archlinux-2019.06.01-x86_64.iso
手順
VM の作成
起動
Arch の ISO をマウントして起動する。
すると、自動的に root のプロンプトが起動してくる。
コンソールではコピペもできず不便なので、ssh が使えるようにする。
1 2 3 4 5 6
| localectl set-keymap jp106 passwd # rootにパスワードがないとssh繋げられない systemctl start sshd
# なお、IPアドレスは ip a なり ifconfig で調べられる
|
パーティション作成
EFI で起動させたいので、GPT でパーティションを切っていく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $ gdisk /dev/sda # EFIブート command?: n #新規作成 number: [入力せずにENTER] First sector: [入力せずにENTER] End Sector: +512M type: EF00 # EFIブートパーティション
# データ command?: n #新規作成 number: [入力せずにENTER] First sector: [入力せずにENTER] End Sector: [入力せずにENTER] type: [入力せずにENTER] # Linux
command?: w # 書込 Do you want to proceed? (Y/N): Y
|
フォーマット
1 2
| mkfs.fat -F32 /dev/sda1 mkfs.ext4 /dev/sda2
|
とりあえずマウント
1 2 3
| mount /dev/sda2 /mnt mkdir /mnt/boot # EFIブートパーティションをマウントするため mount /dev/sda1 /mnt/boot
|
ファイルコピー
1 2 3 4 5 6 7 8
| pacstrap /mnt base base-devel openssh vim genfstab -U /mnt >> /mnt/etc/fstab arch-chroot /mnt
# ここから、ディスク上に書き込まれる
# ブートローダー入れる bootctl install
|
ブートローダー設定
vim /boot/loader/loader.conf
1 2 3
| default arch timeout 3 editor 0
|
ブートローダー設定 2
1
| cp /usr/share/systemd/bootctl/arch.conf /boot/loader/entries/
|
blkid -s PARTUUID -o value /dev/sda2
で UUID を取得しておく。
vim /boot/loader/entries/arch.conf
1
| options root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rootfstype=ext4 add_efi_memmap
|
ブートローダー設定を反映
これで再起動できます。おつかれさまでした。
ネットワーク設定
固定 IP を指定する。DHCP 使わない。Network-manager もナシ
1
| vim /etc/systemd/network/20-wired.network
|
1 2 3 4 5 6 7 8
| [Match] Name=eth0
[Network] Address=10.1.0.230/24 Gateway=10.1.0.1 DNS=8.8.8.8 DNS=8.8.4.4
|
1 2
| systemctl enable systemd-networkd systemctl enable systemd-resolved
|
locale まわり
1 2 3 4 5
| vim /etc/locale.gen
en_US.UTF-8 UTF-8 ja_JP.UTF-8 UTF-8 の二行のコメントアウトを外した。
|
1
| sudo localectl set-locale LANG=en_US.UTF-8
|
ここで一度 SSH を切断して、再接続しないと表示乱れが発生した。
timezone
1
| sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
|
1 2
| $ date Thu 20 Jun 2019 05:06:48 PM JST JSTになっていることを確認
|
ホスト名
1
| hostnamectl set-hostname ほすとめい
|