Think threshold

中の人のIYHにいたる顛末と購入レビュー。ときどき自宅システム構築備忘録。

最終的に悪かったのはどこなんだろうか?(メインマシンで最終的にCPU交換まで行ったお話)

\ピロン!/シルバー実績を解除!

CPUの不良交換を行う(2/3)

 

ということで組み上げのタイミングからどこか不穏だったスリッパマシン、デカい不調が出て切り分け交換交換としていったところ、最終的にはCPUが大元だったというお話

 

続きを読む

録画鯖を古いパーツを使って作る作業記録(ubuntu+PT2+Mirakurun+EPGStationで作ってみた)

ライセンス余剰がない、セキュアブートの問題、リモートからの保守、マシン性能等を鑑み、Windows環境ではなくLinux環境でテスト的に作ってみました。

リモートに置いているマシンがまだ動作しているのでリプレースには至っていませんが、再構築の際にサクッと作れるように備忘録としての作業記録エントリです。

 

●土台となるマシンの準備

・ハードウェア環境

今回は録画鯖のリプレースに伴って発生した旧録画鯖のパーツを利用します(録画鯖から退役させたのにまた録画用で使うおうとする鬼畜)

参考:

makoro.hatenablog.

CPU:AMD A10-5700

MB:FM2A85X-Extreme4-M

Mem:SanMax-Elpida DDR3-1600 8GB x2

SSD:Plextor M5P 128GB

HDD:東芝3TB(DT010ACA300)

チューナ:アースソフト PT2

 

ディスクもエラーはありませんが、すべて骨董品パーツ。。。

この環境にUbuntu Server 24.04 LTSをUEFIの設定でSecure Boot OFF,CSM disableの設定でインストールします。

 

・PT2が認識されているかを確認

Ubuntuは標準でdvbモジュールはロードされるようで、lspciとdmesgコマンドでPT2が認識されていることを確認します(デバイス表記上はPT1として表示されるので注意)

root@yosan3:~# dmesg | grep DVB
[    4.743205] dvbdev: DVB: registering new adapter (earth-pt1)
[    4.764665] dvbdev: DVB: registering new adapter (earth-pt1)
[    4.777432] dvbdev: DVB: registering new adapter (earth-pt1)
[    4.788098] dvbdev: DVB: registering new adapter (earth-pt1)
[    5.123734] earth-pt1 0000:01:05.0: DVB: registering adapter 0 frontend 0 (Toshiba TC90522 ISDB-S module)...
[    5.149171] dvb_pll 7-0061: DVB Simple Tuner attached.
[    5.149286] earth-pt1 0000:01:05.0: DVB: registering adapter 1 frontend 0 (Toshiba TC90522 ISDB-T module)...
[    5.174238] earth-pt1 0000:01:05.0: DVB: registering adapter 2 frontend 0 (Toshiba TC90522 ISDB-S module)...
[    5.203350] dvb_pll 9-0061: DVB Simple Tuner attached.
[    5.204144] earth-pt1 0000:01:05.0: DVB: registering adapter 3 frontend 0 (Toshiba TC90522 ISDB-T module)...

 

●環境構築

・docker/docker-composeのインストール

PT2が認識されていることを確認したらMirakurun/EPGStationの動作のためにDocker環境を整えます。最近はcompose管理がデフォになったのでdocker-composeも一緒に導入。

docs.docker.com

docs.docker.com

 

・コンテナのインストール

github.com

github.com

github.com

 

今回は3つ目のcomposeを利用してMirakurun+EPGStation環境の構築を行います。

最近は/home配下にdocker-configディレクトリを作って、その中にコンテナ関連ファイルをマッピングするのが好きです。

ここにgithubからセットアップ用のシェルスクリプトをダウンロード&実行します

root@yosan3:~# cd /home/
root@yosan3:/home# mkdir docker-config
root@yosan3:/home# cd docker-config/
root@yosan3:/home/docker-config# curl -sf https://raw.githubusercontent.com/l3tnun/docker-mirakurun-epgstation/v2/setup.sh | sh -s
Cloning into 'docker-mirakurun-epgstation'...
remote: Enumerating objects: 776, done.
remote: Counting objects: 100% (211/211), done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 776 (delta 187), reused 175 (delta 175), pack-reused 565 (from 1)
Receiving objects: 100% (776/776), 133.73 KiB | 6.69 MiB/s, done.
Resolving deltas: 100% (466/466), done.
sh: 11: docker-compose: not found

