0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VirtualBoxにalpinelinuxをインストールする

Posted at

はじめに

alpinelinuxはコマンドライン環境のみでインストールできます。ubuntu-serverと比べても軽量で、isoイメージのダウンロードやインストールにかかる時間が短いです。alpinelinux上でコマンドラインツールを自由にインストールできるようにまでの手順が難しかったので、まとめることにしました。

環境

PC:MacBook Pro (2016)
CPU: 2.9 GHz デュアルコアIntel Core i5
メインメモリ: 16 GB
alpinelinux: alpine-standard-3.21.0-x86_64.iso
VirtualBox: バージョン 7.0.10 r158379 (Qt5.15.2)

Virtualboxの設定

alpinelinuxのisoイメージを公式ページからダウンロードしてVirtualBoxのドライブにセットする。
バーチャルマシーンの設定は以下のようにした。

タイプ:Linux
バージョン:Oracle Linux (64bit)
メインメモリー:2048MB
Processors:1CPU
Create a Virtual Hard Disk Now:20GB

alpinelinuxのインストール

バーチャルマシーンを起動するとログイン画面になる。root と入力する(パスワードはない)。

localhost login: 

rootでログインすると以下のようなメッセージが出る。setup-alpinを実行。

You can setup the system with the command: setup-alpine

すると、インストールウィザードが立ち上がる。あとは指示に従って入力するのみ。TUIでもなく、全てCUIで操作する。

Keymap

Keymapの項目で

Select keyboard layout: 

とくる(私はusを選択。)

Select variant (or 'abort'): 

とくる。(私はus-dvorakを選択。)
以下も同様にやっていく。

Hostname

Enter System hostname (fully qualified form, e.g. 'foo.example.org')[localhost]

適当に入力(今回はvb-alpineとした)

Interface

Which one do you want to initialize? (or '?' or 'done')[eth0]とくるのでeth0を入力
Ip address for eth0? (or 'dhcp', 'none', '?')[dhcp]とくるのでdhcpを入力
Do you want to do any manual network configuration? (y/n)[n]とくるのでnを入力

Root Password

New password:とくるので適当にと入力
単純すぎるとBad password: too shortとメッセージが出る
Retype password:とくるので再度入力。Bad passwordでも通る。

Timezoneで

Which timezone ar you in? (or '?' 'none')[UTC]とくるのでAsiaと入力
What sub-timezone of 'Asia' are you in? (or '?')とくるのでTokyoと入力

Proxy

HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none')[none]とくるのでnoneと入力

Network Time Protocol

Which NTP client to run? ('busybox', 'openntpd', 'chrony', or 'none')[chrony]とくるのでchronyと入力

APK Mirror

Enter mirror number or URL:[1]とくるので1を入力。

User

Setup a user? (enter a lower-case loginname, or 'no')[no]とりあえずnoにしておく。(後でユーザー登録をする。)
Which ssh server? ('openssh', 'dropbear' or 'none')[openssh]とくるのでopensshと入力。
Allow root ssh login? ('?' for help)[prohibit-password]とくるので、?で確認し、yesを入力。
Enter ssh key or URL for root (or 'none')[none]とくるのでnoneと入力。

Disk & Install

Which disk(s) would you like to use? (or '?' for help or 'none')[none]?で確認の後、sdaと入力。(noneではなくsda)。
How would you like to use it? ('sys', 'data', 'cryppt', 'lvm' or '?' for help)[?]とくるので?で確認ののち、sysと入力。
WARNING: Erase the above disk(s) and continue? (y/n)[n]とくるのでyと入力。

これでインストール終了です。Installation is complete. Please reboot.メッセージが表示されます。

注意点

VirtualBoxのWindowの右下のCDのアイコンをクリックし、Remove disk from virtual driveを選択してiosが入ったディスクを抜く。これをしないと、再起動した際にまたisoから起動してしまう。

再起動

rebootコマンドで再起動する。

ログイン画面

rootでログインする。osインストールの時に定めたパスワードを用いる。

動作確認

