#author("2025-08-06T11:32:13+00:00","","") #author("2025-08-06T11:37:09+00:00","","") *Arch Linux メモ - Install [#aa119164] はい、インストールのメモです。基本的なことしかかいてないし、下手するとぐぐったほうが最適解あるかもね。 **自動インストール [#v547767a] 下記については手動インストールのメモです。 #highlightjs # archinstall これがisoイメージから起動できる場合、このほうが早い可能性があります。 **手動インストールメモ [#w2f9fefc] -EFI / BIOS / 暗号化有無に応じて統合して書き換えしました。 -手早く[[仮想PCにインストールするメモ>Tips/Lin/Arch/Inst/VM]]は別途。 --古いの ([[2022年ころ>Tips/Lin/Arch/Inst/2022]]) **ISOイメージ入手 [#rb8f106f] [[ArchWikiのインストールガイド:https://wiki.archlinux.jp/index.php/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89]] ([[英語版リンクはこちら:https://wiki.archlinux.org/title/Installation_guide]] ) から最新のISOイメージをダウンロードしよう。 CD/DVDのイメージは月初に作られてるので、たとえば2025年8月なら 2025.08.01 といったナンバリングのイメージがあるはず。 ***個人的に好きなミラー [#ufc40936] -[[jaist:https://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/]] がお気に入り。「北陸先端科学技術大学院大学」だそうな。 ***正当性検査 [#y9676a34] -Arch Linux 上からならこういうので検査可能です。(iso と同じ場所にある sig ファイルもダウンロードすること) #highlightjs $ pacman-key -v archlinux-version-x86_64.iso.sig **仮想環境/実機の設定 [#k24e1732] 仮想環境なら、DVD仮想ドライブにISOファイルを指定すればOK。実機なら、USBメモリ(ないしSDカード等のメディア)に焼き付けるのが適当でしょう。なんらかの Linux 環境 (もちろん Arch でもいいし、Ubuntu Debian 等でもよいです)で下記コマンドを実行するか KDE/GNOME付属のライタブルツールを使うなどし、USBメモリをブータブルにしましょう。 #highlightjs $ sudo dd bs=4M if=archlinux-202X.XX.01-x86_64.iso of=/dev/sdx conv=fsync oflag=direct status=progress ***仮想PCでEFI/BIOSブート環境 [#u7639eaf] -EFIにしたい場合、 VirtualBoxなら「システム」-「EFIを有効化」、VMware系ならvmxファイルに firmware="efi" なおまじない追加が必要です。 --VMwareの場合、みだりにEFIの設定保存ファイルを消さないようにしましょう。OSが起動しなくなります。 -仮想PCの場合、メモリは1~2GB程度とっておきましょう。768MB などの適当な数字でメモリがたりない場合、インストールイメージの起動に失敗します。 --インストール完了したら512MBでも起動はするようですが多めに越したことはありません。 **ArchISO ブート [#mfafc7ac] 設定が最小限すんだら、ISOイメージを起動しましょう。 #highlightjs # passwd root (パスワードを設定) # ip a (IPv4アドレスがでてくるのでメモ) ここまできたら、DVDのブートイメージに外部からsshでアクセスできるので、ssh でアクセスするなりなんなり。 ***最小限の設定 [#b91a860a] -キーボードが英語、時間がグリニッジ時刻なので訂正します。 #highlightjs # loadkeys jp106 (日本語キー設定 実機用 / ssh の場合は特に不要) # timedatectl set-ntp true; timedatectl set-timezone Asia/Tokyo; timedatectl status (NTP同期スタート + EFI/BIOS時刻を日本時間準拠に) ***パーティション確保 [#b5eb07e0] -ディスクの確認 #highlightjs # fdisk -l (ディスク構成確認: 仮想 PC の場合、 /dev/sda や /dev/vda 等が手つかずであるはず) -考え方 : ディスク (例えばsdaがターゲットとします) があったら、最初のパーティションを FAT32 の EFI に (1GB以上が適当)、残りの sda2 を ext4 のルートパーティションにするのが適当でしょう。 -EFI起動/GPTパーティションの場合 #highlightjs # gdisk /dev/sda Command (? for help): n Partition number (1-128, default 1): 1 First sector (34-268435422, default = 2048) or {+-}size{KMGTP}: (Enterだけ) Last sector (2048-268435422, default = 268433407) or {+-}size{KMGTP}: +1G Hex code or GUID (L to show codes, Enter = 8300): ef00 Command (? for help): n Partition number (2-128, default 2): 2 First sector (34-268435422, default = 2099200) or {+-}size{KMGTP}: (Enterだけ) Last sector (2099200-268435422, default = 268433407) or {+-}size{KMGTP}: (Enterだけ) Hex code or GUID (L to show codes, Enter = 8300): 8300 ※LVMを用いる場合は 8e00 といれること。 Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sda. The operation has completed successfully. # -BIOS起動/MBRパーティションの場合 #highlightjs #fdisk /dev/sda Welcome to fdisk (util-linux 2.41.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS (MBR) disklabel with disk identifier 0xdddddddd. Command (m for help): o Created a new DOS (MBR) 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): p (以下この部分は省略するが、MBRはHDD/SSD上に最大4パーティションしかもてないことを留意すること) Using default response p. Partition number (1-4, default 1): 1 First sector (2048-268435455, default 2048): (Enter) Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-268435455, default 268435455): +1G Created a new partition 1 of type 'Linux' and of size 1 GiB. Command (m for help): t Selected partition 1 Hex code or alias (type L to list all): ef hanged type of partition 'Linux' to 'EFI (FAT-12/16/32)'. Command (m for help): n ( p 2 というように入力していく) First sector (2099200-268435455, default 2099200): (Enter) Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-268435455, default 268435455): (Enter ないし +120G のように明示指示) Created a new partition 2 of type 'Linux' and of size 127 GiB. Command (m for help): t (2 を選んで、もしもLVMにするなら 8e を入力しておく。ベタおきなら 83 のままでよい) Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. # ***パーティション初期化とマウント [#u7df660f] -暗号化しない場合 --ベタ展開 #highlightjs # mkfs.vfat -F32 -n EFI /dev/sda1; mkfs.ext4 /dev/sda2 sda1 は FAT32, sda2 は ext4。 # mount /dev/sda2 /mnt; mkdir -p /mnt/boot; mount /dev/sda1 /mnt/boot マウントを一気に。 # mount | grep /mnt これでマウントは完了。 # df ディスクの状況を確認する。 --sda2 を lvm にする #highlightjs # pvcreate /dev/sda2 // pvs,pvscan,pvdisplay で確認できる。 # vgcreate vgarch /dev/sda2 // vgs,vgscan,vgdisplay で確認できる。 # lvcreate --size 48G vgarch -n root # lvcreate --size 4G vgarch -n swap # lvcreate -l 100%FREE vgarch -n home // lvs,lvscan,lvdisplay で確認できる。 # mkswap /dev/vgarch/swap //スワップ形成 (lvcreateしてなければ省略可) # mkfs.ext4 /dev/vgarch/root; mkfs.ext4 /dev/vgarch/home; mkfs.vfat -F32 -n EFI /dev/sda1; //マウントを一気に # mount /dev/vgarch/root /mnt; mkdir -p /mnt/boot; mount /dev/sda1 /mnt/boot; mkdir -p /mnt/home; mount /dev/vgarch/home /mnt/home //swapがある場合だけ。 # swapon /dev/vgarch/swap # mount | grep /mnt これでマウントは完了。 # df ディスクの状況を確認する。 -暗号化する場合 --共通実施 #highlightjs # 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: --ベタ展開 #highlightjs # mkfs.ext4 /dev/mapper/cryptroot (sda2 は cryptroot に転写されるのでそこをLinux ジャーナリングファイルシステムで初期化) # mkfs.vfat -F32 -n EFI /dev/sda1 ブートパーティションは FAT32。 # mount /dev/mapper/cryptroot /mnt; mkdir -p /mnt/boot; mount /dev/sda1 /mnt/boot (sda2 のかわりに暗号化済みのマッピングされたデバイスをマウント) # mount | grep /mnt これでマウントは完了。 # df --暗号化してその中にlvmを設定 #highlightjs # pvcreate /dev/mapper/cryptroot // pvs,pvscan,pvdisplay で確認できる。 # vgcreate vgarch /dev/mapper/cryptroot // vgs,vgscan,vgdisplay で確認できる。 # lvcreate ... (以下、sda2 とまったく同じなので省略するw) ***pacman / pacstrap で基本イメージをいれる [#q953df10] #highlightjs # cat /etc/pacman.d/mirrorlist | cat <(curl -s "https://archlinux.org/mirrorlist/?country=JP" | sed -e 's/^#Server/Server/') - > /etc/pacman.d/mirrorlist (jpのサーバー情報をもぎとってきてコメントアウトを自動解除する) # vim /etc/pacman.d/mirrorlist; vim /etc/pacman.conf (設定ファイルを確認。pacman.confに関しては Color のコメントアウト解除するとカラフルになる) # pacstrap /mnt base linux linux-firmware Linux本体を最小限だけ /mnt に放り込むおまじない + base Archの基本パッケージ + linux Linux コア部分、ブート構成用 (linux-lts にしてもよき) + linux-firmware 一般的なハードウェア関連 慣れてきたら pacman -S するであろうものは最初に放り込むようになる。例として下記のかんじ。(yay まで一気にいけますよ) 通常カーネル # pacstrap /mnt base base-devel linux linux-headers linux-firmware grub os-prober efibootmgr lvm2 sudo openssh networkmanager nano vi vim dosfstools bash-completion git go zsh grml-zsh-config zsh-completions zsh-syntax-highlighting zsh-autosuggestions LTSカーネル # pacstrap /mnt base base-devel linux-lts linux-lts-headers linux-firmware grub os-prober efibootmgr lvm2 sudo openssh networkmanager nano vi vim dosfstools bash-completion git go zsh grml-zsh-config zsh-completions zsh-syntax-highlighting zsh-autosuggestions ***パーティション構成保存とか [#u5fd6a7c] #highlightjs # genfstab -U /mnt >> /mnt/etc/fstab /mnt 内部の fstab を適切に設定 //暗号化ドライブの自動解除設定はここでやる (脆弱になるので注意) # 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: (設定済みパスワードを入力して、キーファイルを登録) //以下共通実施。 # arch-chroot /mnt ルートが /mnt になる # passwd root (rootパスワードを設定 : HDD/SSD上のパーティション上で) # chsh root (root のシェルを変更 bash のままでよければ実行不要 /bin/zsh などにできる) # pacman -S grub efibootmgr lvm2 sudo openssh networkmanager nano vi vim dosfstools bash-completion もしも pacstrap でいれてないのであれば、ここで最小限の追加ツールをいれる efibootmgr : EFIブート用のため BIOS なら省略可能 lvm2 : LVM2未使用なら省略可能 //実機なら下記も実施する、仮想PCなら省略してよい intel実機 # pacman -S intel-ucode amd 実機 # pacman -S amd-ucode ***LVM / crypt の反映 [#r5f87334] -LVM / 暗号化実施してない場合はここは省略可能 #highlightjs # nano /etc/mkinitcpio.conf (この行を) HOOKS=(base udev autodetect modconf block filesystems keyboard fsck) (こういうふうに追記する。block / filesystems のまんなかに encrypt lvm2 / 暗号化してないなら encrypt を、lvm未使用なら lvm2 を省略可能。) HOOKS=(base udev autodetect modconf block encrypt lvm2 filesystems keyboard fsck) (暗号化の自動解除をしたい場合のみ設定変更する FILES=()を下記に変更) FILES=(/etc/luks_keyfile) 通常カーネル # mkinitcpio -p linux LTS カーネル # mkinitcpio -p linux-lts Image generation successful //暗号化してる場合はそれに加えて以下も。 # 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/vgarch/root" (sda2にlvm2をしいている場合) ***ブートローダの登録 [#f3f2c187] -GRUB例。systemdのやり方もあるけど面倒なのでここでは省略。 #highlightjs BIOS系 # grub-install --target=i386-pc --recheck /dev/sda EFI 系 # grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=archboot 共通実施 # grub-mkconfig -o /boot/grub/grub.cfg rEFInd の場合のみ rEFInd系 # pacman -S refind; refind-install ***ユーザーを登録 [#f17aea78] -asaasa , arqtan , yayuser の 3 id を登録 (いずれも sudo 権限ありとする) --sudoグループ作成 (共通) #highlightjs # groupadd sudo --bash #highlightjs # useradd -m -g users -s /bin/bash asaasa; usermod -aG sudo asaasa; passwd asaasa # useradd -m -g users -s /bin/bash arqtan; usermod -aG sudo arqtan; passwd arqtan # useradd -m -g users -s /bin/bash yayuser; usermod -aG sudo yayuser; passwd yayuser --zsh (pacstrap や pacman で事前導入中に限る) #highlightjs # useradd -m -g users -s /bin/zsh asaasa; usermod -aG sudo asaasa; passwd asaasa # useradd -m -g users -s /bin/zsh arqtan; usermod -aG sudo arqtan; passwd arqtan # useradd -m -g users -s /bin/zsh yayuser; usermod -aG sudo yayuser; passwd yayuser -sudo権限付与 #highlightjs # visudo ( %sudo ALL=(ALL) ALL が # でコメントアウトされてるので有効にする) ***あとしまつ [#oc7b344e] #highlightjs # exit (または Ctrl+D で「arch-chroot」から抜ける) # shutdown -h now (シャットダウンして終了、DVD/USBを引き抜くなどしてSSD/HDDから起動するようにしてブートしてみよう!)