root@yosan3:/home/docker-config# ls
docker-mirakurun-epgstation
root@yosan3:/home/docker-config#

 

docker-composeがうまく動いてなかったので再設定してリトライ。

 

Creating network "docker-mirakurun-epgstation_default" with the default driver
Creating volume "docker-mirakurun-epgstation_mysql-db" with local driver
Pulling mirakurun (chinachu/mirakurun:)...
latest: Pulling from chinachu/mirakurun
8a628cdd7ccc: Pull complete
8be40246db72: Pull complete
beb6b4ac0786: Pull complete
eaca58847d37: Pull complete
2661489d5dec: Pull complete
4c0fb48d4404: Pull complete
ccf053b99fca: Pull complete
42af8738683c: Pull complete
Digest: sha256:0cfb0399862832ceea6db74e8397275d514dcae25e1a467be373a2ae0875deb9
Status: Downloaded newer image for chinachu/mirakurun:latest
Pulling mysql (mariadb:10.5)...
10.5: Pulling from library/mariadb
13b7e930469f: Pull complete
25cb3cc8cdf5: Pull complete
7cc5d0769ced: Pull complete
a0dca9ad4602: Pull complete
27866cd1d4de: Pull complete
89597121fd7d: Pull complete
42d16e8a68bf: Pull complete
8400cc70c12c: Pull complete
8ef943f09733: Download complete
fe144b64570e: Download complete
Digest: sha256:a530aeeefd82f4fa5150f391b6c75462140904780338766f6b03acecb1cca3ce
Status: Downloaded newer image for mariadb:10.5
Building epgstation
[+] Building 26.9s (3/5)                                                                                                                                                                                                      docker:default
 => [internal] load build definition from debian.Dockerfile                                                                                                                                                                             0.1s
 => => transferring dockerfile: 1.63kB                                                                                                                                                                                                  0.0s
 => [internal] load metadata for docker.io/l3tnun/epgstation:master-debian                                                                                                                                                              2.4s
 => [internal] load .dockerignore                                                                                                                                                                                                       0.1s
 => => transferring context: 75B                                                                                                                                                                                                        0.0s
 => [1/2] FROM docker.io/l3tnun/epgstation:master-debian@sha256:aacab7f365f819a5a08667fd89964913fbfdfbceec05ad8d20419d4d7b9170a8                                                                                                       24.3s
 => => resolve docker.io/l3tnun/epgstation:master-debian@sha256:aacab7f365f819a5a08667fd89964913fbfdfbceec05ad8d20419d4d7b9170a8                                                                                                        0.0s
 => => sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 32B / 32B                                                                                                                                                0.2s
 => => sha256:bcdc363a0bb244a3a942950cb3b5e3f60dfdc2a721b99fdfadb68de343d4bd36 75.43MB / 75.43MB                                                                                                                                        5.5s
 => => sha256:40641082e63f092773128ad2216044190e0dddf85528364ca7a683af75649bb5 39.62MB / 39.62MB                                                                                                                                        4.4s
 => => sha256:c21fee6f8781d3fc389dd6b399a036687e64b929d1c6d1e30c6a838a81cef68d 452B / 452B                                                                                                                                              0.7s
 => => sha256:ea29ec2de63b23db332c69f413a5966be659951eb9791f0ddcda6931cde502e2 1.71MB / 1.71MB                                                                                                                                          0.6s
 => => sha256:15945eac87cc3ecd1d729581360d7a9acf97de3c0cfcbf03aa4c4e6762ee6a3c 38.18MB / 38.18MB                                                                                                                                        4.8s
 => => sha256:44f5fe9df22b4c549ef3e662bd64e1e6edb8d3738224047ce56d83ab2f498943 3.35kB / 3.35kB                                                                                                                                          0.2s
 => => sha256:09f376ebb190216b0459f470e71bec7b5dfa611d66bf008492b40dcc5f1d8eae 29.15MB / 29.15MB                                                                                                                                        3.7s
 => => extracting sha256:09f376ebb190216b0459f470e71bec7b5dfa611d66bf008492b40dcc5f1d8eae                                                                                                                                               3.4s
 => => extracting sha256:44f5fe9df22b4c549ef3e662bd64e1e6edb8d3738224047ce56d83ab2f498943                                                                                                                                               0.0s
 => => extracting sha256:15945eac87cc3ecd1d729581360d7a9acf97de3c0cfcbf03aa4c4e6762ee6a3c                                                                                                                                               4.0s
 => => extracting sha256:ea29ec2de63b23db332c69f413a5966be659951eb9791f0ddcda6931cde502e2                                                                                                                                               0.2s
 => => extracting sha256:c21fee6f8781d3fc389dd6b399a036687e64b929d1c6d1e30c6a838a81cef68d                                                                                                                                               0.0s
 => => extracting sha256:40641082e63f092773128ad2216044190e0dddf85528364ca7a683af75649bb5                                                                                                                                              11.2s
 => => extracting sha256:bcdc363a0bb244a3a942950cb3b5e3f60dfdc2a721b99fdfadb68de343d4bd36

 

