この記事について
Alpine LinuxをVirtualBox / VMware Workstation Player(以下VMware)へ、Vagrant
等に頼らずインストールするための手順書です。
執筆時の環境
Windows10 1909
AlpineLinux 3.11.2
VirtualBox 6.1
VMware Workstation Player 15.5
準備
AlpineLinuxの入手
仮想PC向けに要らない要素を削ぎ落したVIRTUAL
版がおすすめです。
- VirtualBox用Tips
- GuestAdditionsのパッケージが64bit用しかないので、`x86_64`がおすすめです。
- VMware用Tips
- デフォルトNICのドライバがVIRTUAL版には入っていないので、仮想PCのセットアップ後に一手間必要になります。後述の説明を参照して下さい。
仮想PCセットアップ(Tips)
- シリアル接続
- VIRTUAL版の場合シリアルポート経由で接続でき、インストールの段階でターミナルエミュレータのコピペ機能等が利用できます。
名前付きパイプを利用する場合、パイプ名には
\\.\pipe\
という接頭辞が必要なので注意しましょう。
- VirtualBox用Tips
- ストレージ
- コントローラを
virtio-scsi
にするとオーバーヘッドを減らせます。 - ネットワーク
- アダプタータイプを
準仮想化ネットワーク(virtio-net)
にするとオーバーヘッドを減らせます。
- VMware用Tips
-
VIRTUAL版にはデフォルトNIC用のドライバが入っていないため、デバイスタイプの変更が必要です。
仮想PCを作成後VMwareを一旦終了させて、
*.vmx
ファイルに以下の一行を追記して下さい。ethernet0.virtualDev = "vmxnet3"`
インストール
- ログイン …
root
と入力すればパスワードなしでログインできます。
localhost login: root
- ログイン後 …
setup-alpine
と入力してインストーラを起動します。
localhost:~# setup-alpine
- キーボードの選択(1/2) … 日本語キーボードであれば
jp
と入力します。
Available keyboard layouts:
(省略)
Select keyboard layout [none]: jp
- キーボードの選択(1/2) … 日本語キーボードであれば
jp
と入力します。
AT互換機の場合jp-OADG109A
、macの場合jp-mac
の方が良いかもしれません。
Available variants: jp-OADG109A jp-dvorak jp-kana jp-kana86 jp-mac jp
Select variant []: jp
- ホスト名 … デフォルト設定
localhost
で良ければenter。
Enter system hostname (short form, e.g. 'foo') [localhost]:
- ネットワーク設定 … 以下の手順をネットワークアダプタ(インターフェース)毎に繰り返します。
**DHCPを設定する場合**
- インターフェース名 … デフォルト設定`eth?`(?=0~)でenter。
Which one do you want to initialize? (or '?' or 'done') [eth0]
- アドレス … デフォルト設定`dhcp`でenter。
Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp]
**固定IPを設定する場合**
- IPアドレス … `192.168.xx.xx`と入力
Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp] 192.168.137.128
- ネットマスク … デフォルト設定`255.255.255.0`でenter。
Netmask? [255.255.255.0]
- デフォルトゲートウェイ … **1つだけ**ホスト側仮想アダプタのIPを設定し、他はデフォルト設定(空)のままenter。
ただしdhcpを割り当てたアダプタが存在する場合は、全て空にします。Gateway? (or 'none') [none]
- ネットワーク手動設定 … デフォルト設定
no
でenter。手動で設定する場合は、/etc/network/interfaces
をviで編集することになります。
Do you want to do any manual network configuration? [no]
- ドメイン名 … ネットワーク設定でdhcpを選択したアダプタが存在する場合、この設定はスキップされます。通常はデフォルト設定(空)でenter。
DNS domain name? (e.g 'bar.com') []
- DNS … ネットワーク設定でdhcpを選択したアダプタが存在する場合、この設定はスキップされます。ホスト側のDNS設定に合わせるか、1.1.1.1等のパブリックDNSのIPを入力します。
DNS nameserver(s)? [] 1.1.1.1
- rootパスワード … 適当に入力します。
Changing password for root
New password:
Retype password:
- タイムゾーン …
Asia/Tokyo
と入力します。
Which timezone are you in? ('?' for list) [UTC] Asia/Tokyo
- Proxy設定 … デフォルト設定
none
で良ければenter。
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none]
- NTPサーバの選択 … デフォルト設定
chrony
で良ければenter。
Which NTP client to run? ('busybox', 'openntpd', 'chrony' or 'none') [chrony]
- ダウンロードサイトの選択 …
f
と入力することで最も応答の速いミラーサイトを探しますが、たまにメンテナンスで止まったりするので、デフォルトの1
で良いと思います。(CDNなので各時点で適切なサーバに回されるはず)
Available mirrors:
1) dl-cdn.alpinelinux.org
(省略)
Enter mirror number (1-46) or URL to add (or r/f/e/done) [1]: f
- SSHサーバの選択 … デフォルト設定
openssh
でenter。
Which SSH server? ('openssh', 'dropbear' or 'none') [openssh]
- インストール先ドライブの選択 …
sda
と入力します。
(省略)
Which disk(s) would you like to use? (or '?' for help or 'none') [none] sda
- パーテーション設定の選択 …
sys
と入力します。
(省略)
How would you like to use it? ('sys', 'data', 'lvm' or '?' for help) [?] sys
- 最終確認 …
y
と入力します。
WARNING: Erase the above disk(s) and continue? [y/N]:
- 完了 … 以下のメッセージが表示されたら完了です。
Installation is complete. Please reboot
- 再起動 … isoイメージの取り出しを行ってから、
reboot
と起動し再起動します。
またはpoweroff
と入力し一旦終了(&スナップショット作成)してから再起動します。
再起動後の初期設定
##起動スクリプトのバグ(?)修正
mv /etc/profile.d/color_prompt /etc/profile.d/color_prompt.sh
と入力することで、プロンプトに色が付くようになります。
rootの置換
###sudoの導入
-
apk add sudo
と入力し、sudoをインストールします。 -
visudo
と入力し、sudoの設定ファイルを開きます。 -
/# %wheel
と入力し# %wheel ALL(ALL) = ALL
の行を検索します。 -
2x
と入力し、コメント(#)を外します。(以下のようになればOK)
%wheel ALL=(ALL) ALL
-
:wq
と入力し、保存&終了します。
###ユーザーの追加
-
adduser ユーザー名
でユーザーを追加します。 -
adduser ユーザー名 wheel
と入力し、作成したユーザーがsudoを使えるようにします。
###rootの封印
作成したユーザーでログインし直し、rootを封印します。
-
sudo passwd -l root
と入力し、rootアカウントをロックします。 -
sudo passwd -d root
と入力し、rootのパスワードをクリアします。
##共有フォルダの設定
edge/communityパッケージが必要となるので、sudo vi /etc/apk/repositories
と入力しコメント(#)を外しておく必要があります。
VirtualBox Guest Additions
-
sudo apk add virtualbox-guest-additions virtualbox-guest-modules-virt
でGuestAdditionをインストールします。
※32bit版ではここで失敗します! -
sudo rc-update add virtualbox-guest-additions default
で起動時にサービスが立ち上がるようにします。 -
sudo adduser $USER vboxsf
でログイン中のユーザーに仮想フォルダへのアクセス権を付与します。
OpenVMTool
-
sudo apk add --update open-vm-tools
でインストールします。 -
sudo apk rc-update add open-vm-tools
で起動時にサービスが立ち上がるようにします。 -
sudo vmhgfs-fuse -o allow_other /mnt/hgfs/
で、/mnt/hgfs
以下に全ての共有フォルダがマウントされます。