🚀

Arch Linux install 備忘録

2024/11/10に公開

参考にさせていただいた記事

https://qiita.com/Hayatann/items/09c2fee81fcb88d365c8
https://qiita.com/fate_fox/items/c23afa89d93c0bcb50c7
https://zenn.dev/ress/articles/322bcf4799a266

ネットワークの接続

システムクロックの更新

# timedatectl status

パーティション

# fdisk -l
fdisk /dev/nvme0n1

↑使いにくかった

fdisk /dev/nvme0n1

cgdisk /dev/nvme0n1

最終的にこちらを使った

フォーマット

# mkfs.ext4 /dev/nvme0n1p2
or
# mkfs.btrfs /dev/nvme0n1p2

どちらでも大差無さそうですが、SSD なら btrfs という記事を見たので信じてこちらを選択

# mkswap /dev/nvme0n1p3
# mkfs.fat -F 32 /dev/nvme0n1p1

ファイルシステムのマウント

mount /dev/nvme0n1p2 /mnt

mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
swapon /dev/nvme0n1p3

いろいろ

ほぼこちらの通りにしました
https://qiita.com/Hayatann/items/09c2fee81fcb88d365c8#必要なものをいろいろインストール

ミラーリストは Arch Wiki を見る限りインターネット接続してあれば勝手によしなにされているらしいので一旦デフォルトで行きます(必要なら後で更新する)

  1. pacstrap で必要なツールをインストール
pacstrap -K /mnt base base-devel linux linux-firmware vim zsh zsh-completions

開発用のツールパッケージ base-devel だけ追加しています
vim, zsh 周りは使いたいのでそのまま

  1. fstab の作成
genfstab -U /mnt >> /mnt/etc/fstab
  1. chroot
arch-chroot /mnt

echo $SHELL で現在のシェルが bash だったので zsh に変更

zsh
  1. タイムゾーン
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

/etc/adjtime を生成

hwclock --systohc
  1. ローカライゼーション

/etc/locale.gen を編集して、en_US.UTF-8 UTF-8, ja_JP.UTF-8 UTF-8 の行をアンコメントして、以下のコマンドで locale を作成する

locale-gen

locale.conf を以下のように作成する

echo "LANG=en_US.UTF-8" > /etc/locale.conf
  1. pacman の設定

/etc/pacman.conf/ を編集する

Misc options を以下のように修正(コメントアウトしているものは書いていません)

# Misc options
Color
CheckSpace
VerbosePkgLists
ParallelDownloads = 5
ILoveCandy
DownloadUser = alpm

terminus-font についてよく知らなかったので調べてみたけど、等幅フォントみたいだし特別なこだわりは無いので一旦採用

pacman -S terminus-font
echo "FONT=ter-128n" > /etc/vconsole.conf
  1. ホスト名の設定
echo "hogehoge" > /etc/hostname

/etc/hosts を以下のように編集

127.0.0.1 localhost
::1 localhost
127.0.1.1 hogehoge.localdomain hogehoge
  1. パスワード
passwd
  1. grub の設定

efibootmgr: UEFIブートの表示や管理コマンド
dosfstools: mkfs.fat および fsck.fat ユーティリティが含まれ、 それぞれ MS-DOS FAT ファイルシステムの作成および検査を実行
os-prober: mtab を読み込んで、起動可能なエントリを検索すべき場所を特定
mtools: MS-DOSのファイルを操作するためのツール

pacman -S grub efibootmgr dosfstools os-prober mtools

--efi-directory=/boot のパスはEFIパーティションをマウントしているパスを指定(chroot で /mnt をroot にしているため、/boot でOK)

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB_UEFI
grub-mkconfig -o /boot/grub/grub.cfg

ucode は使うプロセッサに応じて変えてください(AMDなら amd-ucode

pacman -S intel-ucode
grub-mkconfig -o /boot/grub/grub.cfg
  1. rEFInd を入れる

grub よりモダンなブートローダーで、grub との共存も出来る

pacman -S refind
refind-install
  1. ネットワーク設定
pacman -S networkmanager wpa_supplicant dialog iw iwd dhcpcd netctl
systemctl enable NetworkManager
  1. reboot

exit -> exit-> reboot

reboot 後、rEFInd の画面 EFI/GRUB_UEFI/grubx64.efi を選択して起動

その後 root ユーザーのパスワードを入力して入る

カスタマイズ

カスタマイズもこちらの記事を参考にしました。
https://qiita.com/Hayatann/items/09c2fee81fcb88d365c8#カスタマイズ

  1. ネットワーク設定
  2. アップデート
  3. ユーザー追加とsudo
  4. AURヘルパーの導入
$ sudo pacman -S --needed git base-devel rustup
$ rustup default stable

$ git clone https://aur.archlinux.org/paru.git
$ cd paru
$ makepkg -si

  1. [デフォルトシェルの設定](https://qiita.com/Hayatann/items/09c2fee81fcb88d365c8#デフォルトシェルの設定0
$ chsh -s $(which zsh)
$ sudo timedatectl set-ntp true

  1. GUIを入れよう
$ paru -S hyprland-nvidia kitty gtk3 waybar-hyprland-git mpd ttf-font-awesome noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-firge ttf-fira-code ttf-firacode-nerd pipewire neovim gdm
error: could not find all required packages:
    hyprland-nvidia (target)
    waybar-hyprland-git (target)

公式 に従って以下のように修正

hyprland-nvidia -> hyprland

waybar はどうやら hyprland にデフォルトで含まれるようになったぽい?(公式
後で設定はしてみる

$ sudo systemctl enable gdm.service
$ sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
$ Hyprland
  1. [各種ソフトのインストール]
$ paru -S firefox-developer-edition rofi-wayland hyprpaper discord zed-git nemo flameshot vlc pipewire-pulse

  • firefox-developer-edition: ブラウザ
  • rofi: rofi は wayland で使うためには対応した fork 先を使う必要があるらしい。今は rofi-wayland という名前で extraリポジトリ にある
  • hyprpaper: 壁紙制御
  • discord: discord
  • zed-git: 最近使っているテキストエディタ
  • nemo: ファイルマネージャ
  • flameshot: スクーリーンショット取るやつ
  • vlc: メディアプレイヤー
  • pipewire-pulse: bluetooth オーディオを使えるようにする
  1. トラックパッドの設定
  2. xwaylandの設定
    10.自動画面ロックとサスペンド
    公式wiki

swayidle, swaylock を入れる

paru -S swayidle swaylock

以下のスクリプトを作成

swayidle -w timeout 300 'swaylock -f -c 000000' \
            timeout 600 'systemctl suspend' \
            before-sleep 'swaylock -f -c 000000' &

呼び出し

...
exec-once = ~/.config/hypr/scripts/sleep.sh
...
  1. 自分用の設定いろいろ
    11. [dotfiles](https://github.com/ymidori/dotfiles
    12. peco, ghq install

Discussion