コンテナのpullと展開が行われ、docker-compose経由で立ち上がります。

 

・チャネルスキャン

コンテナが立ち上がったらチャネルスキャンを行います。

どうやらcurlで40772番を突けばいいみたいです。

root@yosan3:/home/docker-config/docker-mirakurun-epgstation# curl -X PUT "http://localhost:40772/api/config/channels/scan"

channel scanning... (type: "GR")

channel: "13" (1/50) [2%] ...
-> 2 services found.
-> {"name":"J:COMテレビ","type":"GR","channel":"13","isDisabled":false}
Found 1 channels for 13

channel: "14" (2/50) [4%] ...
-> no signal.

channel: "15" (3/50) [6%] ...
-> no signal.

channel: "16" (4/50) [8%] ...
-> 5 services found.
-> {"name":"TOKYO MX","type":"GR","channel":"16","isDisabled":false}
Found 1 channels for 16

 

channel: "62" (50/50) [100%] ...
-> no signal.

-> total 13/40 (GR/Any) channels configured.

-> new 13 channels found.
-> existing 0 channels merged.
channel scan has been completed and saved successfully.
**RESTART REQUIRED** to apply changes.
Final result: 40 channels
root@yosan3:/home/docker-config/docker-mirakurun-epgstation#

 

見慣れたチャンネルが取得できていればOKです。

 

・コンテナ起動確認

 


Mirakurunは40772、EPGStationは8888で待ち受けているので、それぞれのポートにHTTPでアクセスしチャンネルが表示されていること、番組表が表示されることを確認して、一度コンテナをdownさせます。(このあとコンテナにマッピングする録画用ディレクトリを変更するため)


●HDDの追加+LVMでのパーティションの作成

コンテナの動作を確認できたので、録画用ディレクトリをHDDに設定します。

・HDDのディレクトリ構成を確認

root@yosan3:/dev# lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                         8:0    0 119.2G  0 disk
├sda1                      8:1    0     1G  0 part /boot/efi
├sda2                      8:2    0     2G  0 part /boot
└sda3                      8:3    0 116.2G  0 part
  mqubuntu--vg-ubuntu--lv 252:0    0  58.1G  0 lvm  /
sdb                         8:16   0   2.7T  0 disk
├sdb1                      8:17   0   128M  0 part
└sdb2                      8:18   0   2.7T  0 part

今回の環境ではHDDはsdbとして認識されています。

 

・Windows時代のパーティションが残っていたので削除

root@yosan3:/dev#fdisk /dev/sdb

Command (m for help): p
Disk /dev/sdb: 2.73 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: TOSHIBA DT01ACA3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 50A4B4E4-CD07-4D44-9FA5-************

Device      Start        End    Sectors  Size Type
/dev/sdb1      34     262177     262144  128M Microsoft reserved
/dev/sdb2  264192 5860532223 5860268032  2.7T Microsoft basic data

Partition 1 does not start on physical sector boundary.

Command (m for help): d
Partition number (1,2, default 2): 2

Partition 2 has been deleted.

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

Command (m for help): p
Disk /dev/sdb: 2.73 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: TOSHIBA DT01ACA3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 50A4B4E4-CD07-4D44-9FA5-************

 

・LVMでパーティションを作成

Command (m for help): n
Partition number (1-128, default 1): 1
First sector (34-5860533134, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-5860533134, default 5860532223):

Created a new partition 1 of type 'Linux filesystem' and of size 2.7 TiB.

