障害内容 → 部品交換†
障害内容(2025/12/23)†
- EPGStation アプリが表示できなくなった(pukiwiki, samba 等は正常)
- reboot すらできなくなった
[KGB2] munakata:~$ sudo reboot
Broadcast message from root@kgb2 on pts/1 (Tue 2025-12-23 17:52:35 JST):
The system will reboot now!
Call to Reboot failed: Access denied
- sudo reboot 自体は実行された
- systemd が reboot トランザクションを開始
- しかし 最後の reboot syscall が拒否された
- systemd-logind は生きている
- しかし reboot.target がロードできない
- そのため Access denied(= 実行不能)
- systemdの再インストールを試みたが以下のエラーが出て更新できず
dpkg: unrecoverable fatal error, aborting:
loading files list file for package 'logrotate':
cannot open /var/lib/dpkg/info/logrotate.list (不正なメッセージです)
Error: GDBus.Error:org.freedesktop.systemd1.NoSuchUnit: Unit packagekit.service not found.
E: Sub-process /usr/bin/dpkg returned an error code (2)
- これは systemd 以前に dpkg のデータベース自体が破損している 状態です。なので reboot.target が無いのも結果であって原因ではありません。
- rescue 環境で fsck → dpkg 再構築 or OS 再インストール(/data 保持)を ChatGPT に勧められたが
- 起動用メディアの故障率が気になった(あなたのログには、危険信号が揃っています) ->
nvme_error.txt
[KGB2] munakata:~$ sudo dmesg | grep -i -E "ext4|nvme|i/o error"
[563027.945734] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[563027.946248] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[563027.946961] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[563027.948109] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[563027.948801] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[563027.949384] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[563027.949787] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[563027.950963] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[563027.951360] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[563027.951831] EXT4-fs error (device nvme1n1p2): ext4_dx_find_entry:1798: inode #7602363: block 36: comm dpkg: Directory block failed checksum
[616649.534913] EXT4-fs error: 10 callbacks suppressed
[616649.534916] EXT4-fs error (device nvme1n1p2): htree_dirblock_to_tree:1109: inode #7602363: block 30417215: comm apport: bad entry in directory: inode out of bounds - offset=88192, inode=1936288814, rec_len=116, size=4096 fake=0
[616649.535380] EXT4-fs error (device nvme1n1p2): htree_dirblock_to_tree:1083: inode #7602363: block 36: comm apport: Directory block failed checksum
[616649.535839] EXT4-fs error (device nvme1n1p2): htree_dirblock_to_tree:1083: inode #7602363: block 36: comm apport: Directory block failed checksum
[616868.773653] EXT4-fs (nvme0n1p1): error count since last fsck: 5
[616868.773671] EXT4-fs (nvme0n1p1): initial error at time 1761496052: ext4_mb_generate_buddy:1217
[616868.773679] EXT4-fs (nvme0n1p1): last error at time 1766019732: ext4_mb_generate_buddy:1217
[627354.624630] EXT4-fs (nvme1n1p2): error count since last fsck: 129
[627354.624643] EXT4-fs (nvme1n1p2): initial error at time 1765715322: htree_dirblock_to_tree:1083: inode 7602363: block 36
[627354.624658] EXT4-fs (nvme1n1p2): last error at time 1766320222: htree_dirblock_to_tree:1083: inode 7602363: block 36
[630992.102962] EXT4-fs error (device nvme0n1p1): ext4_mb_generate_buddy:1217: group 1805, block bitmap and bg descriptor inconsistent: 32760 vs 32762 free clusters
- nvme1n1p2(root)が“進行性”に壊れている
EXT4-fs (nvme1n1p2): error count since last fsck: 2 → 25 → 48 → 77 → 106 → 149
- fsck していないのに エラーカウントが増え続けている
- 同じ inode / block を何度も壊す
- 👉 メディア上の同一物理領域が不安定
- ext4 の「チェックサム破壊」+「inode out of bounds」
Directory block failed checksum
inode out of bounds
bad entry in directory
- これはソフトウェアバグではほぼ起きない
- メモリ化けだけでもここまで繰り返さない
- 👉 ストレージ層でのビット化けを強く示唆
- dpkg / apport / unattended-upgr が巻き添えで死んでいる
comm dpkg
comm apport
comm unattended-upgr
- ランダムではなく「書き込みが多い領域」から壊れる
- /var/lib/dpkg が最初に死ぬのは典型
- 👉 「OS が壊れた」のではなく「OS を載せている床が崩れている」
- 起動用メディア(NVMeSSD /dev/nvme)を新品に交換して OS 再インストール が最も安全・最短・確実
交換前のディスクレイアウト(実メディアのみ)†
[KGB2] munakata:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme1n1p2 457G 49G 385G 12% /
/dev/nvme1n1p1 1.1G 6.2M 1.1G 1% /boot/efi
/dev/nvme0n1p1 3.6T 1.7T 1.8T 49% /dtv_recipe
/dev/md0 7.3T 2.9T 4.0T 43% /raid_vol
/dev/sdc1 15T 8.3T 5.5T 61% /dtv_h264B
/dev/sdd1 13T 5.6T 6.5T 47% /dtv_h264A
/dev/sde1 13T 8.1T 4.0T 68% /dtv_h264C
交換部品(nvme1n)†
- 現状 / ディレクトリは 50G 程度しか消費していないので、512G→256Gのサイズダウンを行った
- fanxiang SSD S500 Pro 256GB: NVMe PCIe Gen3.0x4 2800MB/s TLC 3D NAND M.2 2280 内蔵SSD 32Gb/s 200TBW 5年保証
リカバリー準備†
ファイルバックアップ → / 以外のHDDをすべて切断†
- /etc 以下
[KGB2] munakatasudo:~$ sudo mkdir -p /raid_vol/reinstall_backup/etc
[KGB2] munakatasudo:~$ sudo cp -a /etc /raid_vol/reinstall_backup/
- ユーザー、グループ情報
[KGB2] munakatasudo:~$ getent passwd | sudo tee /raid_vol/reinstall_backup/passwd.txt > /dev/null
[KGB2] munakatasudo:~$ getent group | sudo tee /raid_vol/reinstall_backup/group.txt > /dev/null
- cron / timers
[KGB2] munakatasudo:~$ sudo crontab -l > sudo tee /raid_vol/reinstall_backup/root.cron > /dev/null
[KGB2] munakatasudo:~$ crontab -l > /raid_vol/reinstall_backup/munakata.cron
- mdadm RAID
[KGB2] munakatasudo:~$ sudo mdadm --detail --scan | sudo tee /raid_vol/reinstall_backup/mdadm.conf > /dev/null
[KGB2] munakatasudo:~$ sudo mdadm --detail /dev/md0 | sudo tee /raid_vol/reinstall_backup/md0.detail > /dev/null
- netplan (network 設定)
[KGB2] munakatasudo:~$ sudo cp -a /etc/netplan /raid_vol/reinstall_backup/
- Docker / コンテナ(mirakurun だけ Docker で運用中)
リカバリー(環境)†
OS re-install†
- Ubuntu 24.04.3 server を利用
- NVMeSSD には手動でパーティションを作成
| Partition | Mouont Point | Size | Format |
| nvme0n1p1 | 未使用 | 端数(1M) | |
| nvme0n1p2 | /boot | 32G | ext4 |
| nvme0n1p3 | / | 残りすべて(206G) | ext4 |
- Ubuntu serverはOSインストール中にnetplanを利用した固定IP設定を行う
[KGB2] munakata:~$/raid_vol/reinstall_backup/etc$ sudo cat netplan/50-cloud-init.yaml
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
enp7s0:
addresses:
- 192.168.11.20/24
nameservers:
addresses:
- 192.168.11.1
search: []
routes:
- to: default
via: 192.168.11.1
version: 2
wifis: {}
RAID0†
- RAIDディスクペアを接続した時に sda-sda1-md127 と sdb-sdb1-md127 という2つのボリュームが見える
- RAID1 の メンバーは正しく検出されている
- しかし旧 md0 の名前が引き継がれず system が 一時名 md127 を振った
- sda1, sdb1 の UUID が一致していることを確認
[KGB2] munakatasudo:~$ lsblk
[KGB2] munakatasudo:~$ cat /proc/mdstat
[KGB2] munakatasudo:~$ sudo mdadm --examine /dev/sda1
[KGB2] munakatasudo:~$ sudo mdadm --examine /dev/sdb1
- 自動生成された md127 を停止する
[KGB2] munakatasudo:~$ sudo mdadm --stop /dev/md127
- md0 としてRAID0を再構成
[KGB2] munakatasudo:~$ sudo mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1
- md0に対してfsckを実行
[KGB2] munakatasudo:~$ sudo fsck.ext4 -f /dev/md0
- 手動マウント
[KGB2] munakatasudo:~$ sudo mkdir -p /raid_vol
[KGB2] munakatasudo:~$ sudo mount /dev/md0 /raid_vol
- 永続化
[KGB2] munakatasudo:~$ sudo mdadm --detail --scan | sudo tee /etc/mdadm/mdadm.conf
- initramfs 更新
[KGB2] munakatasudo:~$ sudo update-initramfs -u
- 再起動して md0 が正常にマウントされることを確認
その他 HDD/SSD リカバリー → ディスク認識†
- 各ドライブを接続し、マウントする前に各パーティションに対して fsck をかける
- /boot のフォーマット指定が変わった(FAT32 → ext4) のでUUIDの指定が変わった
- fstab のパラメータの defaults を間違って default と書いたら swap がマウントできなくなり修正に一苦労
- 現状の fstab の設定
# <file system> <mount point> <type> <options> <dump> <pass>
/swap.img none swap sw 0 0
/dev/md0 /raid_vol ext4 defaults,nofail 0 0
UUID=26648dca-75d8-474a-8d4e-e4c0661909da / ext4 defaults 0 1
UUID=eefb4256-7f5f-4dd9-9e20-2ef0837a5e68 /boot ext4 defaults 0 1
UUID=2665e64e-338c-43b7-963a-2465a48f973c /dtv_recipe auto nosuid,nodev,nofail 0 0
UUID=673bf4bd-ab71-41e3-adfa-2326241f1152 /dtv_h264A auto nosuid,nodev,nofail 0 0
UUID=ddf9c10e-9018-4a38-aecb-d94eccf8f061 /dtv_h264B auto nosuid,nodev,nofail 0 0
UUID=6c0e0325-f4b9-4fb4-84b3-e9c31adb5a5b /dtv_h264C auto nosuid,nodev,nofail 0 0
sshd 有効化†
- ssh-server のインストール(インストーラで対応済の可能性もある)
[KGB2] munakatasudo:~$ sudo apt install openssh-server
- 設定情報はバックアップから戻す(/etc/ssh/sshd_config)
- ssh ポート = 8722
- rootによるログイン禁止
- パスワードによるログイン禁止
- 公開鍵方式のログインのみ受付
- 認証情報は home/munakata/.ssh の下に残っている
- 自動起動設定(systemd サービス登録)
[KGB2] munakatasudo:~$ sudo systemctl enable ssh
[KGB2] munakatasudo:~$ sudo systemctl start ssh
- 設定確認
[KGB2] munakatasudo:~$ sshd -t
Missing privilege separation directory: /run/sshd
というエラーが出るが、ssh接続中でないので /run 以下のディレクトリーが無いため(正常)
実験用に /run/sshd を作成して再テスト
[KGB2] munakatasudo:~$ sudo mkdir -p /run/sshd
[KGB2] munakatasudo:~$ sudo chmod 755 /run/sshd
[KGB2] munakatasudo:~$ sudo sshd -t
何も表示されなければ OK
ネットワークインターフェースの調整†
- NVMe交換の影響か、PCIの番号割り当てが変化したようで、ネットワークインターフェース名が変わった(enp6s0→enp7s0)
- 結果として優先LANが活性化できず、ネットがダウンした状態
- /etc/netplan/50-cloud-init.yaml を編集して、正しいインターフェース名を再設定した
- ネットワークステータス確認
[KGB2] munakata:~$ networkctl status
● Interfaces: 3, 2, 1
State: routable
Online state: online
Address: 192.168.11.20 on enp7s0
172.17.0.1 on docker0
fe80::9e6b:ff:fe93:286b on enp7s0
Gateway: 192.168.11.1 on enp7s0
DNS: 192.168.11.1
8.8.8.8
Search Domains: hmuna.com
12月 25 14:36:18 kgb2 systemd-networkd[987]: lo: Gained carrier
12月 25 14:36:18 kgb2 systemd-networkd[987]: Enumeration completed
12月 25 14:36:18 kgb2 systemd[1]: Started systemd-networkd.service - Network Configuration.
12月 25 14:36:18 kgb2 systemd-networkd[987]: enp7s0: Configuring with /run/systemd/network/10-netplan-enp7s0.network.
12月 25 14:36:18 kgb2 systemd[1]: Starting systemd-networkd-wait-online.service - Wait for Network to be Configured...
12月 25 14:36:18 kgb2 systemd-networkd[987]: enp7s0: Link UP
12月 25 14:36:21 kgb2 systemd-networkd[987]: enp7s0: Gained carrier
12月 25 14:36:22 kgb2 systemd-networkd[987]: enp7s0: Gained IPv6LL
12月 25 14:36:22 kgb2 systemd[1]: Finished systemd-networkd-wait-online.service - Wait for Network to be Configured.
12月 25 14:36:23 kgb2 systemd-networkd[987]: docker0: Link UP
samba 有効化†
- バックアップから設定を戻す(&ref(): File not found: "smb.conf" at page "HomeServer35";)
[KGB2] munakatasudo:~$ sudo cp -a /raid_vol/reinstall_backup/etc/samba /etc/
[KGB2] munakatasudo:~$ sudo chown -R root:root /etc/samba
[KGB2] munakatasudo:~$ sudo chmod 755 /etc/samba
- ユーザー確認と追加(Linux ユーザーとは別に設定必要)
[KGB2] munakatasudo:~$ getent passwd munakata(passwd ファイル内のmunakataエントリーの表示)
[KGB2] munakatasudo:~$ sudo smbpasswd -a munakata(samba パスワードの設定)
[KGB2] munakatasudo:~$ sudo smbpasswd -e munakata()
- smbd/mnbd の自動起動設定
[KGB2] munakatasudo:~$ sudo systemctl enable smbd nmbd
[KGB2] munakatasudo:~$ sudo systemctl start smbd nmbd
- ローカルでログイン確認
- パスワード(Ubuntu と同じ)でログインして一覧が見れればOK
[KGB2] munakatasudo:~$ smbclient -L localhost -U munakata
Password for [TEAMSPRIT\munakata]:
Sharename Type Comment
--------- ---- -------
HDR_Recipe Disk magu's HDR space
HDR_264A Disk magu's encoded video
HDR_264B Disk magu's encoded video2
HDR_264C Disk magu's encoded video3
winshare Disk Ubuntu <-> Windows file exchange
peewee Disk pee wee tree2
IPC$ IPC IPC Service (kgb2 server (Samba, Ubuntu))
SMB1 disabled -- no workgroup available
APCUPS(自動シャットタウン)†
- USB接続確認(最初、ケーブルが抜けていた)
[KGB2] munakata:~$ lsusb | grep American
Bus 001 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
- /etc/apcupsd/apcupsd.confの設定を修正(DEVICEは空欄、/dev/ttyS0 は間違い)
[KGB2] munakata:~$ sudo systemctl restart apcupsd
[KGB2] munakata:~$ sleep 2
[KGB2] munakata:~$ apcaccess
APC : 001,036,0858
DATE : 2025-12-26 14:04:19 +0900
HOSTNAME : kgb2
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : kgb2
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2025-12-25 14:36:22 +0900
MODEL : APC RS 550S
STATUS : ONLINE <----------- 読めてる
LINEV : 100.0 Volts <----------- 読めてる
LOADPCT : 16.0 Percent <----------- 読めてる
BCHARGE : 100.0 Percent <----------- 読めてる
TIMELEFT : 5.5 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 0 Seconds
SENSE : Medium
LOTRANS : 82.0 Volts
HITRANS : 123.0 Volts
ALARMDEL : No alarm
BATTV : 13.7 Volts
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x05000008
SERIALNO : 3B1824X71423
BATTDATE : 2018-06-16
NOMINV : 100 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 330 Watts
FIRMWARE : 941.c6 .A USB FW:c6
END APC : 2025-12-26 14:04:55 +0900
- バッテリー稼働が 3分以上 or 残量5%以下 → apcupsd が shutdown 発行
タイムゾーン設定、タイムソース設定†
- JSTにタイムゾーンを設定(デフォルトはUTC)
[KGB2] munakata:~$ timedatectl set-timezone Asia/Tokyo
[KGB2] munakata:~$ timedatectl
Local time: 金 2025-12-26 14:15:30 JST
Universal time: 金 2025-12-26 05:15:30 UTC
RTC time: 金 2025-12-26 05:15:30
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
- タイムソース Chrony のインストールと有効化
[KGB2] munakata:~$ sudo apt install chrony
[KGB2] munakata:~$ sudo systemctl enable chrony
[KGB2] munakata:~$ sudo systemctl start chrony
[KGB2] munakata:~$ [KGB2] munakata:~$ chronyc tracking
Reference ID : A0107185 (v160-16-113-133.ntp.tky2s.rnode.jp)
Stratum : 3
Ref time (UTC) : Fri Dec 26 05:10:53 2025
System time : 0.000173699 seconds fast of NTP time
Last offset : +0.000241416 seconds
RMS offset : 0.000129010 seconds
Frequency : 5.812 ppm fast
Residual freq : +0.006 ppm
Skew : 0.041 ppm
Root delay : 0.009385331 seconds
Root dispersion : 0.000646178 seconds
Update interval : 1033.5 seconds
Leap status : Normal
[KGB2] munakata:~$ chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- alphyn.canonical.com 2 10 377 101m -66us[ +74us] +/- 97ms
^- prod-ntp-5.ntp4.ps5.cano> 2 10 377 645 +3848us[+4087us] +/- 111ms
^- prod-ntp-4.ntp1.ps5.cano> 2 10 377 342 +3914us[+3914us] +/- 111ms
^- prod-ntp-3.ntp4.ps5.cano> 2 10 377 511 +3695us[+3936us] +/- 111ms
^- x.ns.gin.ntt.net 2 10 377 928 +3152us[+3387us] +/- 92ms
^- time.cloudflare.com 3 10 377 311 +4046us[+4046us] +/- 58ms
^* v160-16-113-133.ntp.tky2> 2 10 377 467 +624us[ +865us] +/- 4724us
^+ tokyo.timeadjust.org 2 10 377 1185 +94us[ +325us] +/- 5064us
ロケール(日本語)の設定†
- 日本語ロケールの生成
[KGB2] munakata:~$ sudo apt update
[KGB2] munakata:~$ sudo apt install -y locales
[KGB2] munakata:~$ sudo locale-gen ja_JP.UTF-8
[KGB2] munakata:~$ locale -a | grep ja_JP
ja_JP.utf8
- システムのデフォルトロケールを設定
[KGB2] munakata:~$ sudo update-locale LANG=ja_JP.UTF-8
リカバリー(アプリ)†
Apache2†
- サーバー証明書
- 以前利用していた証明書を戻す
- Let's Encrypt インストール
- Let's Encrypt 自動更新管理
Pukiwiki†
- インストール
- pukiwiki.ini.php 内のデータ保存保存場所の指定
/////////////////////////////////////////////////
// Directory settings I (ended with '/', permission '777')
// You may hide these directories (from web browsers)
// by setting DATA_HOME at index.php.
define('DATA_DIR', DATA_HOME . 'wiki/' ); // Latest wiki texts
define('DIFF_DIR', DATA_HOME . 'diff/' ); // Latest diffs
define('BACKUP_DIR', DATA_HOME . 'backup/' ); // Backups
define('CACHE_DIR', DATA_HOME . 'cache/' ); // Some sort of caches
define('UPLOAD_DIR', DATA_HOME . 'attach/' ); // Attached files and logs
define('COUNTER_DIR', DATA_HOME . 'counter/' ); // Counter plugin's counts
define('PLUGIN_DIR', DATA_HOME . 'plugin/' ); // Plugin directory
- DATA_HOME は index.php で指定される。
- 今回、DATA_HOME に /raid_vol/puki_data/ を指定し、シンボリックリンクは削除した
- 結果的に /var/www/html/pukiwiki から wiki, attach, backup などのデータ保存用ディレクトリーは無くなった
mirakurun (TVチューナーサーバー)†
EPGStation(TV録画アプリ)†
リカバリー(運用系)†