前口上
小型で気軽に使えるLinuxサーバが欲しくてCHUWI HeroBoxをゲット。
試行錯誤をしまくって、何とかモノになったので覚え書き。
スペックとかレビューは色々な人が紹介しているので省略。
このPCは元々256GBのSSDを内蔵しているけど、手元に512GBの2.5インチSSDが余っていたのでこれを増設。
結局、Ubuntu Server 20.10に落ち着いた。
他のインストール候補はRed Hat Enterprise Linux 8とCentOS 8。これら以外にFedoraとかCentOS 8 Streamを入れたけどすぐに消した。一時、RHEL8で使っていたのだけど、Docker絡みとPostgreSQL絡みでRHELは諦めた。
HeroBoxへのLinuxのインストール
起動とインストール
LinuxのインストールはインストールイメージをダウンロードしてRufusでUSBメモリに書込み。
USBメモリを前面右側のUSB3.0ポートに刺して起動。F7を連打すればブートメディアを選択できる。RHELの場合はブート可能なパーティションが2つあるので第2パーティションからブート。オフラインインストールとなる。オフラインインストール後にアクティベーションを行えばパッケージの更新が出来る。
第1パーティションはネットワークインストール用。最初はこれを選択したもののインストール中にRHELのアクティベーションが上手く行かなかったので挫折しかかった。
Ubuntu Server 20.10の場合はインストーラーの指示に従えばOK。
インストール先は512GBのSSDを選択。LVMでフォーマットするのでインストール後に256GB側を拡張して1つのファイルシステムにする。
RHELはインストール時に2台のSSDを1つの論理パーティションにしてインストールできた。
インストール後のディスクの構成はこんな感じ。
# df -hP
Filesystem Size Used Avail Use% Mounted on
tmpfs 778M 1.3M 777M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 456G 6.3G 427G 2% /
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/sda2 976M 112M 798M 13% /boot
/dev/sda1 511M 7.9M 504M 2% /boot/efi
tmpfs 778M 4.0K 778M 1% /run/user/1000
物理ディスクが複数ある場合、これを1つに統合するのは信頼性が低下するので宜しくないけど、運用の柔軟性をとってRAID0構成に。
以下の手順で既存の/dev/sdaに/dev/sdbを追加して1つのファイルシステムにした。
- パーティション作成
- 物理ボリューム作成
- 既存のボリュームグループに作成した物理ボリュームを追加
- ボリュームグループの拡張
- ファイルシステムの拡張
パーティションを作成する前にvgdisplayで既存のボリュームグループの状態を確認する。
# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <464.26 GiB
PE Size 4.00 MiB
Total PE 118850
Alloc PE / Size 118850 / <464.26 GiB
Free PE / Size 0 / 0
VG UUID eljjjs-eqqz-wes6-fkSC-SQUQ-P8wI-P4KETF
ボリュームグループはインストール時に選択した512GBのSSD(/dev/sda)に作成されている。これに、空である256GB側(/dev/sdb)を追加する。
まずは、gdiskで/dev/sdbでパーティションを編集
# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.5
pコマンドでパーティションの状態を確認。
Command (? for help): p
Disk /dev/sdb: 500118192 sectors, 238.5 GiB
Model: KINGSTON RBUSNS8
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 5394AF49-2144-4AB8-9D79-BBFB489DCCBC
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 500118158
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 500118158 238.5 GiB 8300 Linux filesystem
dコマンドでパーティションを削除。
Command (? for help): d
Using 1
再度、pコマンドでパーティションが削除されていることを確認。
Command (? for help): p
Disk /dev/sdb: 500118192 sectors, 238.5 GiB
Model: KINGSTON RBUSNS8
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 5394AF49-2144-4AB8-9D79-BBFB489DCCBC
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 500118158
Partitions will be aligned on 2048-sector boundaries
Total free space is 500118125 sectors (238.5 GiB)
Number Start (sector) End (sector) Size Code Name
nコマンドでLVMパーティションを作成。GUIDコードは8E00を入力。LVMパーティションとなる。
Command (? for help): n
Partition number (1-128, default 1):
First sector (34-500118158, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-500118158, default = 500118158) or {+-}size{KMGTP}:
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): 8E00
Changed type of partition to 'Linux LVM'
作成したパーティションを確認。
Command (? for help): p
Disk /dev/sdb: 500118192 sectors, 238.5 GiB
Model: KINGSTON RBUSNS8
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 5394AF49-2144-4AB8-9D79-BBFB489DCCBC
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 500118158
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 2048 500118158 238.5 GiB 8E00 Linux LVM
wコマンドでパーティション情報をディスクに書込む。
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
物理ボリューム作成
pvcreateコマンドで/dev/sdbに物理ボリュームを作成。
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
物理ボリュームのボリュームグループへの追加
vgextendコマンドで作成した物理ボリュームを既存のボリュームグループに追加
# vgextend ubuntu-vg /dev/sdb1
Volume group "ubuntu-vg" successfully extended
vgdisplayでボリュームグループが拡張可能になったことを確認する
# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 702.73 GiB
PE Size 4.00 MiB
Total PE 179899
Alloc PE / Size 118850 / <464.26 GiB
Free PE / Size 61049 / 238.47 GiB
VG UUID eljjjs-eqqz-wes6-fkSC-SQUQ-P8wI-P4KETF
ボリュームグループの拡張
lvextendでボリュームグループを拡張する。+100%FREEで追加した全領域全てを拡張する。
# lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <464.26 GiB (118850 extents) to 702.73 GiB (179899 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
vgdisplayで論理ボリュームが拡張されたことを確認。
# vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 702.73 GiB
PE Size 4.00 MiB
Total PE 179899
Alloc PE / Size 179899 / 702.73 GiB
Free PE / Size 0 / 0
VG UUID eljjjs-eqqz-wes6-fkSC-SQUQ-P8wI-P4KETF
dfで確認したところ、ボリュームが拡張されてもファイルシステムは拡張されていない。
# df -kh
Filesystem Size Used Avail Use% Mounted on
tmpfs 778M 1.4M 777M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 456G 6.3G 427G 2% /
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/sda2 976M 112M 798M 13% /boot
/dev/sda1 511M 7.9M 504M 2% /boot/efi
tmpfs 778M 4.0K 778M 1% /run/user/1000
resize2fsで拡張したボリュームを拡張する。
# resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 59, new_desc_blocks = 88
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 184216576 (4k) blocks long.
dfで確認すると、ファイルシステムが拡張されていることが確認できた。
# df -kh
Filesystem Size Used Avail Use% Mounted on
tmpfs 778M 1.4M 777M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 691G 6.3G 652G 1% /
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/sda2 976M 112M 798M 13% /boot
/dev/sda1 511M 7.9M 504M 2% /boot/efi
tmpfs 778M 4.0K 778M 1% /run/user/1000
これで、ファイルシステムの拡張は完了。
日本語化
タイムゾーンはUTCになっているので、timedatectlコマンドでタイムゾーンをJSTに変更する。
# date
Mon Feb 22 15:02:44 UTC 2021
# timedatectl set-timezone Asia/Tokyo
# date
Tue Feb 23 00:02:58 JST 2021
「Shift-JIS/EUC-JP死すべし慈悲はない」なので、ロケールはja_JP.UTF-8に。
日本語マニュアルも入れる。
# localectl set-locale LANG=ja_JP.UTF-8
# apt install -y language-pack-ja manpages-ja manpages-ja-dev
sambaのインストール
普通にapt install sambaでインストール。pdbeditでユーザー追加
# sudo apt install samba
# pdbedit -a [ユーザー名]
smb.confはglobalセクションにWORKGROP名とNetBios名を追加。homesセクションでホームディレクトリをWindows側から見えるように。
[global]
workgroup = WORKGROUP
netbios name = [ホスト名]
[homes]
comment = Home Directories
browseable = no
read only = no
鍵ペアによるsshログイン
インストール時にSSHサーバーを有効にしたので、鍵ペアをつかってWindowからログイン出来るようにする。
% ssh-keygen
% cd .ssh
% mv id_rsa.pub authorized_keys
出来たid_rsaをホストのWindowsのユーザーフォルダの下の.sshフォルダにコピー。
コマンドプロンプトからssh [ユーザー名]@[ホスト名]でログイン出来る。
Windows Terminalの設定はこんな感じ。
{
(略)
"profiles":
{
"list":
[
(略)
{
"name": "[ホスト名](ssh)",
"commandline": "ssh [ユーザー名]@[ホスト名]",
"hidden": false,
"icon": "(アイコンのパス)",
"colorScheme": "Sakura"
}
]
}
}
アイコンはUbuntuのアイコンをググって32x32にしてOneDriveに配置したのを参照。
カラースキームはWindows Terminal Themesから。カラースキームを変えることでログイン先を区別出来るようにした。