ArchLinux を試してみたかった
OS を理解する上で、シンプルなところから理解したい。それには、シンプルな OS から始めるのが良さそう、ということで、ArchLinux を試してみることにした。
docker image ですぐに試すことはできるが、最近購入した NUC にインストールしたかったので、まず手始めに Mac の VirtualBox でインストールしてみる。
結果的に、VirtualBox で始めるのは非常によかった。インストールだけでも様々な仕組みの理解が必要になるし、ハードウェアにインストールすると最初からやり直すのが難しい
VirtualBox のインストール
よく使われる仮想化ソフト。Docker を普段使っているので、VirtualBox が古くなっていた。
1brew cask install virtualbox
すでにインストールしている場合は、
1brew cask upgrade virtualbox
で最新の VirtualBox (6.1.2) をインストールする。
ArchLinux のインストーラーの起動
OS イメージのダウンロードと VM の作成
Installation guide - ArchWiki に従っていく。
Index of /pub/Linux/ArchLinux/iso/2020.02.01 から iso ファイルをダウンロードしてくる。jaist のミラーページは http、つまり中間者攻撃が簡単に行えるため、ここでダウンロードした iso ファイルを信頼してはいけない。
そのままインストールしている例が散見されるが、本来は GPG を使って、正しい OS なのかどうか検証する必要がある。
Installation guide - ArchWiki にあるとおり、gpg をインストールして、iso ファイルの検証する。
1brew install gnupg
2# Tips : locale は US にしておいたほうが、エラーログが出たときにググりやすいので英語にしておく
3export LANG=en_US.UTF-8
Arch Linux - Downloads の Checksums から PGP signature をダウンロード。これと iso ファイルを照合する。
1gpg --keyserver-options auto-key-retrieve --verify archlinux-2020.02.01-x86_64.iso.sig
2
3gpg: assuming signed data in 'archlinux-2020.02.01-x86_64.iso'
4gpg: Signature made Sat Feb 1 15:57:48 2020 JST
5gpg: using RSA key 4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC
6gpg: Good signature from "Pierre Schmitz <pierre@archlinux.de>" [unknown]
7gpg: WARNING: This key is not certified with a trusted signature!
8gpg: There is no indication that the signature belongs to the owner.
9Primary key fingerprint: 4AA4 767B BC9C 4B1D 18AE 28B7 7F2D 434B 9741 E8AC
早速 WARNING が出ているのだが、verify public key / Installation / Arch Linux Forums のスレッドによると、これは gpg の鍵に自分の鍵をまず認めてもらう必要がありそう。 Trust the Master Keys – Pierre Schmitz
「Good signature」と出ていれば問題なさそうだ。ここからすでにハードル高いのが、ArchLinux の DIY な世界。
ArchLinux インストーラーの起動
How to install Arch Linux on VirtualBox の手順を参考に virtualbox で ArchLinux を起動する。 このとき、まずそのままの状態で起動すると「no bootable image installed」というメッセージが出て先に進まない。これは、起動時に読み込む iso イメージを設定していないから。
そこで、起動後のウィンドウのメニューで、「Devices > Optical Drives > Choose Disk image」で上記のダウンロードしてきた ArchLinux の iso ファイルを指定する。
無事に起動したら、インストールの画面が表示されるため、「Boot Arch Linux」を選択し、インストール作業を実施していく。
起動後、インストールを実施していくのだが、ここからコマンドでの作業となる。Installation guide - ArchWiki を参考にする。
コマンドを virtualbox のウィンドウで入力するのは大変なので、VirtualBoxにArchLinuxをインストール、デスクトップ環境を構築する - Qiita の記事のように ssh の設定する。
そして、 sshd をスタートさせておけば、vm の 22 番ポートがホストでの 41231 に紐づく。
このままでは ssh できないので、
1passwd
で、root user のパスワードを設定する。これにより、Mac のターミナルから、
1ssh -p 41231 root@localhost
2# 決めたパスワード
でログインできる。このほうが圧倒的に作業がしやすく、ログも残しやすい。以下、Mac からの ssh で作業をおこなっていく
インターネットアクセスを確認する
インターネットから pacman というパッケージマネージャー経由でソフトウェアをインストールをしたり、また日時を合わせたり必要なため、インターネットが繋げる環境で OS の初期設定を実施する(なくてもできそうだが、そのためにはまた手順が必要)
1root@archiso ~ # ip link
21: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
3 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
42: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
5 link/ether 08:00:27:54:47:4f brd ff:ff:ff:ff:ff:ff
6
7root@archiso ~ # ping google.com
8PING google.com (172.217.25.78) 56(84) bytes of data.
964 bytes from nrt13s50-in-f78.1e100.net (172.217.25.78): icmp_seq=1 ttl=63 time=5.50 ms
1064 bytes from nrt13s50-in-f78.1e100.net (172.217.25.78): icmp_seq=2 ttl=63 time=5.39 ms
11^C
12--- google.com ping statistics ---
132 packets transmitted, 2 received, 0% packet loss, time 1002ms
14rtt min/avg/max/mdev = 5.386/5.443/5.501/0.057 ms
インターネットにアクセスできていることが確認できた。
block storage disk のパーティションをフォーマットする (MBR の場合)
この記事では、MBR (Master Boot Record) をディスクに配置し、BIOS から OS 起動するようにする。
virtualbox で初期設定した block storage は /dev/sda として ArchLinux のインストーラーに認識されている。
1root@archiso ~ # parted -l
2Model: ATA VBOX HARDDISK (scsi)
3Disk /dev/sda: 8590MB
4Sector size (logical/physical): 512B/512B
5Partition Table: msdos
6Disk Flags:
7
8Number Start End Size Type File system Flags
この状態でも、/dev/sda は msdos としてジャーナリングされているが、ArchLinux を設定する上で、2 つパーティションが必要になるため、これらを作る。
パーティションのディスクサイズが小さい場合は、fdisk コマンドでもよいのだが、MBR 方式、GPT 方式の両方が作成できる parted コマンドをここでは使う。
1root@archiso ~ # parted /dev/sda
2GNU Parted 3.3
3Using /dev/sda
4Welcome to GNU Parted! Type 'help' to view a list of commands.
5(parted) mklabel msdos
6Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
7Yes/No? yes
8(parted) unit MB
9
10(parted) mkpart
11Partition type? primary/extended? primary
12File system type? [ext2]? ext4
13Start? 1
14End? 4096
15(parted) p
16Model: ATA VBOX HARDDISK (scsi)
17Disk /dev/sda: 8590MB
18Sector size (logical/physical): 512B/512B
19Partition Table: msdos
20Disk Flags:
21
22Number Start End Size Type File system Flags
23 1 1.05MB 4096MB 4095MB primary ext4 lba
24
25(parted) mkpart
26Partition type? primary/extended? primary
27File system type? [ext2]? ext4
28Start? 4096
29End? 6144
30(parted) p
31Model: ATA VBOX HARDDISK (scsi)
32Disk /dev/sda: 8590MB
33Sector size (logical/physical): 512B/512B
34Partition Table: msdos
35Disk Flags:
36
37Number Start End Size Type File system Flags
38 1 1.05MB 4096MB 4095MB primary ext4 lba
39 2 4096MB 6144MB 2048MB primary ext4 lba
40
41(parted) q
ここでは、シンプルに UEFI を利用せずに、BIOS で起動するため、パーティションは /dev/sda1 /dev/sda2 のみを利用する。
なぜ2つなのかは、Installation guide - ArchWiki の Example layouts を参考にしたため。
1root@archiso ~ # parted -l
2Model: ATA VBOX HARDDISK (scsi)
3Disk /dev/sda: 8590MB
4Sector size (logical/physical): 512B/512B
5Partition Table: msdos
6Disk Flags:
7
8Number Start End Size Type File system Flags
9 1 1049kB 4096MB 4095MB primary
10 2 4096MB 6144MB 2048MB primary
この状態になっていることを確認する。
/dev/sda2 を Linux swap 領域にする
1root@archiso ~ # mkswap /dev/sda2
2Setting up swapspace version 1, size 1.9 GB (2047864832 bytes)
3no label, UUID=bd07f22f-edae-4858-9b72-29e01b9a724a
4root@archiso ~ # swapon /dev/sda2
/dev/sda2 を swap 領域に設定する(正直、メモリ使わないので今回は必要ない気がするが)
/dev/sda1 をフォーマットして /mnt にマウントする
1root@archiso ~ # mount /dev/sda1 /mnt
2mount: /mnt: wrong fs type, bad option, bad superblock on dev/sda1, missing codepage or helper program, or other error.
3
4root@archiso ~ # mkfs.ext4 /dev/sda1
5mke2fs 1.45.5 (07-Jan-20)
6Creating filesystem with 999680 4k blocks and 249984 inodes
7Filesystem UUID: 72faec4-2430-43f4-926-95ac0e656d0c
8Superblock backups stored on blocks:
9 32768, 98304, 163840, 229376, 294912, 819200, 884736
10
11Allocating group tables: done
12Writing inode tables: done
13Creating journal (16384 blocks): done
14Writing superblocks and filesystem accounting information: done
15
16root@archiso ~ # mount dev/sda1 /mnt
17成功した
最初の mount で失敗して気になったが、どうやら parted で作成したパーティションで ext4 を指定したものの、あれは反映されていなかった。
mkfs.ext4 /dev/sda1 によって無事に反映できている。
1root@archiso ~ # parted -l
2Model: ATA VBOX HARDDISK (scsi)
3Disk /dev/sda: 859MB
4Sector size (logicalphysical): 512B/512B
5Partition Table: msdos
6Disk Flas:
7
8Number Start End Size Type File system Flags
9 1 1049kB 4096MB 4095MB primary ext4
10 2 4096MB 6144MB 2048MB primary linux-swap(v1)
File system がいい感じに設定できている。
ようやく ArchLinux のインストール(道のりは長い…
作成した /dev/sda1 パーティションが /mnt にマウントされているので、ここを Linux インストール地とする。
1root@archiso ~ # pacstrap /mnt base linux linux-firmware
2==> Creating install root at /mnt
3==> Installing packages to /mnt
4:: Synchronizing package databases...
5 core 134.2 KiB 116 KiB/s 00:01 [############################################] 100%
6 extra 1641.2 KiB 200 KiB/s 00:08 [############################################] 100%
7 community 4.8 MiB 220 KiB/s 00:22 [############################################] 100%
8resolving dependencies...
9:: There are 2 providers available for initramfs:
10:: Repository core
11 1) mkinitcpio
12:: Repository extra
13 2) dracut
14
15Enter a number (default=1):
16looking for conflicting packages...
17
18Packages (116) acl-2.2.53-2 archlinux-keyring-20200108-1 argon2-20190702-2 attr-2.4.48-2 audit-2.8.5-6 bash-5.0.011-2
19 bzip2-1.0.8-3 ca-certificates-20181109-3 ca-certificates-mozilla-3.50-1 ca-certificates-utils-20181109-3
20 coreutils-8.31-3 cracklib-2.9.7-2 cryptsetup-2.3.0-1 curl-7.68.0-1 db-5.3.28-5 dbus-1.12.16-5
21 device-mapper-2.02.186-5 diffutils-3.7-3 e2fsprogs-1.45.5-1 expat-2.2.9-3 file-5.38-3 filesystem-2019.10-2
22 findutils-4.7.0-2 gawk-5.0.1-2 gcc-libs-9.2.0-4 gdbm-1.18.1-3 gettext-0.20.1-3 glib2-2.62.4-1 glibc-2.30-3
23 gmp-6.1.2-3 gnupg-2.2.19-1 gnutls-3.6.12-1 gpgme-1.13.1-3 grep-3.4-1 gzip-1.10-3 hwids-20200204-1
24 iana-etc-20200117-1 icu-65.1-2 iproute2-5.5.0-1 iptables-1:1.8.4-1 iputils-20190709-2 json-c-0.13.1-3
25 kbd-2.2.0-5 keyutils-1.6.1-3 kmod-26-3 krb5-1.17.1-1 less-551-3 libarchive-3.4.1-1 libassuan-2.5.3-2
26 libcap-2.30-1 libcap-ng-0.7.10-1 libcroco-0.6.13-1 libelf-0.177-2 libffi-3.2.1-4 libgcrypt-1.8.5-2
27 libgpg-error-1.36-3 libidn2-2.3.0-1 libksba-1.3.5-2 libldap-2.4.48-2 libmnl-1.0.4-3
28 libnetfilterconntrack-1.0.7-1 libnfnetlink-1.0.1-3 libnftnl-1.1.5-1 libnghttp2-1.39.2-2 libnl-3.5.0-2
29 libpcap-1.9.1-2 libpsl-0.21.0-2 libsasl-2.1.27-2 libseccop-2.4.1-3 libsecret-0.20.1-1 libssh2-1.9.0-2
30 libtsn1-4.16.0-1 libtipc-1.2.5-1 libunistring-0.9.10-2 libusb-1.0.23-2 libutil-linux-2.35.1-1
31 libxml2-2.9.10-1 licenses-20191011-2 linux-api-headers-5.3.1-2 lz4-1:1.9.2-2 minitcpio-27-2
32 mkinitcpio-busybox-1.31.1-1 mpfr-4.0.2-2 ncurses-6.1-7 nettle-3.5.1-2 npth-1.6-2 openssl-1.1.1.d-2
33 p11-kit-0.23.20-2 pacman-5.2.1-4 pacman-mirrorlist-20200207-1 pam-1.3.1-2 pambase-20190105.1-2
34 pciutils-3.6.2-2 pcre-8.43-2 pcre2-10.34-3 perl-5.30.1-1 pinentry-1.1.0-5 popt-1.16-12 procps-ng-3.3.15-2
35 psmisc-23.3-2 readline-8.0.001-2 sed-4.8-1 shadow-4.8.1-1 sqlite-3.31.1-1 systemd-244.2-2
36 systemd-libs-244.2-2 systemd-sysvcompat-244.2-2 tar-1.32-3 tzdata-2019c-3 util-linux-2.35.1-1 xz-5.2.4-2
37 zlib-1:1.2.11-4 zstd-1.4.4-1 base-2-2 linux-5.5.2.arch1-1 linux-firmware-20200122.1eb2408-1
38
39Total Download Size: 286.80 MiB
40Total Installed Size: 1126.30 MiB
41
42:: Proceed with installation? [Y/n]
43:: Retrieving packages...
44 iana-etc-20200117-1-any 387.1 KiB 216 KiB/s 00:02 [############################################] 100%
45 filesystem-2019.10-2-x8664 27.8 KiB 0.00 B/ 00:00 [############################################] 100%
46 linux-api-headers-5.3.1-2-any 997.7 KiB 199 KiB/s 00:05 [############################################] 100%
47 tzdata-2019c-3-x86_64 341.5 KiB 242 KiB/s 00:01 [############################################] 100%
48 glibc-2.30-3-x86_64 9.1 MiB 204 KiB/s 00:46 [############################################] 100%
49 gcc-libs-9.2.0-4-x86_64 28.3 MiB 192 KiB/s 02:31 [############################################] 100%
50 ncurses-6.1-7-x86_64 1067.1 KiB 213 KiB/s 00:05 [############################################] 100%
51 readline-8.0.001-2-x86_64 296.4 KiB 248 KiB/s 00:01 [############################################] 100%
52 bash-5.0.011-2-x86_64 1538.5 KiB 200 KiB/s 00:08 [############################################] 100%
53
54… しばらくかかる
55
56(13/13) Rebuilding certificate stores...
57pacstrap /mnt base linux linux-firmar 35.07s usr 10.28s system 2% cu 26:33.87 total
58root has logged on pts/1 from 10.0.2.2.
この中身は OS の勉強になる箇所で、
- iana-etc : protocol などの設定 Arch Linux - iana-etc 20200117-1 (any)
- filesystem : filesystem の設定 Arch Linux - filesystem 2019.10-2 (x86_64)
- tzdata: タイムゾーンの設定
- glibc : GNU の標準 C ライブラリ。これによって、C を通じて syscall の呼び出しなどを簡単に行える。他のパッケージも glibc を利用して簡単に機能を実現している glibc | 日経 xTECH(クロステック)
- ncurses: text base interface を簡単に利用できるようにするためのライブラリ ncurses - Wikipedia
- bash : 言わずとしれたシェル
その他にも、gawk や grep, systemd などなど、ArchLinux を利用し始めるにあたり便利なものがインストールされている。
CentOS や Ubuntu などインストールしたらすぐに使えるディストリビューションでは、ここらへんは最初から同梱されている。 pacman で逐一ダウンロードしていくのが ArchLinux がシンプルだが DIY である理由。
それでも pacman があり、base, Linux などまとめてインストールできる方法が用意されているのはとても助かる(初学者には何を選んだらよいかわからんもんなぁ)
pacstrap /mnt linux でダウンロードを実施しているが、これは、Kernel - ArchWiki のように Linux kernel をインストールしている。
「え、それじゃあ、これまで作業していた環境はいったい…?」 というのはもっともな話。そこで下記のコマンドを打つ。
1root@archiso ~ # cat /etc/*-release
2NAME=ArchLinux"
3PRETTY_NAME="Arch Linux"
4ID=arch
5BUILD_ID=rolling
6ANSI_COLOR="0;36"
7HOME_URL="htps://www.archlinux.org/"
8DOCUMENTATION_URL="https://wiki.archlinux.org/"
9SUPPORT_URL="https://bbs.archlinux.org/"
10BUG_REPORT_URL="https://bugs.archlinux.org/"
11LOGO=archlinux
結果を見ると、こちらも ArchLinux である(よくよく思えば、最初のミラーサイトからダウンロードしてきたのも ArchLinux の iso)。
ただし、このイメージはそもそも ArchLinux の開発者が「これインストールに使ってやー」と提供しているイメージだ。
Arch Linux - Downloads に It is intended for new installations only. と記載されている。
なので、自分がカスタマイズする最小の構成にするためには、pacman を利用して1つずつダウンロードしてくる必要があった。
(余談) pacman の利用するミラーサイト
ArchLinux のパッケージマネージャーの pacman はミラーサイトを利用からパッケージのダウンロードを実施する。
1less /etc/pacman.d/mirrorlist
2
3## Australia
4Server = http://archlinux.melbourneitmirror.net/$repo/os/$arch
5## United States
6Server = http://mirrors.xmission.com/archlinux/$repo/os/$arch
7## Belgium
8Server = http://archlinux.mirror.kangaroot.net/$repo/os/$arch
9## United States
10Server = http://mirror.mia11.us.leaseweb.net/archlinux/$repo/os/$arch
11## United States
12Server = http://mirrors.xtom.com/archlinux/$repo/os/$arch
で速いミラーの場所を見ることができるが、日本からだとオーストラリア、US が浮上してくる。
pacman でのインストールが完了すると、/mnt の中に Linux の ルートディレクトリができていることがわかる。
1root@archiso ~ # ls /mnt
2bin boot dv etc home lib lib64 lost+found mnt opt proc root run sbin srv sys tmp usr var
3
4# もちろんダウンロードしてきたのも ArchLinux になっている
5root@archiso ~ # cat /mnt/etc/*-release
6NAMEArch Linux"
7PRETTY_NAME="Arch Linux"
8ID=arch
9BUILD_ID=rolling
10ANSI_COLOR="0;36"
11HOME_URL="htts://www.archli
12DOCUMENTATION_URL="https://wiki.archlinux.org/"
13SUPPORT_URL="https://bbs.archlinux.org/"
14BUG_REPORT_URL="https://bugs.archlinux.org/"
15LOGO=archlinux
/dev/sda1パーティションに自分仕様の ArchLinux が入った。 あとは、作成したパーティションがハードウェアの起動時に読み込まれればようやく自分仕様の ArchLinux が起動する。
1roo@archiso ~ # genfstab -U /mnt >> /mnt/etc/fstab
fstab とはなにか?
File System Table の略で、ディスクパーティション、ブロックデバイス、リモートファイルシステムが、どのように OS の file system にマウントされるべきかを定義している。fstab - ArchWiki
生成された fstab の中身。
1# <file system> <dir> <type> <options> <dump> <pass>
2# /dev/sda1
3UUID172faec4-2430-43f4-9926-95ac0e656d0c / ext4 rw,relatime 0 1
4# /dev/sda2
5UUID=bd07f22f-edae-4858-9b72-29e0b9a724a none swap defaults
/dev/sda1 と /dev/sda2 に UUID が割り当てられ、それがルートディレクトリとして設定されている。
さて、pacman で Linux をダウンロードしたときに、systemd もインストールされている。 systemd は Linux が起動したら、はじめに起動するプロセス (PID 1) となっており、これが fstab を読み取り、mount service を実行することによって、設定されたパーティションが file system として認識されるようになる。systemd
古い Linux では、これが sysvinit というプロセスだったが、systemd という Linux 共通で使えて、かつ並列に処理が行なえ、設定が簡単に行えるものに置き換えることで、Linux でのプロセス管理が楽になった。
特にコンテナ化された環境でプロセスの立ち上げや定期バッチのような処理を行う際、systemd で管理させると楽だったりする。 (crash したときにプロセスの再起動を設定できたりする。How to set up a systemd service to retry 5 times on a cycle of 30 seconds - Stack Overflow)
インストールした ArchLinux へ初期設定を実施
arch-chroot で仮想的にダウンロードした ArchLinux に入る
1arch-chroot /mnt
これにより、ダウンロードしてきた自分仕様の ArchLinux に仮想的に入った状態で作業が行える(今後は fstab の設定により、OS 起動時に systemd がマウントして、ここがルートディレクトリになる)
1[root@archiso /]# ln -sf /usr/share/zoneinfo/Japan /etc/localtime
2[root@archiso /]# hwclock --systohc --utc
3# 事前に /etc/locale.conf の en_US.UTF-8 をコメントアウトしておく
4[root@archiso /]# locale-gen
5Generating locales...
6Generation complete.
7[root@archiso /]# echo "LANG=en_US.UTF-8" > /etc/locale.conf
8[root@archiso /]# echo "virtualbox-archlinux" > /etc/hostname
9[root@archiso /]# pacman -S dhcpcd
10[root@archiso /]# systemctl enable dhcpcd
11[root@archiso /]# passwd
12New password:
13Retype new password:
ここでは、OS のタイムゾーンを設定、locale (地域設定)、ホスト名、ダウンロードしてきた ArchLinux の root パスワードの設定をした。 特に root のパスワード設定はしておかないと、OS 起動時に困るので必ず実施する。
また dhcpcd (DHCP client daemon) をインストールして有効にしておく(ネットワークに接続する設定を固定にするのは辛い)
また、ファイルの編集で便利なので vim や ssh するために openssh をインストールする(ここはお好みで)
1[root@archiso /]# pacman -S vim
2[root@archiso /]# pacman -S openssh
3[root@archiso /]# systemctl enable sshd
4Created symlink /etc/systemd/system/multi-user.target.wants/sshd.service → /usr/lib/systemd/system/sshd.service.
5[root@ArchLinux /]# vim /etc/ssh/sshd_config
6[root@ArchLinux ~]# vim /etc/ssh/sshd_config
7# 下記を追記する
8PermitRootLogin yes
9[root@archiso /]# pacman -S which
openssh パッケージに sshd は同梱されている。sshd は upstream で PermitRootLogin yes を記載しないと root での ssh は許可されていない。
(virtualbox で立てた vm に ssh root@localhost を実施するときは、どうやら PermitRootLogin の設定は不要そう)
【重要】GRUB2 の設定
/dev/sda1 にダウンロードされた自分仕様の ArchLinux の初期設定が完了し、最後に GRUB を利用してハードウェア起動時にブートされるように設定する。
GRUB (GNU GRand Unified Bootloader) とは
ハードウェアの電源を入れるといきなり OS が立ち上がるわけではなく、まずハードウェアに紐付いた BIOS や UEFI (いわゆる firmware) が起動する。その後、GRUB のような bootloader が立ち上がり、OS を起動するのである(過去には BIOS から直接 OS を起動させることもできたが、きっと OS 側でメンテナンスするのを止めて GRUB のような bootloader に処理を委譲したのだろう【推測】)。
例えば、bootloader を挟むことで、1つの PC に複数の OS をインストールして使いたい場合、dual boot の設定をして、Windows と Linux を起動時に選択するということができる。(最近では、docker や virtualbox で済むのであまりやらなくなってしまったが…)
参考:
- GRUBの使い方入門 | OSDN Magazine
- 【Linux】ブートローダとは?とブートローダのインストール方法
- GNU GRUB - Wikipedia
- An introduction to GRUB2 configuration for your Linux machine | Opensource.com
ArchLinux に grub をインストールする
pacman でインストールするのだが、ここでインストールされるのは、grub2 だ。
GRUB - ArchWiki に何を行っているのかが記載されている。
1[root@archiso /]# pacman -S grub os-prober
2resolving dependencies...
3looking for conflicting packages...
4
5Packages (2) grub-2:2.04-5 os-prober-1.77-1
6
7Total Download Size: 6.69 MiB
8Total Installed Size: 32.65 MiB
9
10:: Proceed with installation? [Y/n] Y
11:: Retrieving packages...
12 grub-2:2.04-5-x86_64 6.7 MiB 190 KiB/s 00:36 [############################################] 100%
13 os-prober-1.77-1-x86_64 16.8 KiB 0.00 B/s 00:00 [############################################] 100%
14(2/2) checking keys in keyring [############################################] 100%
15(2/2) checking package integrity [############################################] 100%
16(2/2) loading package files [############################################] 100%
17(2/2) checking for file conflicts [############################################] 100%
18(2/2) checking available disk space [############################################] 100%
19:: Processing package changes...
20(1/2) installing grub [############################################] 100%
21Generate your bootloader configuration with:
22 grub-mkconfig -o /boot/grub/grub.cfg
23Optional dependencies for grub
24 freetype2: For grub-mkfont usage
25 fuse2: For grub-mount usage
26 dosfstools: For grub-mkrescue FAT FS and EFI support
27 efibootmgr: For grub-install EFI support
28 libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue
29 os-prober: To detect other OSes when generating grub.cfg in BIOS systems [pending]
30 mtools: For grub-mkrescue FAT FS support
31(2/2) installing os-prober [############################################] 100%
32:: Running post-transaction hooks...
33(1/1) Arming ConditionNeedsUpdate...
34
35[root@archiso /]# grub-install /dev/sda
36Installing for i386-pc platform.
37Installation finished. No error reported.
38
39[root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg
40Generating grub configuration file ...
41Found linux image: /boot/vmlinuz-linux
42Found initrd image: /boot/initramfs-linux.img
43Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
44done
45
46[root@archiso /]# ls /boot/grub/
47fonts grub.cfg grubenv i386-pc themes
最後に /boot/grub/grub.cfg が存在していることを確認する(重要)。
これでようやく ArchLinux のインストールと初期設定が完了。
1[root@archiso /]# exit
2exit
3
4# ここはインストーラーの ArchLinux の中
5root@archiso ~ # umount -R /mnt
6root@archiso ~ # down -h nowshut
インストーラーのイメージを外す
このまま VM を再起動しても、インストーラーの ArchLinux が起動してしまう。そこから、「Start Existing OS」で /dev/sda1 の中に含まれた ArchLinux を起動してもよいのだが、どうせなら初期設定も完了しているし、カスタマイズした ArchLinux を起動したい。
そこで、インストーラーの disk を VirtualBox で除いてしまう。
これにより、設定した GRUB2 がダウンロードした ArchLinux を起動してくれる。
お疲れ様でした。
【付録】NG 集
上記の手順は、自分が試行錯誤してうまく起動できるところまで確認したものだが、その間に詰まったところがあったので下記に記載する。
VirtualBox から ArchLinux の VM を再起動したら grub が立ち上がった
grub の設定も完了して、勝手に vm スタートしてくれるかとおもったら、grub の画面になった。
パーティションは正しく認識しているようだが、本来は GRUB が ArchLinux をそのまま起動してもらいたいところ。
理由はネットからコピペしたコマンドにあった。
1[root@archiso /]# grub-mkconfig –o /boot/grub/grub.cfg
2
3Generating grub configuration file ...
4#
5# DO NOT EDIT THIS FILE
6#
7# It is automatically generated by grub-mkconfig using templates
8# from /etc/grub.d and settings from /etc/default/grub
9#
10
11### BEGIN /etc/grub.d/00_header ###
12insmod part_gpt
13insmod part_msdos
14if [ -s $prefix/grubenv ]; then
15 load_env
16fi
17if [ "${next_entry" ] ; then
18 set default="${next_entry"
19 set next_entry=
20 save_env next_entry
21 set boot_once=true
22else
23 set default="0"
24fi
25
26…
おわかりだろうか…
実はこの –o のハイフンが -o (半角のマイナス) でないため、これは /boot/grub/grub.cfg を生成していない。 よって、grub は起動したものの grub.cfg がないものと思ってしまい、その結果、grub のみが立ち上がって ArchLinux が起動しないというわけだ。
ちなみに GRUB2 からは、
1set root=(hd0,msdos1)
2linux /boot/vmlinuz-linux root=/dev/sda1
3initrd /boot/initramfs-linux.img
4boot
にて起動ができる。しかし、/boot/grub/grub.cfg を見てのとおり、ArchLinux を boot するまでに様々な設定を GRUB2 がデフォルトで考えてくれているが、上記コマンドは Linux を起動するまでのステップしか考慮していない。
ちなみに、上記コマンドで initrd の設定を忘れると下記のようなカーネルパニックを起こす。
また、上記コマンドで起動したとき、
1drm:vmw_host_log vmwgfx *ERROR* Failed to send host log message
ようなエラーが発生した。boot - Why does “drm:vmw_host_log vmwgfx ERROR Failed to send host log message” show up and what can I do to fix it? - Unix & Linux Stack Exchange によると、Virtualbox がデフォルトで設定している VMSVGA が認識できないようだ。VBoxVGA に修正したら、起動は行えた。
OS 起動後、キーがリピートされて入力される
GRUB2 の設定が正しく行えていない状態で ArchLinux を起動すると、キーがリピートされてログイン時のパスフレーズ入力が詰んだ。イメージ的には下記のような状態になってしまう。
1login: rrrrrrooooooooootttttttt
リソースが足りないのかと 2GB RAM, 2CPU 割り当ててみたが、状況は変わらなかった。
このとき、GRUB2 のプロンプトから直接起動していたため、グラフィックかキー入力周りが正常に機能していない可能性がある。
そんなこともあったので、/boot/grub/grub.cfg の存在確認や GRUB2 の設定のチェックはちゃんとしておきたいところ。
arch-chroot で失敗する
すでに別ターミナルで chroot が走っていると失敗するので、kill した。
1root@archiso ~ # arch-chroot /mnt
2mount: /mnt/proc: proc already mounted on /proc.
3==> ERROR: failed to setup chroot /mnt
4
5root@archiso ~ # ps aux | grep chroot
6root 4776 0.0 0.3 7388 3908 pts/0 S 09:54 0:00 /bin/bash /usr/bin/arch-chroot /mnt
7
8root@archiso ~ # kill 4776
9root@archiso ~ # arch-chroot /mnt
10[root@archiso /]#
付録
ArchLinux install までの pacman の実行結果
1root@archiso ~ # pacstrap /mnt base linux linux-firmware
2==> Creating install root at /mnt
3==> Installing packages to /mnt
4:: Synchronizing package databases...
5 core 134.0 KiB 122 KiB/s 00:01 [############################################] 100%
6 extra 1640.6 KiB 180 KiB/s 00:09 [############################################] 100%
7 community 4.8 MiB 190 KiB/s 00:26 [############################################] 100%
8resolving dependencies...
9:: There are 2 providers available for initramfs:
10:: Repository core
11 1) mkinitcpio
12:: Repository extra
13 2) dracut
14
15Enter a number (default=1):
16looking for conflicting packages...
17
18Packages (116) acl-2.2.53-2 archlinux-keyring-20200108-1 argon2-20190702-2 attr-2.4.48-2 audit-2.8.5-6 bash-5.0.016-1
19 bzip2-1.0.8-3 ca-certificates-20181109-3 ca-certificates-mozilla-3.50-1 ca-certificates-utils-20181109-3
20 coreutils-8.31-3 cracklib-2.9.7-2 cryptsetup-2.3.0-1 curl-7.68.0-1 db-5.3.28-5 dbus-1.12.16-5
21 device-mapper-2.02.186-5 diffutils-3.7-3 e2fsprogs-1.45.5-1 expat-2.2.9-3 file-5.38-3 filesystem-2019.10-2
22 findutils-4.7.0-2 gawk-5.0.1-2 gcc-libs-9.2.1+20200130-2 gdbm-1.18.1-3 gettext-0.20.1-3 glib2-2.62.4-2
23 glibc-2.31-1 gmp-6.2.0-1 gnupg-2.2.19-1 gnutls-3.6.12-1 gpgme-1.13.1-3 grep-3.4-1 gzip-1.10-3
24 hwids-20200204-1 iana-etc-20200117-1 icu-65.1-2 iproute2-5.5.0-1 iptables-1:1.8.4-1 iputils-20190709-2
25 json-c-0.13.1-3 kbd-2.2.0-5 keyutils-1.6.1-3 kmod-26-3 krb5-1.17.1-1 less-551-3 libarchive-3.4.2-1
26 libassuan-2.5.3-2 libcap-2.31-1 libcap-ng-0.7.10-1 libcroco-0.6.13-1 libelf-0.177-2 libffi-3.2.1-4
27 libgcrypt-1.8.5-2 libgpg-error-1.37-1 libidn2-2.3.0-1 libksba-1.3.5-2 libldap-2.4.49-1 libmnl-1.0.4-3
28 libnetfilter_conntrack-1.0.7-1 libnfnetlink-1.0.1-3 libnftnl-1.1.5-1 libnghttp2-1.39.2-2 libnl-3.5.0-2
29 libpcap-1.9.1-2 libpsl-0.21.0-2 libsasl-2.1.27-2 libseccomp-2.4.1-3 libsecret-0.20.1-1 libssh2-1.9.0-2
30 libtasn1-4.16.0-1 libtirpc-1.2.5-1 libunistring-0.9.10-2 libusb-1.0.23-2 libutil-linux-2.35.1-1
31 libxml2-2.9.10-1 licenses-20191011-2 linux-api-headers-5.4.17-1 lz4-1:1.9.2-2 mkinitcpio-27-2
32 mkinitcpio-busybox-1.31.1-1 mpfr-4.0.2-2 ncurses-6.2-1 nettle-3.5.1-2 npth-1.6-2 openssl-1.1.1.d-2
33 p11-kit-0.23.20-2 pacman-5.2.1-4 pacman-mirrorlist-20200207-1 pam-1.3.1-2 pambase-20190105.1-2
34 pciutils-3.6.2-2 pcre-8.43-2 pcre2-10.34-3 perl-5.30.1-1 pinentry-1.1.0-5 popt-1.16-12 procps-ng-3.3.15-2
35 psmisc-23.3-2 readline-8.0.004-1 sed-4.8-1 shadow-4.8.1-1 sqlite-3.31.1-1 systemd-244.3-1
36 systemd-libs-244.3-1 systemd-sysvcompat-244.3-1 tar-1.32-3 tzdata-2019c-3 util-linux-2.35.1-1 xz-5.2.4-2
37 zlib-1:1.2.11-4 zstd-1.4.4-1 base-2-2 linux-5.5.4.arch1-1 linux-firmware-20200204.b791e15-1
38
39Total Download Size: 290.85 MiB
40Total Installed Size: 1128.12 MiB
41
42:: Proceed with installation? [Y/n]
43:: Retrieving packages...
44 iana-etc-20200117-1-any 387.1 KiB 164 KiB/s 00:02 [############################################] 100%
45 filesystem-2019.10-2-x86_64 27.8 KiB 0.00 B/s 00:00 [############################################] 100%
46 linux-api-headers-5.4.17-1-any 1040.3 KiB 189 KiB/s 00:06 [############################################] 100%
47 tzdata-2019c-3-x86_64 341.5 KiB 167 KiB/s 00:02 [############################################] 100%
48 glibc-2.31-1-x86_64 9.8 MiB 178 KiB/s 00:56 [############################################] 100%
49 gcc-libs-9.2.1+20200130-2-x86_64 30.8 MiB 198 KiB/s 02:39 [############################################] 100%
50 ncurses-6.2-1-x86_64 1141.2 KiB 1101 KiB/s 00:01 [############################################] 100%
51 readline-8.0.004-1-x86_64 309.7 KiB 23.3 MiB/s 00:00 [############################################] 100%
52 bash-5.0.016-1-x86_64 1648.5 KiB 1610 KiB/s 00:01 [############################################] 100%
53 attr-2.4.48-2-x86_64 65.0 KiB 0.00 B/s 00:00 [############################################] 100%
54 acl-2.2.53-2-x86_64 131.9 KiB 18.4 MiB/s 00:00 [############################################] 100%
55 gmp-6.2.0-1-x86_64 439.6 KiB 2.57 MiB/s 00:00 [############################################] 100%
56 libcap-2.31-1-x86_64 53.7 KiB 0.00 B/s 00:00 [############################################] 100%
57 gdbm-1.18.1-3-x86_64 160.4 KiB 0.00 B/s 00:00 [############################################] 100%
58 db-5.3.28-5-x86_64 1098.0 KiB 1649 KiB/s 00:01 [############################################] 100%
59 perl-5.30.1-1-x86_64 14.2 MiB 3.23 MiB/s 00:04 [############################################] 100%
60 openssl-1.1.1.d-2-x86_64 3.4 MiB 5.08 MiB/s 00:01 [############################################] 100%
61 coreutils-8.31-3-x86_64 2.4 MiB 457 KiB/s 00:05 [############################################] 100%
62 zlib-1:1.2.11-4-x86_64 81.5 KiB 0.00 B/s 00:00 [############################################] 100%
63 xz-5.2.4-2-x86_64 231.3 KiB 215 KiB/s 00:01 [############################################] 100%
64 bzip2-1.0.8-3-x86_64 53.4 KiB 0.00 B/s 00:00 [############################################] 100%
65 libseccomp-2.4.1-3-x86_64 75.1 KiB 0.00 B/s 00:00 [############################################] 100%
66 file-5.38-3-x86_64 314.2 KiB 220 KiB/s 00:01 [############################################] 100%
67 findutils-4.7.0-2-x86_64 454.6 KiB 247 KiB/s 00:02 [############################################] 100%
68 mpfr-4.0.2-2-x86_64 314.0 KiB 216 KiB/s 00:01 [############################################] 100%
69 gawk-5.0.1-2-x86_64 1096.3 KiB 235 KiB/s 00:05 [############################################] 100%
70 pcre-8.43-2-x86_64 931.2 KiB 312 KiB/s 00:03 [############################################] 100%
71 grep-3.4-1-x86_64 204.2 KiB 624 KiB/s 00:00 [############################################] 100%
72 libgpg-error-1.37-1-x86_64 223.7 KiB 652 KiB/s 00:00 [############################################] 100%
73 libgcrypt-1.8.5-2-x86_64 485.4 KiB 198 KiB/s 00:02 [############################################] 100%
74 lz4-1:1.9.2-2-x86_64 109.4 KiB 148 KiB/s 00:01 [############################################] 100%
75 systemd-libs-244.3-1-x86_64 457.1 KiB 248 KiB/s 00:02 [############################################] 100%
76 procps-ng-3.3.15-2-x86_64 340.7 KiB 170 KiB/s 00:02 [############################################] 100%
77 sed-4.8-1-x86_64 237.9 KiB 205 KiB/s 00:01 [############################################] 100%
78 tar-1.32-3-x86_64 742.3 KiB 196 KiB/s 00:04 [############################################] 100%
79 libffi-3.2.1-4-x86_64 31.3 KiB 4.37 MiB/s 00:00 [############################################] 100%
80 libutil-linux-2.35.1-1-x86_64 409.0 KiB 239 KiB/s 00:02 [############################################] 100%
81 glib2-2.62.4-2-x86_64 2.7 MiB 299 KiB/s 00:09 [############################################] 100%
82 libunistring-0.9.10-2-x86_64 498.6 KiB 170 KiB/s 00:03 [############################################] 100%
83 icu-65.1-2-x86_64 8.9 MiB 192 KiB/s 00:47 [############################################] 100%
84 gettext-0.20.1-3-x86_64 1929.0 KiB 214 KiB/s 00:09 [############################################] 100%
85 hwids-20200204-1-any 402.6 KiB 208 KiB/s 00:02 [############################################] 100%
86 kmod-26-3-x86_64 113.9 KiB 345 KiB/s 00:00 [############################################] 100%
87 pciutils-3.6.2-2-x86_64 86.8 KiB 212 KiB/s 00:00 [############################################] 100%
88 psmisc-23.3-2-x86_64 110.1 KiB 280 KiB/s 00:00 [############################################] 100%
89 cracklib-2.9.7-2-x86_64 250.4 KiB 230 KiB/s 00:01 [############################################] 100%
90 e2fsprogs-1.45.5-1-x86_64 1195.4 KiB 188 KiB/s 00:06 [############################################] 100%
91 libsasl-2.1.27-2-x86_64 136.2 KiB 332 KiB/s 00:00 [############################################] 100%
92 libldap-2.4.49-1-x86_64 300.6 KiB 154 KiB/s 00:02 [############################################] 100%
93 keyutils-1.6.1-3-x86_64 88.3 KiB 215 KiB/s 00:00 [############################################] 100%
94 krb5-1.17.1-1-x86_64 1334.3 KiB 167 KiB/s 00:08 [############################################] 100%
95 libtirpc-1.2.5-1-x86_64 170.0 KiB 260 KiB/s 00:01 [############################################] 100%
96 pambase-20190105.1-2-any 2.9 KiB 0.00 B/s 00:00 [############################################] 100%
97 pam-1.3.1-2-x86_64 559.6 KiB 102 KiB/s 00:05 [############################################] 100%
98 libcap-ng-0.7.10-1-x86_64 35.7 KiB 0.00 B/s 00:00 [############################################] 100%
99 audit-2.8.5-6-x86_64 338.5 KiB 142 KiB/s 00:02 [############################################] 100%
100 shadow-4.8.1-1-x86_64 1171.2 KiB 193 KiB/s 00:06 [############################################] 100%
101 util-linux-2.35.1-1-x86_64 2.4 MiB 191 KiB/s 00:13 [############################################] 100%
102 less-551-3-x86_64 100.9 KiB 266 KiB/s 00:00 [############################################] 100%
103 gzip-1.10-3-x86_64 77.8 KiB 0.00 B/s 00:00 [############################################] 100%
104 licenses-20191011-2-any 66.8 KiB 21.7 MiB/s 00:00 [############################################] 100%
105 expat-2.2.9-3-x86_64 94.6 KiB 290 KiB/s 00:00 [############################################] 100%
106 zstd-1.4.4-1-x86_64 391.9 KiB 213 KiB/s 00:02 [############################################] 100%
107 libarchive-3.4.2-1-x86_64 500.9 KiB 196 KiB/s 00:03 [############################################] 100%
108 libtasn1-4.16.0-1-x86_64 121.3 KiB 299 KiB/s 00:00 [############################################] 100%
109 device-mapper-2.02.186-5-x86_64 291.3 KiB 181 KiB/s 00:02 [############################################] 100%
110 popt-1.16-12-x86_64 62.9 KiB 0.00 B/s 00:00 [############################################] 100%
111 json-c-0.13.1-3-x86_64 45.0 KiB 0.00 B/s 00:00 [############################################] 100%
112 argon2-20190702-2-x86_64 30.2 KiB 0.00 B/s 00:00 [############################################] 100%
113 cryptsetup-2.3.0-1-x86_64 540.1 KiB 195 KiB/s 00:03 [############################################] 100%
114 dbus-1.12.16-5-x86_64 298.3 KiB 209 KiB/s 00:01 [############################################] 100%
115 libmnl-1.0.4-3-x86_64 10.4 KiB 3.40 MiB/s 00:00 [############################################] 100%
116 libnftnl-1.1.5-1-x86_64 61.1 KiB 0.00 B/s 00:00 [############################################] 100%
117 libnl-3.5.0-2-x86_64 364.7 KiB 223 KiB/s 00:02 [############################################] 100%
118 libusb-1.0.23-2-x86_64 57.0 KiB 0.00 B/s 00:00 [############################################] 100%
119 libpcap-1.9.1-2-x86_64 240.0 KiB 195 KiB/s 00:01 [############################################] 100%
120 iptables-1:1.8.4-1-x86_64 426.5 KiB 186 KiB/s 00:02 [############################################] 100%
121 kbd-2.2.0-5-x86_64 1135.6 KiB 202 KiB/s 00:06 [############################################] 100%
122 libidn2-2.3.0-1-x86_64 115.9 KiB 141 KiB/s 00:01 [############################################] 100%
123 libelf-0.177-2-x86_64 373.5 KiB 146 KiB/s 00:03 [############################################] 100%
124 pcre2-10.34-3-x86_64 1038.5 KiB 162 KiB/s 00:06 [############################################] 100%
125 systemd-244.3-1-x86_64 5.1 MiB 194 KiB/s 00:27 [############################################] 100%
126 p11-kit-0.23.20-2-x86_64 579.6 KiB 236 KiB/s 00:02 [############################################] 100%
127 ca-certificates-utils-20181109-3-any 8.2 KiB 0.00 B/s 00:00 [############################################] 100%
128 ca-certificates-mozilla-3.50-1-x86_64 336.7 KiB 245 KiB/s 00:01 [############################################] 100%
129 ca-certificates-20181109-3-any 2.1 KiB 0.00 B/s 00:00 [############################################] 100%
130 libssh2-1.9.0-2-x86_64 205.8 KiB 289 KiB/s 00:01 [############################################] 100%
131 libpsl-0.21.0-2-x86_64 73.2 KiB 224 KiB/s 00:00 [############################################] 100%
132 libnghttp2-1.39.2-2-x86_64 86.7 KiB 234 KiB/s 00:00 [############################################] 100%
133 curl-7.68.0-1-x86_64 1018.0 KiB 181 KiB/s 00:06 [############################################] 100%
134 npth-1.6-2-x86_64 12.8 KiB 0.00 B/s 00:00 [############################################] 100%
135 libksba-1.3.5-2-x86_64 116.6 KiB 305 KiB/s 00:00 [############################################] 100%
136 libassuan-2.5.3-2-x86_64 85.0 KiB 207 KiB/s 00:00 [############################################] 100%
137 libsecret-0.20.1-1-x86_64 236.6 KiB 225 KiB/s 00:01 [############################################] 100%
138 pinentry-1.1.0-5-x86_64 101.6 KiB 363 KiB/s 00:00 [############################################] 100%
139 nettle-3.5.1-2-x86_64 329.4 KiB 229 KiB/s 00:01 [############################################] 100%
140 gnutls-3.6.12-1-x86_64 2.8 MiB 186 KiB/s 00:15 [############################################] 100%
141 sqlite-3.31.1-1-x86_64 1558.6 KiB 198 KiB/s 00:08 [############################################] 100%
142 gnupg-2.2.19-1-x86_64 2.1 MiB 204 KiB/s 00:11 [############################################] 100%
143 gpgme-1.13.1-3-x86_64 410.9 KiB 220 KiB/s 00:02 [############################################] 100%
144 pacman-mirrorlist-20200207-1-any 6.0 KiB 0.00 B/s 00:00 [############################################] 100%
145 archlinux-keyring-20200108-1-any 868.3 KiB 194 KiB/s 00:04 [############################################] 100%
146 pacman-5.2.1-4-x86_64 836.6 KiB 194 KiB/s 00:04 [############################################] 100%
147 systemd-sysvcompat-244.3-1-x86_64 8.0 KiB 0.00 B/s 00:00 [############################################] 100%
148 iputils-20190709-2-x86_64 92.1 KiB 249 KiB/s 00:00 [############################################] 100%
149 iproute2-5.5.0-1-x86_64 913.4 KiB 186 KiB/s 00:05 [############################################] 100%
150 base-2-2-any 2.1 KiB 0.00 B/s 00:00 [############################################] 100%
151 mkinitcpio-busybox-1.31.1-1-x86_64 254.8 KiB 207 KiB/s 00:01 [############################################] 100%
152 diffutils-3.7-3-x86_64 324.1 KiB 173 KiB/s 00:02 [############################################] 100%
153 mkinitcpio-27-2-any 40.7 KiB 0.00 B/s 00:00 [############################################] 100%
154 linux-5.5.4.arch1-1-x86_64 69.1 MiB 202 KiB/s 05:51 [############################################] 100%
155 linux-firmware-20200204.b791e15-1-any 99.3 MiB 190 KiB/s 08:56 [############################################] 100%
156 libxml2-2.9.10-1-x86_64 1267.4 KiB 252 KiB/s 00:05 [############################################] 100%
157 libcroco-0.6.13-1-x86_64 146.0 KiB 180 KiB/s 00:01 [############################################] 100%
158 libnfnetlink-1.0.1-3-x86_64 16.4 KiB 0.00 B/s 00:00 [############################################] 100%
159 libnetfilter_conntrack-1.0.7-1-x86_64 47.5 KiB 0.00 B/s 00:00 [############################################] 100%
160(116/116) checking keys in keyring [############################################] 100%
161(116/116) checking package integrity [############################################] 100%
162(116/116) loading package files [############################################] 100%
163(116/116) checking for file conflicts [############################################] 100%
164:: Processing package changes...
165( 1/116) installing iana-etc [############################################] 100%
166( 2/116) installing filesystem [############################################] 100%
167( 3/116) installing linux-api-headers [############################################] 100%
168( 4/116) installing tzdata [############################################] 100%
169( 5/116) installing glibc [############################################] 100%
170Optional dependencies for glibc
171 gd: for memusagestat
172( 6/116) installing gcc-libs [############################################] 100%
173( 7/116) installing ncurses [############################################] 100%
174( 8/116) installing readline [############################################] 100%
175( 9/116) installing bash [############################################] 100%
176Optional dependencies for bash
177 bash-completion: for tab completion
178( 10/116) installing attr [############################################] 100%
179( 11/116) installing acl [############################################] 100%
180( 12/116) installing gmp [############################################] 100%
181( 13/116) installing libcap [############################################] 100%
182( 14/116) installing gdbm [############################################] 100%
183( 15/116) installing db [############################################] 100%
184( 16/116) installing perl [############################################] 100%
185( 17/116) installing openssl [############################################] 100%
186Optional dependencies for openssl
187 ca-certificates [pending]
188( 18/116) installing coreutils [############################################] 100%
189( 19/116) installing zlib [############################################] 100%
190( 20/116) installing xz [############################################] 100%
191( 21/116) installing bzip2 [############################################] 100%
192( 22/116) installing libseccomp [############################################] 100%
193( 23/116) installing file [############################################] 100%
194( 24/116) installing findutils [############################################] 100%
195( 25/116) installing mpfr [############################################] 100%
196( 26/116) installing gawk [############################################] 100%
197( 27/116) installing pcre [############################################] 100%
198( 28/116) installing grep [############################################] 100%
199( 29/116) installing libgpg-error [############################################] 100%
200( 30/116) installing libgcrypt [############################################] 100%
201( 31/116) installing lz4 [############################################] 100%
202( 32/116) installing systemd-libs [############################################] 100%
203( 33/116) installing procps-ng [############################################] 100%
204( 34/116) installing sed [############################################] 100%
205( 35/116) installing tar [############################################] 100%
206( 36/116) installing libffi [############################################] 100%
207( 37/116) installing libutil-linux [############################################] 100%
208( 38/116) installing glib2 [############################################] 100%
209Optional dependencies for glib2
210 python: gdbus-codegen, glib-genmarshal, glib-mkenums, gtester-report
211 libelf: gresource inspection tool [pending]
212( 39/116) installing libunistring [############################################] 100%
213( 40/116) installing icu [############################################] 100%
214( 41/116) installing libxml2 [############################################] 100%
215( 42/116) installing libcroco [############################################] 100%
216( 43/116) installing gettext [############################################] 100%
217Optional dependencies for gettext
218 git: for autopoint infrastructure updates
219( 44/116) installing hwids [############################################] 100%
220( 45/116) installing kmod [############################################] 100%
221( 46/116) installing pciutils [############################################] 100%
222( 47/116) installing psmisc [############################################] 100%
223( 48/116) installing cracklib [############################################] 100%
224( 49/116) installing e2fsprogs [############################################] 100%
225( 50/116) installing libsasl [############################################] 100%
226( 51/116) installing libldap [############################################] 100%
227( 52/116) installing keyutils [############################################] 100%
228( 53/116) installing krb5 [############################################] 100%
229( 54/116) installing libtirpc [############################################] 100%
230( 55/116) installing pambase [############################################] 100%
231( 56/116) installing pam [############################################] 100%
232( 57/116) installing libcap-ng [############################################] 100%
233( 58/116) installing audit [############################################] 100%
234( 59/116) installing shadow [############################################] 100%
235( 60/116) installing util-linux [############################################] 100%
236Optional dependencies for util-linux
237 python: python bindings to libmount
238 words: default dictionary for look
239( 61/116) installing less [############################################] 100%
240( 62/116) installing gzip [############################################] 100%
241( 63/116) installing licenses [############################################] 100%
242( 64/116) installing expat [############################################] 100%
243( 65/116) installing zstd [############################################] 100%
244( 66/116) installing libarchive [############################################] 100%
245( 67/116) installing libtasn1 [############################################] 100%
246( 68/116) installing device-mapper [############################################] 100%
247( 69/116) installing popt [############################################] 100%
248( 70/116) installing json-c [############################################] 100%
249( 71/116) installing argon2 [############################################] 100%
250( 72/116) installing cryptsetup [############################################] 100%
251( 73/116) installing dbus [############################################] 100%
252( 74/116) installing libmnl [############################################] 100%
253( 75/116) installing libnftnl [############################################] 100%
254( 76/116) installing libnl [############################################] 100%
255( 77/116) installing libusb [############################################] 100%
256( 78/116) installing libpcap [############################################] 100%
257( 79/116) installing libnfnetlink [############################################] 100%
258( 80/116) installing libnetfilter_conntrack [############################################] 100%
259( 81/116) installing iptables [############################################] 100%
260( 82/116) installing kbd [############################################] 100%
261( 83/116) installing libidn2 [############################################] 100%
262( 84/116) installing libelf [############################################] 100%
263( 85/116) installing pcre2 [############################################] 100%
264( 86/116) installing systemd [############################################] 100%
265Initializing machine ID from random generator.
266Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service.
267Created symlink /etc/systemd/system/multi-user.target.wants/remote-fs.target → /usr/lib/systemd/system/remote-fs.target.
268:: Append 'init=/usr/lib/systemd/systemd' to your kernel command line in your
269 bootloader to replace sysvinit with systemd, or install systemd-sysvcompat
270Optional dependencies for systemd
271 libmicrohttpd: remote journald capabilities
272 quota-tools: kernel-level quota management
273 systemd-sysvcompat: symlink package to provide sysvinit binaries [pending]
274 polkit: allow administration as unprivileged user
275 curl: machinectl pull-tar and pull-raw [pending]
276( 87/116) installing p11-kit [############################################] 100%
277Created symlink /etc/systemd/user/sockets.target.wants/p11-kit-server.socket → /usr/lib/systemd/user/p11-kit-server.socket.
278( 88/116) installing ca-certificates-utils [############################################] 100%
279( 89/116) installing ca-certificates-mozilla [############################################] 100%
280( 90/116) installing ca-certificates [############################################] 100%
281( 91/116) installing libssh2 [############################################] 100%
282( 92/116) installing libpsl [############################################] 100%
283( 93/116) installing libnghttp2 [############################################] 100%
284( 94/116) installing curl [############################################] 100%
285( 95/116) installing npth [############################################] 100%
286( 96/116) installing libksba [############################################] 100%
287( 97/116) installing libassuan [############################################] 100%
288( 98/116) installing libsecret [############################################] 100%
289Optional dependencies for libsecret
290 org.freedesktop.secrets: secret storage backend
291( 99/116) installing pinentry [############################################] 100%
292Optional dependencies for pinentry
293 gtk2: gtk2 backend
294 qt5-base: qt backend
295 gcr: gnome3 backend
296(100/116) installing nettle [############################################] 100%
297(101/116) installing gnutls [############################################] 100%
298Optional dependencies for gnutls
299 guile: for use with Guile bindings
300(102/116) installing sqlite [############################################] 100%
301(103/116) installing gnupg [############################################] 100%
302Optional dependencies for gnupg
303 libldap: gpg2keys_ldap [installed]
304 libusb-compat: scdaemon
305 pcsclite: scdaemon
306(104/116) installing gpgme [############################################] 100%
307(105/116) installing pacman-mirrorlist [############################################] 100%
308(106/116) installing archlinux-keyring [############################################] 100%
309(107/116) installing pacman [############################################] 100%
310Optional dependencies for pacman
311 perl-locale-gettext: translation support in makepkg-template
312(108/116) installing systemd-sysvcompat [############################################] 100%
313(109/116) installing iputils [############################################] 100%
314Optional dependencies for iputils
315 xinetd: for tftpd
316(110/116) installing iproute2 [############################################] 100%
317Optional dependencies for iproute2
318 linux-atm: ATM support
319(111/116) installing base [############################################] 100%
320Optional dependencies for base
321 linux: bare metal support [pending]
322(112/116) installing mkinitcpio-busybox [############################################] 100%
323(113/116) installing diffutils [############################################] 100%
324(114/116) installing mkinitcpio [############################################] 100%
325Optional dependencies for mkinitcpio
326 xz: Use lzma or xz compression for the initramfs image [installed]
327 bzip2: Use bzip2 compression for the initramfs image [installed]
328 lzop: Use lzo compression for the initramfs image
329 lz4: Use lz4 compression for the initramfs image [installed]
330 mkinitcpio-nfs-utils: Support for root filesystem on NFS
331(115/116) installing linux [############################################] 100%
332Optional dependencies for linux
333 crda: to set the correct wireless channels of your country
334 linux-firmware: firmware images needed for some devices [pending]
335(116/116) installing linux-firmware [############################################] 100%
336:: Running post-transaction hooks...
337( 1/13) Creating system user accounts...
338( 2/13) Updating journal message catalog...
339( 3/13) Reloading system manager configuration...
340Running in chroot, ignoring request: daemon-reload
341( 4/13) Updating udev hardware database...
342( 5/13) Applying kernel sysctl settings...
343( 6/13) Creating temporary files...
344( 7/13) Reloading device manager configuration...
345Running in chroot, ignoring request.
346( 8/13) Arming ConditionNeedsUpdate...
347( 9/13) Updating module dependencies...
348(10/13) Updating linux initcpios...
349==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
350 -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
351==> Starting build: 5.5.4-arch1-1
352 -> Running build hook: [base]
353 -> Running build hook: [udev]
354 -> Running build hook: [autodetect]
355 -> Running build hook: [modconf]
356 -> Running build hook: [block]
357 -> Running build hook: [filesystems]
358 -> Running build hook: [keyboard]
359 -> Running build hook: [fsck]
360==> Generating module dependencies
361==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
362==> Image generation successful
363==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
364 -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
365==> Starting build: 5.5.4-arch1-1
366 -> Running build hook: [base]
367 -> Running build hook: [udev]
368 -> Running build hook: [modconf]
369 -> Running build hook: [block]
370==> WARNING: Possibly missing firmware for module: aic94xx
371==> WARNING: Possibly missing firmware for module: wd719x
372 -> Running build hook: [filesystems]
373 -> Running build hook: [keyboard]
374 -> Running build hook: [fsck]
375==> Generating module dependencies
376==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
377==> Image generation successful
378(11/13) Reloading system bus configuration...
379Running in chroot, ignoring request: try-reload-or-restart
380(12/13) Warn about old perl modules
381perl: warning: Setting locale failed.
382perl: warning: Please check that your locale settings:
383 LANGUAGE = (unset),
384 LC_ALL = (unset),
385 LC_MESSAGES = "",
386 LANG = "en_US.UTF-8"
387 are supported and installed on your system.
388perl: warning: Falling back to the standard locale ("C").
389(13/13) Rebuilding certificate stores...
390pacstrap /mnt base linux linux-firmware 121.95s user 41.46s system 9% cpu 28:00.48 total