rc-service sshd statusでopensshサーバーが起動していることを確認。
もしインストールされていない場合、apk add openssh
サービスをスタート、rc-service sshd start

ip addrでipアドレス
whoamiでloginしているuser名(今はroot)
hostnameで先ほど名付けたホスト名(今回はvb-alpine)
setup-keymapでキーマップ変更できる

user登録

adduser myusername を実行
Changing password for myusername
New password: とくるので適当に決める。
短すぎるとBad password: too shortとくるが、
Retype password:で再入力して登録完了できる。

userをwheelグループに登録

addgroup myusername wheelコマンドを実行。「myusername」が「wheel」グループに登録される。

groups myusernameで確認できる。

nanoをインストール

apk add nanoコマンドを実行。

sudoコマンドをインストール

nano /etc/apk/repositoriesで以下を最後尾に追加。

https://dl-cdn.alpinelinux.org/alpine/v3.18/main
https://dl-cdn.alpinelinux.org/alpine/v3.18/community

リポジトリ更新。apkでsudoがインストールできるようになる。

apk update

sudoをインストール。

apk add sudo

wheelグループがsudoを使えるようにする。

visudo

を実行。以下の行のコメントアウトを外す

%wheel ALL=(ALL:ALL) ALL

sudoがwheelグループ所属のmyusernameで使えるか確認する。exitでrootをログアウトさせます。先ほど定めたuser(myusername)とpasswordでログインする。sudo apk updateなど適当に実行して、エラーが出ないことを確認する。

python3とpip3をインストール

sudo apk update
sudo apk add python3
python3 --version  #確認
sudo apk add py3-pip
pip3 --version #確認

適当なツールをインストール

sudo apk add yt-dlp

考察

以下が、私がつまづいた箇所です。
・インストールウィザード終了後はisoイメージをバーチャルドライブから外さなければならない。
・インストールウィザードでの「User」と「Disk & Install」で適切に設定する
・sudoをインストールする。デフォルトのリポジトリではsudoがなく、手動でリポジトリを登録する必要がある。
・userを登録し、そのuserをwheelグループに登録し、wheelグループがsudoコマンドを使えるようにする。

母艦(今回はMac)とVirtuaBox上のalpinelinuxとでファイルの送受信を自由にできれば便利です。私の環境ではVirtualBoxの機能を用いてそれをしようとすると、動作が不安定になり、困難でした。なのでMacとalpinelinuxとのファイルのやりとりはscpコマンドで行なっています。scpコマンドを用いるということはssh接続できないとなりません。VirtualBox上のalpinelinuxにMacからssh接続するには、VirtualBoxの設定をしなければなりません。簡単に述べると、VirtualBoxのGUIの「設定」> 「ネットワーク」> で割り当てが「NAT」になっていることを確認し、その項目の少し下にある「Advanced」 > 「ポートフォワーディング」 > 新規ポートフォワーディングルールを追加しますアイコンの「+」をクリック > 「名前: 変更不要, プロトコル: デフォルトのTCPのまま, ホストIP: 設定不要, ホストポート: 2222(alpinelinuxのsshサーバーのポート), ゲストIP: 設定不要, ゲストポート: 22とする

Macのターミナルを立ち上げ、Mac側からVirtualBox上のalpinelinexにssh接続

ssh -p 2222 myusername@localhost # -p 2222とするのが大事。小文字のp。

Macからalpinelinuxにファイル送信

scp -P 2222 test.txt myusername@localhost:~ # -P 2222 とする。大文字のP。

Macのuser名とhostnameを確認。Macのターミナルで以下を実行。

whoami # usernameを確認
hostname # hostnameを確認

alpinelinuxからMacにssh接続。alpineのコンソール上で以下を実行。

ssh macのユーザー名@macのホスト名

alpinelinuxからMacにscpでファイルを送信。

scp test_2.txt macのユーザー名@macのホスト名:~

参考

Alpine Linux をインストールする #VirtualBox - Qiita, https://qiita.com/elfincafe/items/0f3acd6a76b7e3cf9b19

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?