新たなPCが二つ手に入ったんでArchLinuxをインストールをインストールしました。 コマンド操作もだいぶ慣れてきたんで初期に比べるとずいぶん早くインストールすることができるようになりましたが、 それでも手間が掛かることには間違いないです。 なので今回はシェルスクリプトの勉強も兼ねて、ArchLinuxを自動でインストールするシェルスクリプトを組んでみました。
#!/bin/bash
## パーティション分け(/とswapのみ)
parted -s -a optimal /dev/sda -- mklabel msdos mkpart primary 2048s 終了セクタ set 1 boot on
parted -s -a optimal /dev/sda -- mkpart primary 開始セクタ 終了セクタ set 2
## フォーマット
mkfs.ext4 -j /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mount /dev/sda1 /mnt
## baseとbase-develのインストール(初めてで良い書き方がわからなかったので強引な方法でしか書けませんでした)
A=`grep -e "jpn" -n /etc/pacman.d/mirrorlist|sed -e 's/:.*//g'`
B=`sed -n "$A"p /etc/pacman.d/mirrorlist`
cat /etc/pacman.d/mirrorlist > /etc/pacman.d/mirrorlist2
echo $B > /etc/pacman.d/mirrorlist
cat /etc/pacman.d/mirrorlist2 >> /etc/pacman.d/mirrorlist
pacstrap /mnt base base-devel
## localeの設定
genfstab -U -p /mnt >> /mnt/etc/fstab
P="arch-chroot /mnt"
echo en_US.UTF-8 UTF-8 > /mnt/etc/locale.gen
echo ja_JP.UTF-8 UTF-8 >> /mnt/etc/locale.gen
$P localegen
$P ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$P hwclock --systohc --utc
##その他
$P echo T20 > /etc/hostname
$P systemctl enable dhcpcd.service
$P pacman -Sy
$P pacman -Sy --noconfirm intel-ucode
$P pacman -Sy --noconfirm grub
$P grub-install --target=i386-pc --recheck /dev/sda
$P grub-mkconfig -o /boot/grub/grub.cfg
exit
umount -R /mnt
reboot
最初は普通にインストールするときと同じようにchrootでbashを起動する記述にしていたんですが、
そうすると途中で動作が途切れてしまうため調べてみて他の人のものを参考にさせていただきました。
初めて長めのシェルスクリプトを書いた気がしますが、条件分岐とかは入れてないので初心者の私でも結構書きやすかったと思います。
なんだかんだ言って一番手こずったのが改行コードですかね、trコマンドの書式が間違っていたのか中身が全部消えることが2回ほどあって心が一瞬折れかけましたがなんとかなりました。
次はGUI導入とか日本語化とかもスクリプトで組んでみたいですね。