Command (m for help): t
Selected partition 1
Partition type or alias (type L to list all): L

(中略)

44 Linux LVM                      E6D6D379-F507-44C2-A23C-************

(中略)

Partition type or alias (type L to list all): 44
Changed type of partition 'Linux filesystem' to 'Linux LVM'.

Command (m for help): p
Disk /dev/sdb: 2.73 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: TOSHIBA DT01ACA3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 50A4B4E4-CD07-4D44-9FA5-38C80DFDA6CC

Device     Start        End    Sectors  Size Type
/dev/sdb1   2048 5860532223 5860530176  2.7T Linux LVM

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

 

確認

root@yosan3:/dev# lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                         8:0    0 119.2G  0 disk
├sda1                      8:1    0     1G  0 part /boot/efi
├sda2                      8:2    0     2G  0 part /boot
└sda3                      8:3    0 116.2G  0 part
  mqubuntu--vg-ubuntu--lv 252:0    0  58.1G  0 lvm  /
sdb                         8:16   0   2.7T  0 disk
└sdb1                      8:17   0   2.7T  0 part

 

・PVの作成

root@yosan3:/dev# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
root@yosan3:/dev# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               ubuntu-vg
  PV Size               116.19 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              29744
  Free PE               14872
  Allocated PE          14872
  PV UUID               aMXNI4-DEq0-ucqy-A03z-OhT6-K0WY-WSIyyf

  "/dev/sdb1" is a new physical volume of "<2.73 TiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               <2.73 TiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               mvD5n5-0m6S-dDj6-avMY-ReoK-****-******

 

・VGの作成

 

root@yosan3:/dev# vgcreate tvrec-vg /dev/sdb1
  Volume group "tvrec" successfully created
root@yosan3:/dev# vgdisplay
  --- Volume group ---
  VG Name               tvrec-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <2.73 TiB
  PE Size               4.00 MiB
  Total PE              715396
  Alloc PE / Size       0 / 0
  Free  PE / Size       715396 / <2.73 TiB
  VG UUID               hewImC-Wuck-6p0l-Sjog-0RrS-****-******

  --- 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               <116.19 GiB
  PE Size               4.00 MiB
  Total PE              29744
  Alloc PE / Size       14872 / 58.09 GiB
  Free  PE / Size       14872 / 58.09 GiB
  VG UUID               hZhNhc-D4yC-d1vy-MBRp-cI4j-****-******

最新情報へ更新

root@yosan3:/dev# vgscan
  Found volume group "tvrec" using metadata type lvm2
  Found volume group "ubuntu-vg" using metadata type lvm2

 

・LVの作成&確認

root@yosan3:/dev# lvcreate --name tvrec-lv -l 100%FREE tvrec-vg
  Logical volume "tvrec-lv" created.
root@yosan3:/dev# lvdisplay
  --- Logical volume ---
  LV Path                /dev/tvrec-vg/tvrec-lv
  LV Name                tvrec-lv
  VG Name                tvrec-vg
  LV UUID                WugfqC-ydHd-zYii-A0PC-qefF-****-******
  LV Write Access        read/write
  LV Creation host, time yosan3, 2026-05-03 11:34:34 +0000
  LV Status              available
  # open                 0
  LV Size                <2.73 TiB
  Current LE             715396
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                Aa6kkG-L4mw-3dUS-5pGT-S2zs-****-******
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2026-04-17 14:49:02 +0000
  LV Status              available
  # open                 1
  LV Size                58.09 GiB
  Current LE             14872
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

 

・ext4の作成

root@yosan3:/dev# mkfs.ext4 /dev/tvrec-vg/tvrec-lv
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 732565504 4k blocks and 183148544 inodes
Filesystem UUID: 5a03caa7-b847-4aa0-****-************
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks):
done
Writing superblocks and filesystem accounting information:
done

 

・作成したパーティションをマウント

