先日の記事の内容をシェルスクリプト化したものを作成しました。もう構築しちゃったので使い道はあんまりないんですけどね :-P

使い方

curlやscpなどでスクリプトを転送して実行します。
実行時は第一引数にホスト名を、第二引数にrootパスワードを指定して下さい。※流用してお試しする場合は必ず内容を理解してやってください。ご利用は自己責任で。。。

ざっくりとした解説

  • VMWare PlayerのゲストOS用に作成しました。HDDは1つ、サイズは10GBで作成しています。
  • パーティションサイズやファイルシステムなどはスクリプトに埋め込みです。流用する場合は適宜変更してください。
  • 一度きり使えればいいのでエラー処理などはありません。(失敗したら最初からやり直せばいいので…)

セットアップスクリプト

NEWHOSTNAME=$1
ROOTPASSWD=$2
# Keymap
loadkeys jp106
# Setup HDD
parted /dev/sda mklabel gpt
parted /dev/sda mkpart primary btrfs 1049KB 8591MB
parted /dev/sda mkpart primary linux-swap 8591MB 10.7GB
mkfs.btrfs /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
# Install Base system
mount /dev/sda1 /mnt
grep jp /etc/pacman.d/mirrorlist > mirrorlist
cat /etc/pacman.d/mirrorlist >> mirrorlist
cp mirrorlist /etc/pacman.d/mirrorlist
yes "" | pacstrap -i /mnt base base-devel
# fstab
genfstab -p /mnt >> /mnt/etc/fstab
# Create Setup Script on chroot environment
cat <<++EOS>>/mnt/setup.sh
#!/bin/bash
echo $NEWHOSTNAME >> /etc/hostname
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
echo en_US.UTF-8 UTF-8 >> /etc/locale.gen
echo ja_JP.UTF-8 UTF-8 >> /etc/locale.gen
locale-gen
echo LANG=en_US.UTF-8 >> /etc/locale.conf
echo KEYMAP=jp106 >> /etc/vconsole.conf
echo root:$ROOTPASSWD | chpasswd
## Network
systemctl enable dhcpcd.service
## boot loader
yes | pacman -S gptfdisk
yes | pacman -S syslinux
syslinux-install_update -iam
sed -i 's%root=/dev/sda[0-9]%root=/dev/sda1%g' /boot/syslinux/syslinux.cfg
++EOS
chmod +x /mnt/setup.sh
# Setup chroot environment
arch-chroot /mnt "/setup.sh"
# end
umount -R /mnt
reboot
view raw archsetup.sh hosted with ❤ by GitHub