😸
Arch LinuxをHyper-Vにインストール(作業メモ)
Why Arch Linux?
Docker を動かす為のできるだけ小さい構成の OS を捜していた。
Arch は全部自分でパッケージ入れて好きに構成するという考え方らしいので
できるだけ最小にできるはず!ということでやってみた記事です。(なお初めてです)
手順は以下を参照しながらやっています
環境
- Hyper-V 第二世代 VM
- ディスク容量 20GB
- archlinux-2019.06.01-x86_64.iso
手順
VM の作成
- セキュアブート無効
起動
Arch の ISO をマウントして起動する。
すると、自動的に root のプロンプトが起動してくる。
コンソールではコピペもできず不便なので、ssh が使えるようにする。
localectl set-keymap jp106
passwd # rootにパスワードがないとssh繋げられない
systemctl start sshd
# なお、IPアドレスは
ip a なり ifconfig で調べられる
パーティション作成
EFI で起動させたいので、GPT でパーティションを切っていく。
$ 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
フォーマット
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
とりあえずマウント
mount /dev/sda2 /mnt
mkdir /mnt/boot # EFIブートパーティションをマウントするため
mount /dev/sda1 /mnt/boot
ファイルコピー
pacstrap /mnt base base-devel openssh vim
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
# ここから、ディスク上に書き込まれる
# ブートローダー入れる
bootctl install
ブートローダー設定
vim /boot/loader/loader.conf
default arch
timeout 3
editor 0
ブートローダー設定 2
cp /usr/share/systemd/bootctl/arch.conf /boot/loader/entries/
blkid -s PARTUUID -o value /dev/sda2
で UUID を取得しておく。
vim /boot/loader/entries/arch.conf
options root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rootfstype=ext4 add_efi_memmap
ブートローダー設定を反映
bootctl update
bootctl
これで再起動できます。おつかれさまでした。
ネットワーク設定
固定 IP を指定する。DHCP 使わない。Network-manager もナシ
vim /etc/systemd/network/20-wired.network
/etc/systemd/network/20-wired.network
[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
systemctl enable systemd-networkd
systemctl enable systemd-resolved
locale まわり
vim /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
の二行のコメントアウトを外した。
sudo locale-gen
sudo localectl set-locale LANG=en_US.UTF-8
ここで一度 SSH を切断して、再接続しないと表示乱れが発生した。
timezone
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ date
Thu 20 Jun 2019 05:06:48 PM JST JSTになっていることを確認
ホスト名
hostnamectl set-hostname ほすとめい
Discussion