1.はじめに
以前書いてあったものが古くなっていたので、全面的に修正しました。ArchWikiにも同様の記事が載っていますが、ここではあくまで自分用に、しかも迷わずどんどんインストールできるようにするための覚書です。いっぱい選択肢が書いてあっても迷うだけ。
以下のインストール方法はUEFI下の、しかも複数ディスクを使った場合です。インストールする前に決めておくのは「ディスクのパーテーションをどのような構成にするか」だけ!後記5(2)を参考にしてください。
2.インストールディスクの作成
例のごとく最新版をダウンロードし、これをCDやUSBメモリ、(USB変換アダプターを使用する場合はSDカードも可)に焼きます。dd コマンドの活用が一番楽チン。例えば以下のように。
# dd if=saved_directory of=/dev/sdx(target_directory) bs=4096 && sync
3.インストールディスクから起動
表示された画面でしばらく待っていると、 rootでログインされます。
なお、直接インストールするPCで操作する場合は、4を飛ばし5に進んでください。
4.rootパスワード設定と時刻合わせ
ここでネットワークが確立されていなければなりませんが、もしも有線LANの環境がなく無線LANを使うしかない、あるいは有線LAN 環境もあるが、無線LANで頑張るという場合の無線LANの設定はこちら。
# passwd
システムクロックを更新します。
# timedatectl set-ntp true
ここまで来たらリモートPCからssh接続します。
$ ssh root@Ip_address
※ 先ほど設定したパスワードを入力します。
5. インストール
コピペでやってください。
(1)キーボードレイアウトの変更
デフォルトはUSキーボードなので、使用しているキーボードが日本語の場合は、
# loadkeys jp106
(2)ドライブのバーティショニング
この作業だけは慎重にやったほうが良いです。後で変更するのは非常に面倒(G-partdのようなパーテーションツールを使う手がありますが・・・)だからです。
特に/home と /var は使用量が増えますし、書き込みが激しいからです。
以下のように領域を確保しました。
ディスク名 | 確保した領域 | 容量 | フォーマット | マウントポイント |
---|---|---|---|---|
/dev/sda [SSD]124G |
/dev/sda1 | 512M | fat | /boot |
/dev/sda2 | 10G | swap | [swap] | |
/dev/sda3 | 残りすべて | ext4 | / | |
/dev/sdb [HDD]2T |
/dev/sdb1 | 1T | ext4 | /home |
dev/sdb2 | 1T | ext4 | /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
# mkfs.fat -F 32 /dev/sda1 # 2024/07/23 修正 vfat というオプションはなくなっているようです。
マウントポイントに注意
EFI システムのマウント先は /mnt/boot が推奨されているようです。以前は、/mnt/boot/efi にマウントするよう記載されておりました。これでも支障なく運用できるようです。当サイトの記事の中にも以前のマウントで作成したものを前提としているものがあります。
ブートローダーはカーネルと initramfs イメージにアクセスできなければなりません。アクセスできなければシステムはブートしません。したがって、通常のセットアップでは、/boot へのアクセスをサポートしている必要があります。ArchWiki
# mkdir -p /mnt/boot
# mount /dev/sda1 /mnt/boot
(6)mirrorlistの修正
現在はこの作業が不要になったようですが、これをやらないとダウンロードにメチャ時間がかかります。ぜひ修正することをお勧めします。
デフォルトでは日本のミラーの記載ありません。日本のミラーという場合は https://archlinux.org/mirrorlist/から検索して、以下をなるべく上位に挿入します。
ライブ環境では、インターネットに接続した後に、reflector が 20 個の最も最近同期された HTTPS ミラーを選択し、ダウンロード速度で並べ替えを行ってミラーリストを更新します。
ArchWiki
# nano /etc/pacman.d/mirrorlist
## JapanServer = http://mirrors.cat.net/archlinux/$repo/os/$archServer = https://mirrors.cat.net/archlinux/$repo/os/$archServer = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$archServer = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$archServer = https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch Server = https://mirror.saebasol.org/archlinux/$repo/os/$arch
# 2024/07/23修正 httpプロトコルをやめようという趣旨です。
(7)ArchLinuxのベースシステムを導入
# pacstrap -K1 /mnt base base-devel linux linux-firmware
※1 2024/07/23 修正 -K オプションの追加 以前と何が異なっているかについては不明。ArchWiki
※1 2024/10/28 修正 -k オプションはなくなっているようです。しかしオプションがコロコロ変更されるとちょっと苛つく
(8)追加パッケージを導入
# pacstrap /mnt grub efibootmgr nano openssh intel-ucode1 sudo dosfstools ufw cronie
※1amdの場合はamd-ucode
以上は最低必須と思われるものだけ。サブドメインを使用する場合は ddclient を入れておいたほうが良いです。
(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/hostname2
※2ホスト名は好きな名称に変更してください。
# 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のインストール
ブートローダの識別子を選んでください、ここでは GRUB とします。esp/EFI/ にあなたが選んだものと同じ名前のディレクトリが作成され、そこに EFI バイナリが格納されます。その名前が UEFI ブートメニューの GRUB ブートエントリの名前になります。
ArchWiki
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB3
※3 GRUBは単なる識別子なので、例えばARCH や UBUNTU などOSの種類を使うこともできます。
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)アドレスの設定(systemd-network)d での設定
# 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
(19)SSHDの有効化
# systemctl enable sshd.service
(20)chrootを抜けて、マウント解除、再起動
# exit
# umount -R /mnt/home /mnt/var /mnt
# reboot4
※4 インストールメディアの取り出しタイミングが難しい場合があるので、shutdown -h now コマンドのほうが良いかもしれません。
6.再起動後
$ ssh taro@IP_address
#一般ユーザで接続
(1) resolv.conf への追記
(これを設定しないと、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 8.8.4.4
xxx.xxx.xxx.xxx# 2024/07/23修正 参考書に通常記載のあるルータのIPアドレスはやめて、全てgoogle DNSに統一 nginx r3.o.lencr.org could not be resolved (110: Operation timed out)の解消のため。
# systemctl start systemd-resolved
# systemctl enable systemd-resolved
# 2024/07/23 追記 ping: google.com: Temporary failure in name resolution 解消のため
(2)システムクロックの更新
# timedatectl set-ntp true
参考
単一のドライブ構成で、もっと簡単にインストールしたいという場合は、スクリプトを使用する方法があります。ググれば複数見つかります。
Comments powered by CComment