root@yosan3:/mnt# mount /dev/tvrec-vg/tvrec-lv /mnt/tvrec/
root@yosan3:/mnt# df
Filesystem                         1K-blocks     Used  Available Use% Mounted on
tmpfs                                1583120     1684    1581436   1% /run
efivarfs                                 128       66         58  54% /sys/firmware/efi/efivars
/dev/mapper/ubuntu--vg-ubuntu--lv   59643812 11554924   45026720  21% /
tmpfs                                7915596        0    7915596   0% /dev/shm
tmpfs                                   5120        0       5120   0% /run/lock
/dev/sda2                            1992552   106812    1764500   6% /boot
/dev/sda1                            1098628     6288    1092340   1% /boot/efi
tmpfs                                1583116       12    1583104   1% /run/user/1000
overlay                             59643812 11554924   45026720  21% /var/lib/docker/rootfs/overlayfs/e3cb2c40423a945f07f1cc6c8945873827217f8394cee1180eba8e25fc8c9284
overlay                             59643812 11554924   45026720  21% /var/lib/docker/rootfs/overlayfs/06c26a3c8f54db742403010719daee3ad35dae1ea667fef881f5ea5aa9c84e84
overlay                             59643812 11554924   45026720  21% /var/lib/docker/rootfs/overlayfs/d006dfdca7f400510be7e2e11b8c9a50e652941e6d94c137502020078403c29c
/dev/mapper/tvrec--vg-tvrec--lv   2883126448       28 2736596936   1% /mnt/tvrec

 

・マウント永続化

UUIDを確認し、起動時に自動的にマウントされるようにfstabを編集します。

root@yosan3:/mnt# blkid
(中略)
/dev/mapper/tvrec--vg-tvrec--lv: UUID="5a03caa7-b847-4aa0-****-************" BLOCK_SIZE="4096" TYPE="ext4"

fstabへ書き込み

root@yosan3:/mnt# vi /etc/fstab/

(最下部に追記)

/dev/disk/by-uuid/743e0d69-d4a9-4261-****-************ /mnt/ext-hdd ext4 defaults 0 0

 

・EPGStationの録画ディレクトリ/実行ユーザの変更

EPGStationの録画ディレクトリをマウントしたHDDに変更します。

コンテナのuidとシステムのuidを対応付けないと正常にコンテナ側から認識できない点に注意が必要です。

 

www.digital-den.jp

github.com

 

まず実行ユーザのuid/gid確認します。

makoro@yosan3:/mnt/tvrec$ id
uid=1000(makoro) gid=1000(makoro) groups=1000(makoro),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),101(lxd)

 

得られたuid/gidを元に、docker-compose.ymlを編集し起動オプションを変更します。

    epgstation:
        build:
            context: "./epgstation"
            dockerfile: "debian.Dockerfile"
        volumes:
            - ./epgstation/config:/app/config
            - ./epgstation/data:/app/data
            - ./epgstation/thumbnail:/app/thumbnail
            - ./epgstation/logs:/app/logs
            - /mnt/tvrec:/app/recorded

        environment:
            TZ: "Asia/Tokyo"
        depends_on:
            - mirakurun
            - mysql
        ports:
            - "8888:8888"
            - "8889:8889"
        user: "1000:1000"←コメントアウト解除

今回はrootで/mnt/tvrecをマウントしてしまったため、通常ユーザではアクセス件の問題でそのままだと同期できないので注意。マウントポイントのアクセス権を777等にchmodで変更するか、ユーザを適切に設定しアクセス件があるようにしておく必要があります。

 

makoro@yosan3:/mnt/tvrec$ sudo chmod 777 /mnt/tvrec/
[sudo] password for makoro:
makoro@yosan3:/mnt/tvrec$ ls -la /mnt/
total 12
drwxr-xr-x  3 root root 4096 May  3 11:38 .
drwxr-xr-x 23 root root 4096 Apr 17 14:51 ..
drwxrwxrwx  3 root root 4096 May  6 09:00 tvrec

 

またイントール時に一度rootでEPGStationを起動してしまっているため、uidの設定変更に追従するためEPGStationのディレクトリの所有ユーザを変更しておきます。

 

root@yosan3:/home/docker-config/docker-mirakurun-epgstation# chown -R makoro:makoro epgstation/
root@yosan3:/home/docker-config/docker-mirakurun-epgstation# ls -la
total 52
drwxr-xr-x 7 root   root   4096 May  6 05:49 .
drwxr-xr-x 3 root   root   4096 Apr 18 10:59 ..
-rw-r--r-- 1 root   root   2112 Apr 18 10:59 docker-compose-sample.yml
-rw-r--r-- 1 root   root   2110 May  6 05:49 docker-compose.yml
drwxr-xr-x 2 root   root   4096 Apr 18 10:59 docs
drwxr-xr-x 6 makoro makoro 4096 Apr 18 10:59 epgstation
drwxr-xr-x 8 root   root   4096 Apr 18 10:59 .git
-rw-r--r-- 1 root   root    513 Apr 18 10:59 .gitignore
-rw-r--r-- 1 root   root   1063 Apr 18 10:59 LICENSE
drwxr-xr-x 4 root   root   4096 Apr 18 10:59 mirakurun
-rw-r--r-- 1 root   root   1769 Apr 18 10:59 Readme.md
drwxr-xr-x 2 root   root   4096 Apr 18 10:59 recorded
-rw-r--r-- 1 root   root    610 Apr 18 10:59 setup.sh

