はい、インストールのメモです。基本的なことしかかいてないし、下手するとぐぐったほうが最適解あるかもね。
下記については手動インストールのメモです。
# archinstall
これがisoイメージから起動できる場合、このほうが早い可能性があります。
ArchWikiのインストールガイド から最新のISOイメージをダウンロードしよう。 CD/DVDのイメージは月初に作られてるので、たとえば2022年8月なら 2022.08.01 といったナンバリングのイメージがあるはず。
仮想環境なら、DVD仮想ドライブにISOファイルを指定すればOK。実機なら、USBメモリ(ないしSDカード等のメディア)に焼き付けるのが適当でしょう。なんらかの Linux 環境 (もちろん Arch でもいいし、Ubuntu Debian 等でもよいです)で下記コマンドを実行し、USBメモリをブータブルにしましょう。
$ sudo dd bs=4M if=archlinux-202X.XX.01-x86_64.iso of=/dev/sdx conv=fsync oflag=direct status=progress
設定が最小限すんだら、ISOイメージを起動しましょう。
# passwd root (パスワードを設定) # ip addr (IPv4アドレスがでてくるのでメモ)
ここまできたら、DVDのブートイメージに外部からsshでアクセスできるので、ssh でアクセスするなりなんなり。
# loadkeys jp106 (日本語キー設定 実機用 / ssh の場合は特に不要) # timedatectl set-ntp true; timedatectl set-timezone Asia/Tokyo (NTP同期スタート + EFI/BIOS時刻を日本時間準拠に) # timedatectl status (日本時間設定とNTP同期ONの確認)
# fdisk -l (ディスク構成確認: 仮想 PC の場合、 /dev/sda が手つかずであるはず)
# fdisk /dev/sda Command (m for help): o Created a new DOS disklabel with disk identifier 0xdeadbeef. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (1-4, default 1): First sector (2048-167772159, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-167772159, default 167772159): +1G Created a new partition 1 of type 'Linux' and of size 512 MiB. Command (m for help): t Hex code or alias (type L to list all): 0c Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'. Command (m for help): n Select (default p): p Partition number (2-4, default 2): First sector (1050624-167772159, default 1050624): Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-167772159, default 167772159): +64G Created a new partition 2 of type 'Linux' and of size 64 GiB. Command (m for help): w
# gdisk /dev/sda GPT fdisk (gdisk) version 1.0.9.1 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries in memory. Command (? for help): o This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): y 新規パーティション作成 パーティションナンバー1~128の入力を促されるが、1=BOOT 2= / でいきます。 ファーストセクタ2048、ラストセクタ +1G。 Command (? for help): n Partition number (1-128, default 1): First sector (34-201326558, default = 2048) or {+-}size{KMGTP}: Last sector (2048-201326558, default = 201324543) or {+-}size{KMGTP}:+1G Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): ef00 Command (m for help) : n 新規作成その2。ファーストセクタは既定値、ラストセクタは+63G Command (? for help): n Partition number (2-128, default 2): First sector (34-201326558, default = 1050624) or {+-}size{KMGTP}: Last sector (1050624-201326558, default = 201324543) or {+-}size{KMGTP}: +63G Current type is 8300 (Linux filesystem) Hex code or GUID (L to show codes, Enter = 8300): (sda2をそのままないし暗号化して全部使うならEnter、lvm2を用いるなら8e00 ) Changed type of partition to 'Linux filesystem' Command (? for help): w
# mkfs.vfat -F32 -n EFI /dev/sda1 ブートパーティションは FAT32。 # mkfs.ext4 /dev/sda2 sda2 は Linux ジャーナリングファイルシステム。 # mount /dev/sda2 /mnt # mkdir -p /mnt/boot # mount /dev/sda1 /mnt/boot # mount | grep /mnt これでマウントは完了。 # df
# cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sda2 WARNING! ======== This will overwrite data on /dev/sda2 irrevocably. Are you sure? (Type 'yes' in capital letters): ( *** YES と「大文字で」入力 *** ) Enter passphrase for /dev/sda2: Verify passphrase: Key slot 0 created. Command successful. # cryptsetup open --type luks /dev/sda2 cryptroot cryptsetup open --type luks /dev/sda2 cryptroot Enter passphrase for /dev/sda2:
# mkfs.ext4 /dev/mapper/cryptroot (sda2 は cryptroot に転写されるのでそこをLinux ジャーナリングファイルシステムで初期化) # mkfs.vfat -F32 -n EFI /dev/sda1 ブートパーティションは FAT32。 # mount /dev/mapper/cryptroot /mnt (sda2 のかわりに暗号化済みのマッピングされたデバイスをマウント) # mkdir -p /mnt/boot; mount /dev/sda1 /mnt/boot # mount | grep /mnt これでマウントは完了。 # df
LVつくってく (sda2が63GBの場合) # pvcreate /dev/mapper/cryptroot # vgcreate vg-system /dev/mapper/cryptroot # lvcreate --size 48G vg-system -n root # lvcreate --size 4G vg-system -n swap # lvcreate --size 10G vg-system -n home ファイルシステム初期化する # mkfs.ext4 /dev/vg-system/root; mkfs.ext4 /dev/vg-system/home; mkswap /dev/vg-system/swap; mkfs.vfat -F32 -n EFI /dev/sda1; マウントしていく。 # mount /dev/vg-system/root /mnt # mkdir -p /mnt/boot; mount /dev/sda1 /mnt/boot # mkdir -p /mnt/home; mount /dev/vg-system/home /mnt/home # swapon /dev/vg-system/swap
# dd bs=512 count=4 if=/dev/urandom of=/mnt/etc/luks_keyfile # chmod 400 /mnt/etc/luks_keyfile # cryptsetup luksAddKey /dev/sda2 /mnt/etc/luks_keyfile Enter any existing passphrase: (設定済みパスワードを入力して、キーファイルを登録)
まずミラーリストを更新。
# cd /etc/pacman.d/; mv mirrorlist mirrorlist.org; reflector | grep .jp > ./mirrorlist # vim ./mirrorlist (juniorjpdj.pl 鯖の行を全部削除、.jp ドメインだけにする)
あるいはこっちのほうが適切かも。
# cd /etc/pacman.d/; mv mirrorlist mirrorlist.org; reflector --country 'Japan' --age 24 --sort rate --save /etc/pacman.d/mirrorlist; # vim ./mirrorlist; vim /etc/pacman.conf (vimは内容確認のためだけのもの。後者は ColorとかのオプションをONしたいときにコメントアウトを解除する)
mirrorlist の確認が終わったら導入。( カーネルの更新が頻繁にあるので、linux のかわりに linux-lts を指定してもいいかもです)
# pacstrap /mnt base linux linux-firmware Linux本体を最小限だけ /mnt に放り込むおまじない + base Archの基本パッケージ + Linux Linux コア部分、ブート構成用 + linux-firmware 一般的なハードウェア関連
lvm2でSwapパーティションがsda2にあるなら省略する。
# dd if=/dev/zero of=/mnt/swap.img bs=1024 count=8388608 status=progress 8GiBのダミーファイル swap 用を生成。試験的に1GBにしたいなら下記。 # dd if=/dev/zero of=/mnt/swap.img bs=1024 count=1048576 status=progress # chmod 600 /mnt/swap.img; mkswap /mnt/swap.img; swapon /mnt/swap.img; free SWAPのパーミッションを適切に設定し、初期化して運用開始
# genfstab -U /mnt >> /mnt/etc/fstab /mnt 内部の fstab を適切に設定 # arch-chroot /mnt ルートが /mnt になる # passwd root (rootパスワードを設定 : HDD/SSD上のパーティション上で) # pacman -S grub efibootmgr lvm2 sudo openssh networkmanager nano vi vim dosfstools bash-completion 最小限の追加ツールをいれる (GRUB : ブート用 efibootmgr : EFIブート用でBIOSなら省略可能 lvm2 : LVM2未使用なら省略可能 sudo/openssh/networkmanager 遠隔アクセス用 nano vi vim はエディタ dosfstools は FAT16or32の初期化等用 bash-completion は補完機能用)
# nano /etc/default/grub ( GRUB_CMDLINE_LINUX を検索、"" の中に...) cryptdevice=/dev/sda2:cryptroot と追記する (キーファイルがある場合は、GRUB_CMDLINE_LINUX_DEFAULT 行を置換 (lvm次第では設定を変えないといけない)。ない場合は変更しない) GRUB_CMDLINE_LINUX_DEFAULT="quiet cryptdevice=/dev/sda2:cryptroot cryptkey=rootfs:/etc/luks_keyfile root=/dev/mapper/cryptroot" (sda2の直接暗号化の場合) GRUB_CMDLINE_LINUX_DEFAULT="quiet cryptdevice=/dev/sda2:cryptroot cryptkey=rootfs:/etc/luks_keyfile root=/dev/vg-system/root" (sda2にlvm2をしいている場合)
# nano /etc/mkinitcpio.conf (この行を) HOOKS=(base udev autodetect modconf block filesystems keyboard fsck) (こういうふうに追記する。block / filesystems のまんなかに encrypt lvm2 / lvm未使用なら lvm2は省略可能。 consolefont が存在する場合削除しても良い) HOOKS=(base udev autodetect modconf block encrypt lvm2 filesystems keyboard fsck) # 鍵ファイルがある場合は追記する、ない場合はなにもかかない。 FILES=(/etc/luks_keyfile) # mkinitcpio -p linux Image generation successful
# grub-install --target=i386-pc --recheck /dev/sda (MBRにgrub登録) # grub-mkconfig -o /boot/grub/grub.cfg (grubの設定ファイル書き出し)
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=boot (EFIにgrub登録) # grub-mkconfig -o /boot/grub/grub.cfg (grubの設定ファイル書き出し)
# useradd -m -g users -s /bin/bash arqtan; passwd arqtan # groupadd sudo; usermod -G sudo arqtan # visudo ( %sudo ALL=(ALL) ALL が # でコメントアウトされてるので有効にする)
# swapoff --all # exit (chroot 終了) # umount /mnt/boot; umount /mnt (アンマウント)
# cryptsetup close cryptroot (暗号ディスクのクローズ)
# shutdown -r now (ISOイメージを終了、HDD/SSDから再起動)