シェルスクリプト一撃でArchLinuxを構築!
先日の記事の内容をシェルスクリプト化したものを作成しました。もう構築しちゃったので使い道はあんまりないんですけどね :-P
使い方
curlやscpなどでスクリプトを転送して実行します。
実行時は第一引数にホスト名を、第二引数にrootパスワードを指定して下さい。※流用してお試しする場合は必ず内容を理解してやってください。ご利用は自己責任で。。。
ざっくりとした解説
- VMWare PlayerのゲストOS用に作成しました。HDDは1つ、サイズは10GBで作成しています。
- パーティションサイズやファイルシステムなどはスクリプトに埋め込みです。流用する場合は適宜変更してください。
- 一度きり使えればいいのでエラー処理などはありません。(失敗したら最初からやり直せばいいので…)
セットアップスクリプト
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |