CHUWI HeroBoxにLinuxディストリビューションをインストール

前口上

小型で気軽に使えるLinuxサーバが欲しくてCHUWI HeroBoxをゲット。 試行錯誤をしまくって、何とかモノになったので覚え書き。

スペックとかレビューは色々な人が紹介しているので省略。 このPCは元々256GBのSSDを内蔵しているけど、手元に512GBの2.5インチSSDが余っていたのでこれを増設。

Linuxディストリビューションの選択

結局、Ubuntu Server 20.10に落ち着いた。 他のインストール候補はRed Hat Enterprise Linux 8とCentOS 8。これら以外にFedoraとかCentOS 8 Streamを入れたけどすぐに消した。一時、RHEL8で使っていたのだけど、Docker絡みとPostgreSQL絡みでRHELは諦めた。

HeroBoxへのLinuxのインストール

起動とインストール

LinuxのインストールはインストールイメージをダウンロードしてRufusUSBメモリに書込み。 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つのファイルシステムにする

物理ディスクが複数ある場合、これを1つに統合するのは信頼性が低下するので宜しくないけど、運用の柔軟性をとってRAID0構成に。 以下の手順で既存の/dev/sdaに/dev/sdbを追加して1つのファイルシステムにした。

  1. パーティション作成
  2. 物理ボリューム作成
  3. 既存のボリュームグループに作成した物理ボリュームを追加
  4. ボリュームグループの拡張
  5. ファイルシステムの拡張

パーティション作成

パーティションを作成する前に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から。カラースキームを変えることでログイン先を区別出来るようにした。