- (1)キーボードレイアウトの変更
- (2)ドライブのバーティショニング
- (3)HDDのフォーマットとマウント
- (4)スワップ領域の作成と有効化 (スワップ領域を確保するのではなく、スワップファイルで対応する方法もあり)
- (5)UEFI領域フォーマットとマウント
- 2022/12/24修正
- (6)mirrorlistの修正
- 2022/07/24追記
- (7)ArchLinuxのベースシステムを導入
- (8)追加パッケージを導入
- (9)fstab の作成
- (10)chroot環境下で作業
- (11)タイムゾーン、日本語環境、ホストネームなどの設定
- (12)日本語環境の設定
- (13)Linuxイメージの作成
- (14)Grubのインストール
- 2022/12/24 修正
- (15)Grubの設定ファイルの作成
- (16)rootのパスワードの設定
- (17)一般ユーザの追加とそのパスワードの設定
- (18)アドレスの設定
- 2022/12/24追記
- 2023/05/29 修正
- (19)SSHDの有効化
- (20)chrootを抜けて、マウント解除、再起動
1.はじめに
以前書いてあったものが古くなっていたので、全面的に修正しました。ArchWikiにも同様の記事が載っていますが、ここではあくまで自分用に、しかも迷わずどんどんインストールできるようにするための覚書です。いっぱい選択肢が書いてあっても迷うだけ。
以下のインストール方法はUEFI下の、しかも複数ディスクを使った場合です。
2.インストールディスクの作成
例のごとく最新版をダウンロードし、これをCDやUSBメモリ、(USB変換アダプターを使用する場合はSDカードも可)に焼きます。dd コマンドの活用が一番楽チン。例えば以下のように。
# dd if=saved_directory of=/dev/sdx(target_directory) bs=4096 && sync
3.インストールディスクから起動
表示された画面でしばらく待っていると、 rootでログインされます。
なお、直接インストールするPCで操作する場合は、4を飛ばし5に進んでください。
4.sshの起動とrootパスワード設定
ここでネットワークが確立されていなければなりませんが、もしも有線LANの環境がなく無線LANを使うしかない、あるいは有線LANお環境もあるが、無線LANで頑張るという場合の無線LANの設定はこちら。
# ip a
Pアドレスが割り振られているはずなので、それを覚えておきます。
2023/02/09 追記
現在のインストールディスクでは、SSHがデフォルトで起動していますので、この項目は不要になりました。すぐにパスワードの変更に移ってください。
# systemctl start sshd
# passwd
システムクロックを更新します。
# timedatectl set-ntp true
ここまで来たらリモートPCからssh接続します。
$ ssh root@Ip_address ※ 先ほど設定したパスワードを入力します。
5. インストール
コピペでやってください。
(1)キーボードレイアウトの変更
デフォルトはUSキーボードなので、使用しているキーボードが日本語の場合は、
# loadkeys jp106
(2)ドライブのバーティショニング
この作業だけは慎重にやったほうが良いです。後で変更するのは非常に面倒だからです。
特に/home と /var は使用量が増えますし、書き込みが激しいからです。
以下のように領域を確保しました。
ディスク名 | 確保した領域 | 容量 | フォーマット | マウントポイント |
---|---|---|---|---|
/dev/sda [SSD]124G | /dev/sda1 /dev/sda2 /dev/sda3 | 512M 10G 残りすべて | vfat swap ext4 | /boot/efi [swap] / |
/dev/sdb [HDD]2T | /dev/sdb1 dev/sdb2 | 1T 1T | ext4 ext4 | /home /var |
【注】なぜ、このような領域確保になったかというと
- スピードが命のSSDですが、耐久性にいまいち不安をもっており、書き込みが激しいデータ領域はHDDに確保。
- /HOMEと/VARは、データがどこまでも膨れ上がってくる可能性があり、また書き込みが激しいので、HDDこそ出番。
- こうすればSSDが124Gでも十分だからです。
それでは領域確保からスタート。まずは、/dev/sdaから
# cgdisk /dev/sda
- [new]を選択し、512メガバイトをUEFI領域として割り当てる。パーティションタイプにはef00を割り当てる。
- [Free Space]を選択して、スワップ領域分(搭載メモリと同量)を確保、パーティションタイプ8200を設定する。。
- また[Free Space]を選択して、残り全てを、パーティションタイプ8300に設定。
- 最後に[Write]→[Quite]を選択し、終了。
もう一つのHDDを/homeと/varで使うので、同じ要領で領域を確保し、書き込み、終了します。
# cgdisk /dev/sdb
説明は省略
(3)HDDのフォーマットとマウント
/dev/sda3のフォーマットとマウント
# mkfs.ext4 /dev/sda3
# mount /dev/sda3 /mnt
/dev/sdb1のフォーマットとマウント
# mkfs.ext4 /dev/sdb1
# mkdir -p /mnt/home
# mount /dev/sdb1 /mnt/home
/dev/sdb2のフォーマットとマウント
# mkfs.ext4 /dev/sdb2
# mkdir -p /mnt/var
# mount /dev/sdb2 /mnt/var
(4)スワップ領域の作成と有効化 (スワップ領域を確保するのではなく、スワップファイルで対応する方法もあり)
# mkswap /dev/sda2
# swapon /dev/sda2
(5)UEFI領域フォーマットとマウント
# mkfs.vfat -F32 /dev/sda1
2022/12/24修正
EFI システムのマウント先は /mnt/boot が推奨されているようです。以前は、/mnt/boot/efi にマウントするよう記載されておりました。これでも支障なく運用できるようです。当サイトの記事の中にも以前のマウントで作成したものを前提としているものがあります。
ブートローダーはカーネルと initramfs イメージにアクセスできなければなりません。アクセスできなければシステムはブートしません。したがって、通常のセットアップでは、
https://wiki.archlinux.jp/index.php/Arch_%E3%83%96%E3%83%BC%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9#.E3.83.96.E3.83.BC.E3.83.88.E3.83.AD.E3.83.BC.E3.83.80.E3.83.BC/boot
へのアクセスをサポートしている必要があります。
# mkdir -p /mnt/boot
# mount /dev/sda1 /mnt/boot
(6)mirrorlistの修正
これをやらないとダウンロードにメチャ時間がかかります。
2022/07/24追記
現在はこの作業が不要になったようです。
ライブ環境では、インターネットに接続した後に、reflector が 20 個の最も最近同期された HTTPS ミラーを選択し、ダウンロード速度で並べ替えを行ってミラーリストを更新します。
ArchWiki
2022/12/24追記
デフォルトでは日本のミラーの記載ありません。どうしても日本のミラーという場合はhttps://archlinux.org/mirrorlist/から検索して、以下をなるべく上位に挿入します。
# nano /etc/pacman.d/mirrorlist
開いたリストからjapanの行をみつけ、そのURIを先頭にコピーして保存します。
## Japan Server = http://mirrors.cat.net/archlinux/$repo/os/$arch Server = https://mirrors.cat.net/archlinux/$repo/os/$arch Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch Server = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch Server = https://mirror.saebasol.org/archlinux/$repo/os/$arch
(7)ArchLinuxのベースシステムを導入
# pacstrap /mnt base base-devel linux linux-firmware
(8)追加パッケージを導入
# pacstrap /mnt grub efibootmgr nano openssh dhcpcd intel-ucode
※ amdの場合はamd-ucode
以上は最低必須と思われるものだけ。サブドメインを使用する場合は ddclient を入れておいたほうが良いです。
2022/12/24修正
デフォルトでインストールされる systemd-networkd を使用できるので dhcpcd のインストールは必要なくなりました。可変アドレスでは dhcpcd の起動だけですので、こっちのほうが楽かも。
(9)fstab の作成
# genfstab -U /mnt >> /mnt/etc/fstab
(10)chroot環境下で作業
# arch-chroot /mnt
[root@archiso /]# コマンドプロンプトが archiso に変化します
(11)タイムゾーン、日本語環境、ホストネームなどの設定
場合によっては、キーボードの配列が異なる場合があって、すごく不便を感じるようであれば再度 loadkeys jp106 を実行して下さい。
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# echo KEYMAP=jp106 > /etc/vconsole.conf
# echo NasebanaruLinux > /etc/hostname ※ホスト名は好きな名称に変更してください。
# nano /etc/hosts
127.0.0.1 localhost nasebanarulinux.localdomain
::1 localhost nesebanarulinux.localdomain
(12)日本語環境の設定
# nano /etc/locale.gen
開いたファイルの次の2行の#を削除し、有効にして下さい。
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.
日本語だけにする手もあるが、これだと文字化けする場合がある。
(13)Linuxイメージの作成
# mkinitcpio -p linux
(14)Grubのインストール
2022/12/24 修正
ブートローダの識別子を選んでください、ここでは
https://wiki.archlinux.jp/index.php/GRUB#.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB_2GRUB
とします。esp/EFI/
にあなたが選んだものと同じ名前のディレクトリが作成され、そこに EFI バイナリが格納されます。その名前が UEFI ブートメニューの GRUB ブートエントリの名前になります。
# grub-install –target=x86_64-efi –efi-directory=/boot –bootloader-id=GRUB
見づらいかもしれませんが、 target efi-directory bootloaderの前は、それぞれ–(ダブルハイフン)です。
Installing for x86_64-efi platform.
このようにエラーが出ていなければOK
Installation finished. No error reported.
(15)Grubの設定ファイルの作成
# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file …
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: intel-ucode.img initramfs-linux-fallback.img
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings …
done
(16)rootのパスワードの設定
# passwd ※パスワードを入力すると、再度入力を促されます
(17)一般ユーザの追加とそのパスワードの設定
# nano /etc/sudoers
開いたファイルの次の2行の#を削除
defaults env_keep += “HOME”
%wheel ALL=(ALL) ALL
# useradd -m -G wheel taro ※ここではユーザ名をtaroとしましたが、自由に変更してください。
# passwd taro
(18)アドレスの設定
dhcpcd での設定
可変アドレスで良ければ、
# systemctl enable dhcpcd.service
固定アドレスにするのであれば
# nano /etc/dhcpcd.conf
interface eth0
static ip_address=xxx.xxx.xxx.xxx24
static routers=xxx.xxx.xxx.1
static domain_name_servers=xxx.xxx.xxx.1 8.8.8.8
# systemctl enable dhcpcd.service
2022/12/24追記
systemd-networkd での設定
# nano /etc/systemd/network/10-wired.network
可変アドレスであれば
[Match]
Name=enp1s0[Network]
DHCP=yes
固定アドレスでは
[Match]
Name=enp1s0[Network]
Address=xxx.xxx.xxx.xxx/24
Gateway=xxx.xxx.xxx.1
DNS=xxx.xxx.xxx.1 8.8.8.8
有効化します。
# systemctl enable systemd-networkd
2023/05/29 修正
以前はこの時点でresolv.confの修正を記載しておりましたが、resolv.confは再起動により書き換えられますので、再起動後に実施します。
(19)SSHDの有効化
# systemctl enable sshd.service
(20)chrootを抜けて、マウント解除、再起動
# exit
# umount -R /mnt/home /mnt/var /mnt
# reboot
6.再起動後
$ ssh taro@IP_address #一般ユーザで接続
(1) resolv.conf への追記(2023/02/08追記)
(これを設定しないと、fatal: unable to access ‘https://xxx.archlinux.org/xxxxx.xxx/’: Could not resolve host: xxx.archlinux.org のようなエラーが発生します。)
# nano /etc/resolv.conf
nameserver 8.8.8.8 xxx.xxx.xxx.xxx
(2)システムクロックの更新( 2023/03/25追記 2023/0918 修正)
「再起動後実行」に修正
# timedatectl set-ntp true
参考
単一のドライブ構成で、もっと簡単にインストールしたいという場合は、スクリプトを使用する方法があります。ググれば複数見つかります。自分も作ってみました。でも、何回も何回も苦労していると今何をやっているか?わかってきます。苦労は無駄になりません。
より使いやすくするためのでスプトップ化はこちら
コメント