Archlinuxのインストール
Archlinuxが壊れた
ansibleで環境構築を自動化勉強していたらSDDが壊れたので ひさしぶりにArchlinuxをインストールした。
ちなみにArchlinuxは使い始めて3年目ほど。サーバでも運用中。 安定性は悪くない。ただ、理解して使わないとなかなか大変。
重視しているのは以下
- パッケージのバージョンを固定できる知識
- バックアップとリストアできる知識
さて、壊れたOSをUSB起動できるarchlinuxからマウントし、 インストール済のパッケージリストを取得しておく。 (今回の再インストールでは使わないけど思い出すために閲覧した)
pacman -Qq --dbpath /mnt/var/lib/pacman
ちなみにインストールとは?
最近、ボタンを押していってインストールするものばかりで、インストールとは何かわからない人は増えていると思うので、解説。
パーティションの分割 ハードディスクを使用用途に分けて分割する。 主に、起動専用+すべてのファイルを格納する場所の2つ。 そして、swapというメモリをサポートする領域を必要に応じて作る。 それ以外にも、/home /varなど用途によっては分ける場合もある
OSをインストールする これは、作成されたパーティションにOSを配置しているだけ。
ブートローダをインストールする ハードディスクに格納されたOSは、PCが起動されても起動することができないので、 ブートローダと呼ばれる、特殊なプログラムをインストールする必要がある。 PCが起動されると、まず、ブートローダが起動され、ブートローダがOSを起動するからだ。
インストール
- yaourt
- AURからのパッケージをインストールできるパッケージ管理ツール
- powerpill
- pacmanのダウンロードを並列化する
パーティション
こういう場合に便利なコマンド |コマンド|機能| |:--|:--| |lsblk|接続されているディスクを表示する|
作りたい構成は以下
パーティション | サイズ | フォーマット | マウントポイント |
---|---|---|---|
/dev/sda1 | 10G | swap | |
/dev/sda2 | 512M | vfat | /boot |
/dev/sda3 | 残り全部 | ext4 | / |
gdisk /dev/sda > o <-- 新しいGPTを作成 > n <-- 開始セクタはデフォルトでEnter <-- 終了セクタは+10G > n <-- 開始セクタはデフォルトでEnter <-- 終了セクタは+512M <-- ファイルシステムはEF00 > n <-- 開始セクタはデフォルトでEnter <-- 終了セクタは+512M <-- ファイルシステムは8200 > w <-- 保存
オプション | 機能 |
---|---|
o | 初期化 |
n | 新パーティションを作成 |
w | 保存 |
ファイルシステムの構築
mkswap /dev/sda1 swapon /dev/sda1 mkfs.vfat -F32 -n EFI /dev/sda2 mkfs.ext4 -L arch-root /dev/sda3
基礎システムの構築
# マウントする mount /dev/sda3 /mnt # ブート用のマウントポイント mkdir /mnt/boot # ブート用のマウント mount /dev/sda2 /mnt/boot # 基本システムのインストール pacstrap /mnt base # fstabのコピー genfstab -U -p /mnt | tee /mnt/etc/fstab
ブートローダのインストール
pacman -S grub dosfstools efibootmgr grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck --debug # USBにインストールする場合は --removableをつける grub-mkconfig -o /boot/grub/grub.cfg
再起動して起動したArchlinuxの中で最初にやること
ここから先は僕の個人的な意見がたくさんですが、参考になればと。
メインユーザを作成する
userは任意で変えてください
# sudoをインストールする pacman -S sudo # -u ユーザIDを指定 # -m ユーザディレクトリを作成 useradd -u 15000 -m user # 作成したユーザをパスワード無しsudo echo "user ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/user # 作成したユーザがsudoをしてもSSH_AUTH_SOCKがつながるようにする echo "Defaults:user env_keep += SSH_AUTH_SOCK" >> /etc/sudoers.d/user
以下作業はuserで行う
パッケージマネージャの管理
ミラーリストを最新にする
# ミラー取得パッケージをインストール sudo pacman -S reflector # ミラーリストのバックアップを取る cp /etc/pacman.d/mirrorlist{,.backup} # ミラーリストを更新する # --country 国を指定 # --sort ソートする(rateで速度の早いミラー順にしてくれる) # --save 保存先 reflector --verbose --country 'Japan' --sort rate --save /etc/pacman.d/mirrorlist # パッケージデータベースの更新とソフトウェアの更新 pacman -Syu
yaourtのインストール
どうしてもAURのパッケージを使う必要は出てくるので以下のようにリポジトリを追加
/etc/pacman.confを編集
# yaourt [archlinuxfr] SigLevel = Never Server = http://repo.archlinux.fr/$arch # zfs [archzfs] Server = http://archzfs.com/$repo/x86_64 # powerpill [xyne-any] SigLevel = Required Server = http://xyne.archlinux.ca/repos/xyne
# base-develはyaourtでインストールするときに使われるビルドツールが含まれる場合が多い pacman -S yaourt base-devel customizepkg rsync yaourt -Syu
powerpillのインストール
yaourt -S --noconfirm powerpill
/etc/yaourtrcに以下を追記して、powerpillを使用するようにする
PacmanBin='/usr/bin/powerpill'
良く使うパッケージのインストール
パッケージ検索プログラム
pkgfile 探しているプログラム名で含まれるパッケージを教えてくれるので便利
yaourt -S pkgfile sudo pkgfile --update
# --neededをつけると重複したパッケージはスキップされる # --noconfirmをつけると色々聞かれない(要注意!でも楽) yaourt -S --needed --noconfirm \ # よくダウンロードするときに使う git wget curl rsync \ # ターミナルを便利にしてくれる tmux \ # zshは便利 zsh zsh-completions \ # sshに必要 openssl openssh
EDITOR
エディターはneovimという方用にnvimのインストール
# --neededをつけると重複したパッケージはスキップされる # --noconfirmをつけると色々聞かれない(要注意!でも楽) yaourt -S --needed --noconfirm python python-pip neovim mkdir -p ~/.config touch -p ~/.config/nvim.init.vim sudo pip install --upgrade neovim