root@yosan3:/home/docker-config/docker-mirakurun-epgstation# cd epgstation/
root@yosan3:/home/docker-config/docker-mirakurun-epgstation/epgstation# ls -la
total 36
drwxr-xr-x 6 makoro makoro 4096 Apr 18 10:59 .
drwxr-xr-x 7 root   root   4096 May  6 05:49 ..
-rw-r--r-- 1 makoro makoro 2056 Apr 18 10:59 alpine.Dockerfile
drwxr-xr-x 2 makoro makoro 4096 Apr 18 10:59 config
drwxr-xr-x 4 makoro makoro 4096 Apr 18 12:31 data
-rw-r--r-- 1 makoro makoro 1580 Apr 18 10:59 debian.Dockerfile
-rw-r--r-- 1 makoro makoro   35 Apr 18 10:59 .dockerignore
drwxr-xr-x 5 makoro makoro 4096 Apr 18 12:31 logs
drwxr-xr-x 2 makoro makoro 4096 May  6 03:50 thumbnail

 

コンテナを再度docker-compose経由で起動し、ストレージが変更されていることを確認します。

 

・Mirakurunの設定

MirakurunでBSのチューナを追加し、BS側も録画可能にしておきます。

設定はMirakurunのGUI上でConfig→ChannelsよりEnableにすることで利用可能です。

 

・NextCloudを導入しファイルのやり取りを簡単にする

今回はリモート運用する機材のため、ファイルのやり取りを簡単にするためにNextcloudも導入します。サーバなのでCLI版であるnextcloud-desktop-cmdを導入しました。

root@yosan3:/mnt/tvrec# apt-get install nextcloud-desktop-cmd

The following additional packages will be installed:
  adwaita-icon-theme at-spi2-common at-spi2-core dconf-gsettings-backend dconf-service fontconfig gcr gcr4 gnome-keyring gnome-keyring-pkcs11 gsettings-desktop-schemas gstreamer1.0-gl gstreamer1.0-plugins-base gtk-update-icon-cache
  hicolor-icon-theme humanity-icon-theme i965-va-driver intel-media-va-driver isa-support libaacs0 libasyncns0 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libavahi-client3 libavahi-common-data libavahi-common3 libavcodec60
  libavformat60 libavutil58 libb2-1 libbdplus0 libbluray2 libcairo-gobject2 libcairo-script-interpreter2 libcairo2 libcdparanoia0 libchromaprint1 libcjson1 libcloudproviders0 libcodec2-1.2 libcolord2 libcups2t64 libdatrie1 libdav1d7
  libdconf1 libdouble-conversion3 libdrm-amdgpu1 libdrm-intel1 libegl-mesa0 libegl1 

(中略)

0 upgraded, 270 newly installed, 0 to remove and 14 not upgraded.
Need to get 215 MB of archives.
After this operation, 837 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

(中略)

依存関係により大量のパッケージがインストールされます(笑)

 

インストール後にCLIコマンドで手持ちのサーバと同期させます。

root@yosan3:~# nextcloudcmd --path /YOSAN3 --trust --silent /mnt/tvrec/ https://USERNAME:PASSWORD@SERVER_URL/

 

同期できることを確認したら、

ファイル同期を1時間毎に実行するようにcrontabへ登録しておきます。

root@yosan3:~#crontab -e

 

0 * * * * nextcloudcmd --path /YOSAN3 --trust /mnt/tvrec/ https://USERNAME:PASSWORD@SERVER_URL/

 

 

・リモート管理のためにtailscaleを導入

リモート保守用にTailscaleを入れておきます。

tailscale.com

makoro.hatenablog.jp

 

