Apine Linux インストール備忘録です.
Alpine Linux ってなに?
Alpine Linux と言えば,最近 Docker なんかのコンテナのベースとして利用されるディストリビューションです.これ,Linux のディストリビューションの一つなので,Docker とは無関係にもちろん普通にインストールすることもできます.
かなりコンパクトに作られているみたい(だからコンテナで利用されるのですが)で,どんなものなのかかなり前から興味がありましたので,3連休を利用して試しにインストールしてみました.なお,元サイトは,
です.そして,インストール方法とか利用方法は,Wiki ページ
が元情報みたいですね.
インストールイメージについて
記事執筆時点の ver は,3.8.1 で,色々なインストールイメージが用意されています.現時点だと,x86_64 向けだと,
- STANDARD(約104MB,ISO形式)
- EXTEND(約369MB,ISO形式,ルーターとかサーバー用途に最適だそう)
- NETBOOT(約113MB,tar.gz形式)
- MINI ROOT FILESYSTEM(約2MB,tar.gz形式)
- VIRTUAL(約32MB,ISO形式,STANDARD の Kernel を仮想用に最適化)
- Xen(約154MB,ISO形式,Xen hypervisor 用のサポートを加えたもの)
が用意されていました.
今回は,Hyper-V に入れてみますので,VIRTUAL を選択したのですが,STANDARD の 1/3 の容量しかありません.多分ドライバやら何やらが入ってないんだと思いますが,すごい違いなんですね.
Hyper-V の設定
とりあえず,インストール時は以下のように設定しました.なお,メモリ等はもっと少なくても大丈夫だと思いますが,仮想マシンなので,そこまでキツキツにする必要は無いでしょう.
仮想マシン世代 | 第2世代 |
セキュリティ | セキュアブートを無効化 |
メモリ | 1024MB |
プロセッサ | 2個 |
仮想HDD | 8GB |
なお,第1世代でももちろん構いません.と言うか,最初 STANDARD イメージをインストールしてみたときは,第1世代じゃないとなぜか最後の書き込みに失敗してしまいました.VIRTUAL イメージだと大丈夫ってのはちょっと不思議だったんですが,原因は不明です.
VIRTUAL イメージのインストール
インストールは,VIRTUAL イメージの ISO (alpine-virt-3.8.1-x86_64.iso) から行います.
ISO イメージをマウントして,起動すると,一瞬 “Booting Linux.vrt” と表示されたあと,びっくりするくらい一瞬で,
Welcome to Alpine Linux 3.8 Kernel 4.14.59-0-virt on an x86_64 (/dev/tty1) localhost login:
のように起動してきます.ログインは,root と打つだけで,パスワードなしでログインできます.
ログイン後は,
# setup-alpine
とすると,対話形式のインストーラーが起動します.概要は順に以下の通りです.
- Select keyboard layout: jp
- Available variants: jp-OADG109A
- Enter system hostname: alpine
- Which one do you want to initialize?: eth0
- Ip address for eth0?: 192.168.*.*
- Netmask?: 255.255.255.0
- Gateway: 192.168.*.*
- Do you want to do any manual network configuration?: no
- DNS domain name?: mydomain.local
- DNS nameserver(s)?: 192.168.*.*
- New password: *******
- Retype Password: *******
- Which timezone are you in?: Asia
- Which sub-timezone of ‘Asia’ are you in?: Tokyo
- HTTP/FTP proxy URL?: none
- Enter mirror number (1-43) or URL to add: f (速いサイトを検索)
- Which SSH server? (‘openssh’, ‘dropbear’ or ‘none’): openssh
- Which NTP client to run? (‘busybox’, ‘openntpd’, ‘chrony’, or ‘none’): chrony
- Which disk(s) would you like to use?: sda
- How would you like to use it?: sys (普通に HDD にインストールする場合)
この後,ディスクが全部消えるとの WARNING に ‘y’ と答えれば,
Installation is complete. Please reboot.
と表示されますので,インストール ISO をアンマウント(取り出し)して,リブートではなく,
# poweroff
とします(これまたあっという間に仮想マシンが停止します).これはなぜかと言うと,このままだと,
- DVD ドライブ
- ネットワークアダプタ
- ハードドライブ
の順に起動を試すため,なかなか起動してこないからです.つまり,仮想マシンの設定を最初にハードドライブから起動するように設定する訳です.これで電源を入れるとこれまたあっという間にログインプロンプトが表示されます.
インストール後の最低限の作業
され,インストール自体はここまでで終わりなのですが,これだけだとさすがに使いにくいので,最低限,
- 最新の状態にアップデート
- リモート管理用のユーザーの作成
- Hyper-V ゲストサービスのインストール
を行います.
まずは,最新の状態へのアップデートですが,
# apk update # apk upgrade
とするだけみたいです.
次に,リモート管理用のユーザーですが,何と! useradd コマンドがありません.adduser と addgroup で何とかしなければならないようで,私の場合はとりあえず,
# addgroup -g 1001 hyt # adduser -G hyt -u 1001 hyt
のようにしました.管理用ユーザーさえ作ればリモートから SSH で接続できます.
最後に Hyper-V ゲストサービスのインストールと起動方法は以下の通りです.
# apk add hvtools (1/1) Installing hvtools (4.11.9-r0) Executing busybox-1.28.4-r1.trigger OK: 88 MiB in 49 packages # rc-service hv_fcopy_daemon start * Starting Hyper-V daemon: hv_fcopy_daemon ... [ ok ] # rc-service hv_kvp_daemon start * Starting Hyper-V daemon: hv_kvp_daemon ... [ ok ] # rc-service hv_vss_daemon start * Starting Hyper-V daemon: hv_vss_daemon ... [ ok ] # rc-update add hv_fcopy_daemon * service hv_fcopy_daemon added to runlevel default # rc-update add hv_kvp_daemon * service hv_kvp_daemon added to runlevel default # rc-update add hv_vss_daemon * service hv_vss_daemon added to runlevel default
これで最低限の設定が終わりです.
結果
結果は次の通りです.
まず,インストールされたディスクイメージの状態と使用量ですが,
$ df -mh Filesystem Size Used Available Use% Mounted on devtmpfs 10.0M 0 10.0M 0% /dev shm 493.4M 0 493.4M 0% /dev/shm /dev/sda3 5.4G 120.8M 5.0G 2% / tmpfs 98.7M 132.0K 98.6M 0% /run df: /sys/kernel/debug/tracing: Permission denied /dev/sda1 511.0M 256.0K 510.7M 0% /boot/efi
のような感じになります.メモリの使用量は,
# free -m total used free shared buffers cached Mem: 986 70 916 0 2 9 -/+ buffers/cache: 58 927 Swap: 1972 0 1972
な感じ.約70Mですか.
サービスは,gentoo linux に近いそうで,現在のランレベルで動いているものを見たければ,
# rc-status Runlevel: default hv_kvp_daemon [ started ] acpid [ started ] crond [ started ] hv_vss_daemon [ started ] sshd [ started ] chronyd [ started ] hv_fcopy_daemon [ started ] Dynamic Runlevel: hotplugged Dynamic Runlevel: needed/wanted sysfs [ started ] fsck [ started ] root [ started ] localmount [ started ] Dynamic Runlevel: manual
のようにすれば良いようです.見ての通り,ほとんど何にも起動してません.なお,この状態だと 128MB あれば OS がきちんと起動してきます(CentOS7 だと 256MB が限界だった).
全体として非常にシンプルな作りで使いやすそうなので,これからおいおい慣れていきたいと思います.
以上!