Kangaroo Plus ミニPCにArch Linuxをインストール(その2)
(このページは工事中です)
参照ページ
条件
インストール対象マシンの大まかなスペック
InFocus Kangaroo Plus
CPU: Intel Atom x5-8500 1.44GHz
メモリ: 4GB
ストレージ: 64GB eMMC
microSDカードスロット - 256GB microSDカード
検討
参考: 既存Archマシンの各パーティションの占有容量:
table:df -m
Mounted on 1M-blocks Used
/boot: 232 81
/boot/efi: 510 1
/: 238399 463
/usr: 1048576 6507
/home: 1048576 8817
/var: 131072 15722
パーティショニング:
ストレージは64GBなのでGPT必須(2TB以上で必須)ではないが、好みでGPTにする。
参照ページ4の表により検討した結果、ブートローダはGRUB2にする。
GRUB2はMBR領域とESPの両方に書き込み、どちらからでも起動できるように設定する
参照ページ2の推奨に従ってパーティション境界は2048セクタ(LBAセクタ)にアラインメント(2048 の倍数のセクタから開始し、 2048 の倍数マイナス 1 のセクタで終了するように設定)する。
パーティション等:
biosgrub: 1MiB。MBRのGRUB2のために必要(MBR領域は小さくてGRUB2の全部は入らないので残りをここに入れるみたい)。
/boot(ESP): FAT32 1GiB。 参照ページ1によるとESPを/bootにしていいらしい(ESPと別に/bootを作る必要はない)
/: ext4。
swapはファイルシステム上に作成。
/var: ext4 256GB、microSDカード上に作成。
/home: /var/homeにシンボリックリンク。
現状
(その1)の終了後の状態。
table:fdisk -l
/dev/mmcblk0 58.24 GiB 62537072640 bytes 122142720 sectors eMMC
/dev/mmcblk1 183.35 GiB 196865949696 bytes 384503808 sectors microSDカード
table:fdisk -l /dev/mmcblk0
Device Start End Sectors Size Type
/dev/mmcblk0p1 2048 923647 921600 450M Windows recovery environment
/dev/mmcblk0p2 923648 1128447 204800 100M EFI System
/dev/mmcblk0p3 1128448 1161215 32768 16M Microsoft reserved
/dev/mmcblk0p4 1161216 121108479 119946869 57.2G Linux filesystem (ext4)
/dev/mmcblk0p5 121108480 122138623 1030144 503M Windows recovery environment
/dev/mmcblk0p6 122138624 122140671 2048 1M BIOS boot (biosgrub)
計画
table:partitions
/dev/mmcblk0p1 Windows recovery environment (n/a) 450MB
/dev/mmcblk0p2 /boot (EFS) FAT32 1GiB
/dev/mmcblk0p3 / ext4 100MB+16MB+57.2MB-1GiB
/dev/mmcblk0p4 Windows recovery environment (n/a) 503MB
/dev/mmcblk0p5 biosgrub (none) 1MiB
/dev/mmcblk1p1 biosgrub (none) 1MiB
/dev/mmcblk1p2 /var f2fs microSDの全て
手順
BIOS SettingsからSecure Bootをオフにしておく。
Arch LinuxのUSBスティックからブート。
日本語キーボードを使っているなら、loadkeys jp106
ls /sys/firmware
acpi dmi efi memmap
efiディレクトリがなければBIOSモードで起動している、あればUEFIモードで起動している。
UEFIファームウェアのビット数を調べる: cat /sys/firmware/efi/fw_platform_size
64
無線LANでインターネット接続:
iwctl
device list
wlan0
station wlan0 scan
station wlan0 get-networks
w2a_nomap
w3_nomap
w2_nomap
station wlan0 connect w3_nomap
パスワードを入力
station wlan0 showでconnectedとなっていればよい。
exit
eMMCのGPTパーティションテーブルをそのまま利用:
gdisk /dev/mmcblk0
biosgrubパーティションはその1で作成したのでいじらない。
EFIシステム、Microsoft reserved、Linux filesystemの各パーティションを削除:
Microsoft basic dataパーティションを削除:
d
4
d
3
d
2
EFI Systemパーティションを作成:
n
2
923648
+1G # サイズは2097152(*512バイト)セクタになるはずなので末尾セクタは3020799になりそう。
EF00 # EFI System
pで確認。
/パーティションを作成:
n
3
3020800
121108479
8300 # Linux filesystem
pで確認。
最後に書き込みしてgdiskから抜ける:
w[Enter]
y[Enter]]
サイズを記録:
table:fdisk -l /dev/mmcblk0
Device Start End Sectors Size Type
/dev/mmcblk0p1 2048 923647 921600 450M Windows recovery environment
/dev/mmcblk0p2 923648 3020799 2097152 1G EFI System
/dev/mmcblk0p3 3020800 121108479 118087680 56.3G Linux filesystem
/dev/mmcblk0p5 121108480 122138623 1030144 503M Windows recovery environment
/dev/mmcblk0p6 122138624 122140671 2048 1M BIOS boot
/dev/mmcblk0p3のサイズ(Sectors)をメモ(今回は118087600であった)。
microSDはその1でパーティショニングしたものをそのまま使うので今回はいじらない。
ファイルシステムの作成:
mkfs.fat -F32 /dev/mmcblk0p2 # /boot (ESP)
mkfs.ext4 /dev/mmcblk0p3 # /
e2label /dev/mmcblk0p3 ROOT # /のディスクラベルをROOTとする。
mkfs.f2fs /dev/mmcblk1p2 # /var
f2fslabel /dev/mmcblk1p2 VAR # /varのディスクラベルをVARとする。
ファイルシステムのマウント:
mount /dev/mmcblk0p3 /mnt
mkdir /mnt/boot
mount /dev/mmcblk0p2 /mnt/boot
mkdir /mnt/var
mount /dev/mmcblk1p2 /mnt/var
パッケージデータベースの作成:
pacman -Sy
必要なパッケージを探す:
pacman -Ss パッケージ名
パッケージのインストレーション:
pacstrap /mnt base bese-devel linux linux-firmware efibootmgr grub e2fsprogs f2fs-tools vim
構成をファイルに記録:
genfstab -U /mnt >>/mnt/etc/fstab
chroot:
arch-chroot /mnt
細かい設定:
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohc
code:/etc/locale.gen: 次の2行をアンコメント
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
locale-gen
code:/etc/locale.conf
LANG=ja_JP.UTF-8
code:/etc/vconsole.conf
KEYMAP=jp106
code:/etc/hostname
pcn
Initramfsの再生成:
参考:
RAID - ArchWiki
LVM - ArchWiki
mkinitcpio - ArchWiki - HOOKSについて
mkinitcpio -P
rootパスワードの設定:
passwd
GRUB2によるBIOSブートの設定:
grub-install --target=i386-pc /dev/mmcblk0
grub-install --target=i386-pc /dev/mmcblk1
GRUB2によるUEFIブートの設定:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
GRUB2の構成をファイルに記録:
grub-mkconfig -o /boot/grub/grub.cfg
リブート:
exit # chrootから抜ける
umount -R /mnt
reboot
(2025-05-28)