#author("2025-08-06T10:25:56+00:00","","")
#author("2025-08-06T10:26:39+00:00","","")
*仮想PCにArchLinuxをインストール (VirtualBox v7編) [#kdaa2245]

-基本的にインストールメモの最小限バージョンとなります。
-仕様としてはEFI/BIOS選択可能、ディスクはLVM2採用の暗号化なし。(ホストのディスクが暗号化されていると想定)

**ArchISO起動 [#g410dc14]

***パスワード設定 [#y9f570b9]

-パスワードを設定する : # passwd root
-ssh で rootで接続。
--KVM / VMware の場合、 ip addr で確認できた IP アドレスに root at 192.168.XXX.YYY 宛に接続
--VirtualBoxの場合、SSHクライアントで localhost:2222 につなぎにいく。

***時間のタイムゾーン設定、ディスクのパーティション確保 [#z8c5a9bb]

-NTP有効、東京(JST)設定を一気に。
#highlightjs
 # timedatectl set-ntp true; timedatectl set-timezone Asia/Tokyo;  hwclock --systohc;timedatectl status
-ディスクを確認。/dev/sda が見えるはず
#highlightjs
 # fdisk -l
-パーティション確保
#highlightjs
 BIOS : # fdisk /dev/sda
 EFI  : # gdisk /dev/sda
 
 EFI の場合、以下のようにしてはしょってもいい。
#highlightjs
 # sgdisk -z /dev/sda
 # sgdisk -n 1:0:+1G -t 1:ef00 -c 1:"EFI System" /dev/sda
 # sgdisk -n 2:: -t 2:8e00 -c 2:"Linux filesystem" /dev/sda
--oコマンドでパーティションテーブルを作る
--nで /bootにあたるパーティションをつくる(サイズ 1GB)
 パーティション番号は BIOS : 0c (Win95VFAT) / EFI : ef00 (EFI)
--nでLVM2パーティションをつくる (サイズは残り全部)
 パーティション番号は BIOS : 83 (Linux) / EFI : 8e00 (Linux LVM)
--w でパーティションを確定してディスク編集コマンドを抜ける
-LVM2を設定する (/dev/sda2 に対して)
#highlightjs
 # pvcreate /dev/sda2; vgcreate vgsysarch /dev/sda2; vgs
 # lvcreate --size 64G  vgsysarch -n root;  lvcreate -l 100%FREE vgsysarch -n home; lvs
// # lvcreate --size 64G  vgsysarch -n root; lvcreate --size 8G  vgsysarch -n swap; lvcreate -l 100%FREE vgsysarch -n home; lvs
-ファイルシステム作る
#highlightjs
   # mkfs.ext4 /dev/vgsysarch/root; mkfs.ext4 /dev/vgsysarch/home; mkfs.vfat -F32 -n EFI /dev/sda1;
// # mkfs.ext4 /dev/vgsysarch/root; mkfs.ext4 /dev/vgsysarch/home; mkswap /dev/vgsysarch/swap; mkfs.vfat -F32 -n EFI /dev/sda1;
-マウント有効化
#highlightjs
   # mount /dev/vgsysarch/root /mnt;mkdir -p /mnt/boot; mount /dev/sda1 /mnt/boot;mkdir -p /mnt/home; mount /dev/vgsysarch/home /mnt/home; df -h -T;free -h
//-マウントとスワップ有効化
// # mount /dev/vgsysarch/root /mnt;mkdir -p /mnt/boot; mount /dev/sda1 /mnt/boot;mkdir -p /mnt/home; mount /dev/vgsysarch/home /mnt/home; swapon /dev/vgsysarch/swap; df -h -T;free -h

***pacman系の準備と投入 [#j9941f19]

-ミラーリストを日本だけのものに更新
#highlightjs
 # cat /etc/pacman.d/mirrorlist | cat <(curl -s "https://archlinux.org/mirrorlist/?country=JP" | sed -e 's/^#Server/Server/') - > /etc/pacman.d/mirrorlist
-ミラーリストとpacman設定確認。
#highlightjs
 # vim /etc/pacman.d/mirrorlist; vim /etc/pacman.conf
 (pacman.confは ColorとパラレルDL=5を有効とする)
-インストール開始
--yayまで一気にいくために多めに指定しています。
#highlightjs
 BIOS : # pacstrap /mnt base base-devel linux linux-firmware linux-headers grub os-prober            lvm2 sudo openssh networkmanager nano vi vim dosfstools bash-completion git go zsh grml-zsh-config zsh-completions zsh-syntax-highlighting zsh-autosuggestions  
 EFI  : # pacstrap /mnt base base-devel linux linux-firmware linux-headers 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
-パーティション構成を保存
#highlightjs
 # genfstab -U /mnt >> /mnt/etc/fstab

***chrootして仕上げ [#vaced461]

-chrootとパスワード設定
#highlightjs
 # arch-chroot /mnt
 # passwd root
 # chsh root
 ( /bin/zsh にシェルを入れ替え)
--mkinitcpio 編集と再設定
#highlightjs
 # nano /etc/mkinitcpio.conf 
 (この行を)
   HOOKS=(base udev autodetect modconf block filesystems keyboard fsck)
 (こういうふうに追記する。block / filesystems のまんなかに lvm2を指定)
   HOOKS=(base udev autodetect modconf block lvm2 filesystems keyboard fsck)
 
 (ucodeいれるときに走るので略してもいいかも?) # mkinitcpio -p linux
 Image generation successful
-入れ忘れ補完 (pacstrapが長くなりすぎるので...)
#highlightjs
 Intel : # pacman -S intel-ucode
 AMD   : # pacman -S amd-ucode
-ブートローダー (GRUB or systemd) を投入
--GRUB の場合
#highlightjs
 BIOS : # grub-install --target=i386-pc --recheck /dev/sda; grub-mkconfig -o /boot/grub/grub.cfg
 EFI  : # grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=boot; grub-mkconfig -o /boot/grub/grub.cfg
--refind
---EFI, grub or systemd が動いていること前提の付け足し。
#highlightjs
 # pacman -S refind; refind-install
--systemd の場合 (EFIブート限定)
#highlightjs
 # bootctl install
 # nano /boot/loader/loader.conf
 -----(なかみ)-----
 default arch
 editor  no
 
 ---(blkid は適切な方を実行)
 # blkid -s PARTUUID /dev/sda2 > /boot/loader/entries/arch.conf
 # blkid -s UUID /dev/mapper/vgsysarch-root > /boot/loader/entries/arch.conf
 
 
 # nano /boot/loader/entries/arch.conf
 -----(なかみ ***** のところはblkidで吐き出された設定を転用)-----
 title   Arch Linux
 linux   /vmlinuz-linux
 initrd  /amd-ucode.img
 initrd  /initramfs-linux.img
 options root=UUID=********-****-****-****-************ rw
 
 ( options root=PARTUUID=********-****-****-****-************ rw  のばあいもあります)
 
 # systemctl enable systemd-boot-update
-sudo権限をもつ一般ユーザーを登録 (便宜上 asaasa arqtan yayuser とでもしてます)
#highlightjs
 # groupadd sudo
 # useradd -m -g users -s /bin/zsh asaasa;  passwd asaasa;  usermod -aG sudo asaasa
 # useradd -m -g users -s /bin/zsh arqtan;  passwd arqtan;  usermod -aG sudo arqtan
 # useradd -m -g users -s /bin/zsh yayuser; passwd yayuser; usermod -aG sudo yayuser
 # visudo
( %sudo ALL=(ALL) ALL  が # でコメントアウトされてるので有効にする)

***再起動 [#pc855a1b]
-chrootをぬける
#highlightjs
 # exit
-アンマウントとスワップオフ
#highlightjs
 # swapoff --all; umount -R /mnt
-シャットダウン
#highlightjs
 # shutdown -h now

**インストールし終わった Arch Linux で起動する [#cf99dd75]
***インストール直後の 1stconfig [#u6c0cb44]

-rEFInd (EFI)の場合、vmlinuzからは起動失敗するのでDELキーで削除し、真ん中のペンギンから起動する。
-実環境にて rootでログイン、ネットワークマネージャとsshdを有効にする
#highlightjs
 # loadkeys jp106
 # systemctl enable NetworkManager sshd
 # systemctl start  NetworkManager sshd
 #  vim /etc/pacman.conf
 (ColorとパラレルDLのコメントアウト解除)
 # pacman -Syu
 (なにもないことを確認)
-ロケールを設定し保存する
#highlightjs
 # vim /etc/locale.gen
 (en_US.UTF-8 ja_JP.UTF-8のコメントアウト解除)
  //代替コマンド
     # sed -i -e 's/#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/g' /etc/locale.gen
     # sed -i -e 's/#ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/g' /etc/locale.gen
     # grep -E '^(en_US|ja_JP)\.UTF\-8 UTF\-8' /etc/locale.gen
 # locale-gen
-sshでユーザーでログイン
#highlightjs
 $ sudo -i
 (rootになる)
-タイムゾーン保存
#highlightjs
 # timedatectl set-ntp true; timedatectl set-timezone Asia/Tokyo;hwclock --systohc; timedatectl status
-ロケールならびにキー配置等を保存
#highlightjs
 # echo LANG=en_US.UTF-8 >> /etc/locale.conf
 # echo -e "KEYMAP=jp106\nFONT=lat9w-16" >> /etc/vconsole.conf
-ホスト名保存 (APFの仮想PCのArchを意味する例がapf-archvmというかんじ)
#highlightjs
 # hostnamectl set-hostname apf-archvm
-rootを抜けてyayをいれる
#highlightjs
 # exit
 $ git clone https://aur.archlinux.org/yay.git; cd yay; makepkg -si; cd ~;rm -rf yay
-man コマンドを投入する
#highlightjs
 $ yay -S man man-pages-ja

***zram を永続的に利用する [#r3f8294e]
[[参考情報(ArchWiki):https://wiki.archlinux.jp/index.php/Zram#udev_.E3.83.AB.E3.83.BC.E3.83.AB.E3.82.92.E4.BD.BF.E3.81.86]]

-rootになる
#highlightjs
 $ sudo -i
-zram を有効にする
#highlightjs
 # nano /etc/modules-load.d/zram.conf
 zram
-udevルールを作成 (4G の部分はメモリ実態に応じて増減すること)
#highlightjs
 # nano /etc/udev/rules.d/99-zram.rules
 ACTION=="add", KERNEL=="zram0", ATTR{comp_algorithm}="zstd", ATTR{disksize}="4G", RUN="/usr/bin/mkswap -U clear /dev/%k", TAG+="systemd"
-fstabを編集
#highlightjs
 # nano /etc/fstab
 
 #--- 既存のswapパーティションはコメントアウトする
 #追加
 #zram swap
 /dev/zram0 none swap defaults,discard,pri=100 0 0
-再起動
#highlightjs
 # reboot
 -----ログインして、下記コマンドで確認
 $ free -h
 $ zramctl

トップ   差分 履歴 リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS