Alpine Linux インストール備忘録

Server
Photo by hyt.

Apine Linux インストール備忘録です.

Alpine Linux ってなに?

Alpine Linux と言えば,最近 Docker なんかのコンテナのベースとして利用されるディストリビューションです.これ,Linux のディストリビューションの一つなので,Docker とは無関係にもちろん普通にインストールすることもできます.

かなりコンパクトに作られているみたい(だからコンテナで利用されるのですが)で,どんなものなのかかなり前から興味がありましたので,3連休を利用して試しにインストールしてみました.なお,元サイトは,

index | Alpine Linux
Alpine Linux

です.そして,インストール方法とか利用方法は,Wiki ページ

Alpine Linux

が元情報みたいですね.

インストールイメージについて

記事執筆時点の 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” と表示されたあと,びっくりするくらい一瞬で,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Welcome to Alpine Linux 3.8
Kernel 4.14.59-0-virt on an x86_64 (/dev/tty1)
localhost login:
Welcome to Alpine Linux 3.8 Kernel 4.14.59-0-virt on an x86_64 (/dev/tty1) localhost login:
Welcome to Alpine Linux 3.8
Kernel 4.14.59-0-virt on an x86_64 (/dev/tty1)

localhost login:

のように起動してきます.ログインは,root と打つだけで,パスワードなしでログインできます.

ログイン後は,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# setup-alpine
# setup-alpine
# setup-alpine

とすると,対話形式のインストーラーが起動します.概要は順に以下の通りです.

  1. Select keyboard layout: jp
  2. Available variants: jp-OADG109A
  3. Enter system hostname: alpine
  4. Which one do you want to initialize?: eth0
  5. Ip address for eth0?: 192.168.*.*
  6. Netmask?: 255.255.255.0
  7. Gateway: 192.168.*.*
  8. Do you want to do any manual network configuration?: no
  9. DNS domain name?: mydomain.local
  10. DNS nameserver(s)?: 192.168.*.*
  11. New password: *******
  12. Retype Password: *******
  13. Which timezone are you in?: Asia
  14. Which sub-timezone of ‘Asia’ are you in?: Tokyo
  15. HTTP/FTP proxy URL?: none
  16. Enter mirror number (1-43) or URL to add: f (速いサイトを検索)
  17. Which SSH server? (‘openssh’, ‘dropbear’ or ‘none’): openssh
  18. Which NTP client to run? (‘busybox’, ‘openntpd’, ‘chrony’, or ‘none’): chrony
  19. Which disk(s) would you like to use?: sda
  20. How would you like to use it?: sys (普通に HDD にインストールする場合)

この後,ディスクが全部消えるとの WARNING に ‘y’ と答えれば,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Installation is complete. Please reboot.
Installation is complete. Please reboot.
Installation is complete. Please reboot.

と表示されますので,インストール ISO をアンマウント(取り出し)して,リブートではなく,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# poweroff
# poweroff
# poweroff

とします(これまたあっという間に仮想マシンが停止します).これはなぜかと言うと,このままだと,

  1. DVD ドライブ
  2. ネットワークアダプタ
  3. ハードドライブ

の順に起動を試すため,なかなか起動してこないからです.つまり,仮想マシンの設定を最初にハードドライブから起動するように設定する訳です.これで電源を入れるとこれまたあっという間にログインプロンプトが表示されます.

インストール後の最低限の作業

され,インストール自体はここまでで終わりなのですが,これだけだとさすがに使いにくいので,最低限,

  1. 最新の状態にアップデート
  2. リモート管理用のユーザーの作成
  3. Hyper-V ゲストサービスのインストール

を行います.

まずは,最新の状態へのアップデートですが,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# apk update
# apk upgrade
# apk update # apk upgrade
# apk update
# apk upgrade

とするだけみたいです.

次に,リモート管理用のユーザーですが,何と! useradd コマンドがありません.adduser と addgroup で何とかしなければならないようで,私の場合はとりあえず,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# addgroup -g 1001 hyt
# adduser -G hyt -u 1001 hyt
# addgroup -g 1001 hyt # adduser -G hyt -u 1001 hyt
# addgroup -g 1001 hyt
# adduser -G hyt -u 1001 hyt

のようにしました.管理用ユーザーさえ作ればリモートから SSH で接続できます.

最後に Hyper-V ゲストサービスのインストールと起動方法は以下の通りです.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# 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
# 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
# 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

これで最低限の設定が終わりです.

結果

結果は次の通りです.

まず,インストールされたディスクイメージの状態と使用量ですが,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ 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
$ 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
$ 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

のような感じになります.メモリの使用量は,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# free -m
total used free shared buffers cached
Mem: 986 70 916 0 2 9
-/+ buffers/cache: 58 927
Swap: 1972 0 1972
# free -m total used free shared buffers cached Mem: 986 70 916 0 2 9 -/+ buffers/cache: 58 927 Swap: 1972 0 1972
# 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 に近いそうで,現在のランレベルで動いているものを見たければ,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# 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
# 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
# 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 が限界だった).

全体として非常にシンプルな作りで使いやすそうなので,これからおいおい慣れていきたいと思います.

以上!

Server
スポンサーリンク
Following hyt!
タイトルとURLをコピーしました