root@yosan3:~# systemctl status tailscaled
tailscaled.service - Tailscale node agent
     Loaded: loaded (/usr/lib/systemd/system/tailscaled.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-05-04 11:00:32 UTC; 34min ago
       Docs: https://tailscale.com/docs/
   Main PID: 834 (tailscaled)
     Status: "Connected; USERNAME@gmail.com; 100.xxx.xxx.xxx fd7a:115c:a1e0::0000:0000"
      Tasks: 11 (limit: 18454)
     Memory: 45.8M (peak: 50.8M)
        CPU: 2.260s
     CGroup: /system.slice/tailscaled.service
             mq834 /usr/sbin/tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/run/tailscale/tailscaled.sock --port=41641

May 04 11:00:44 yosan3 tailscaled[834]: magicsock: endpoints changed: xxx.xxx.xxx.xx:58181 (stun), xxx.xxx.xxx.xxx:41641 (local), xxx.xxx.xxx.xxx:41641 (local), 192.168.xxx.xxx:41641 (local)
May 04 11:00:44 yosan3 tailscaled[834]: Switching ipn state Starting -> Running (WantRunning=true, nm=true)
May 04 11:00:44 yosan3 tailscaled[834]: control: NetInfo: NetInfo{varies=false ipv6=false ipv6os=true udp=true icmpv4=false derp=#7 portmap= link="" firewallmode="ipt-default"}
May 04 11:00:44 yosan3 tailscaled[834]: magicsock: derp-7 connected; connGen=1
May 04 11:00:44 yosan3 tailscaled[834]: health(warnable=no-derp-connection): ok
May 04 11:01:27 yosan3 tailscaled[834]: logtail: upload succeeded after 1 failures and 55s
May 04 11:07:11 yosan3 tailscaled[834]: Received error: PollNetMap: unexpected EOF
May 04 11:07:11 yosan3 tailscaled[834]: control: controlhttp: forcing port 443 dial due to recent noise dial
May 04 11:07:12 yosan3 tailscaled[834]: control: netmap: got new dial plan from control
May 04 11:07:12 yosan3 tailscaled[834]: netmap: suggested exit node: tailscale-ubuntu (nHHDpe3CNTRL)

 

管理用にTailscale SSHも有効化しておきます。

tailscale.com

tailscale SSHSを有効化しておくと、Tailscaleの管理コンソールからWebブラウザ経由でもSSHログインが可能になります。便利。

もしくはtailnetに接続したPCから録画鯖のtainet IPに対してSSHクライアントをかければSSHが可能になります。便利。(初回の接続時はtailscale側から認証が要求されます)

 

●まとめ

ちなみに作りはしましたが、実はまだリモートには置いていません(笑)

今リモートに置いている録画鯖が死んでしまったら交換用として準備しておこうかなと思い、構築手順を確立させるべくテストで作ってみた、という感じです。

ひとまず作り方の勘所はわかったので実際の運用までにはひとまずステイですかね。

 

 

もう同じ悲劇は繰り返さないために。(Webスクレイピング+InfluxDB+Grafanaで水位表示サイネージを作ってみる その3:Intel NUCを使って宅内サイネージを作る)

梅雨が来れば思い出す~♪ 土砂降りの雨、水没車~♪

 

息が長いこの企画も色々進めていきます。

今回は宅内サイネージ編。

 

続きを読む

おかしいなぁ PC用電動エアダスターを書いたかったはずなのに・・・(マキタ 電動エアダスターAS180D俺的レビュー)

性能と機能を色々調べていって最終的に予算オーバーになるのはあるあるですよね?

ということで電動エアダスターを購入しましたので簡単俺的レビュー。

 

続きを読む

突然のマジェくんの延命計画。(Majestouch FKCS108NBTを買いました)

マジェスタッチよ、永遠に。

 

長年愛用しているメインマシン用のメカニカルキーボードであるMajestouch。

Majestouch2でもなく、初代からずっと愛用しています。

今回はFILCOが事業終了してしまったため、慌ててキートップを買いに走ったお話。

続きを読む

NextCloudのカスタムコンテナバージョンアップ。

今後は証明書の期限も短くなるらしいですし、カスタムコンテナの作業が多くなりそう。

ということでコンテナ化したNextCloudのバージョンアップ作業を行いました。

カスタム証明書を入れている関係で単純にpullして終わりじゃないのが辛いところ。

 

続きを読む