障害内容 → 部品交換†
障害内容(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
raid1 の自動再チェックのインターバル修正†
### Editing /etc/systemd/system/mdcheck_start.timer.d/override.conf
### Anything between here and the comment below will become the contents of the drop-in file
[Timer]
OnCalendar=
OnCalendar=semiannually
### Edits below this comment will be discarded
### /usr/lib/systemd/system/mdcheck_start.timer
# # This file is part of mdadm.
# #
# # mdadm is free software; you can redistribute it and/or modify it
# # under the terms of the GNU General Public License as published by
# # the Free Software Foundation; either version 2 of the License, or
# # (at your option) any later version.
#
# [Unit]
# Description=MD array scrubbing
#
# [Timer]
# OnCalendar=Sun *-*-1..7 1:00:00
# RandomizedDelaySec=24h
# Persistent=true
#
# [Install]
# WantedBy=mdmonitor.service
# Also=mdcheck_continue.timer
- 変更を反映し、正しく更新されたか確認する
[KGB2] munakata:~$ sudo systemctl daemon-reload
[KGB2] munakata:~$ sudo systemctl restart mdcheck_start.timer
[KGB2] munakata:~$ systemctl list-timers mdcheck_start.timer
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2026-07-01 10:38:42 JST 5 months 24 days Sun 2026-01-04 17:48:29 JST - mdcheck_start.timer mdcheck_start.service
1 timers listed.
Pass --all to see loaded but inactive timers, too.
リカバリー(アプリ)†
Apache2†
- サーバー証明書
- 以前利用していた証明書を戻す
- Let's Encrypt インストール
- Let's Encrypt 自動更新管理
Pukiwiki†
- 今回の復旧戦略は「当時想定されていなかった組み合わせ」
- PukiWiki 1.4系
- PHP 8.3
- 絶対パス構成
- DATA_HOME 分離
元々動作していた環境(=設定)をそのまま復元するだけで動作と期待したが、pukiwiki 1.5.4 は php8.1 対応だが、インストールした時点の Ubuntu 24.04 の
php が 8.3 にバージョンアップされた影響で今回大幅な設定変更が必要 だった。
[KGB2] munakata:~/Downloads$ php -v
PHP 8.3.6 (cli) (built: Jul 14 2025 18:30:55) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
- インストール
- 既にWeb上の 公式サイト からは Pukiwiki をダウンロードすることができなくなっていた。
- 現状の最新(=最終?)バージョンは 1.5.4、ダウンロード済だった 1.5.4 を利用することにした。 ダウンロードサイト
- 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 などのデータ保存用ディレクトリーは無くなった
- ディレクトリー構成(プログラム本体、データ):プログラム本体は /var/www/html/pukiwiki に配置した上でデータ系ディレクトリを削除
[KGB2] munakata:~$ ls -la /var/www/html/pukiwiki/
total 208
drwxr-xr-x 4 www-data www-data 4096 12月 30 18:26 .
drwxr-xr-x 4 root root 4096 12月 25 12:05 ..
-rw-r--r-- 1 www-data www-data 1157 1月 31 2020 .htaccess
-rw-r--r-- 1 www-data www-data 564 4月 29 2005 .htpasswd
-rw-r--r-- 1 www-data www-data 18009 8月 29 2004 COPYING.txt
-rw-r--r-- 1 www-data www-data 11136 3月 21 2022 INSTALL.txt
-rw-r--r-- 1 www-data www-data 2770 3月 27 2022 README.en.txt.zip
-rw-r--r-- 1 www-data www-data 16026 3月 22 2022 README.txt
-rw-r--r-- 1 www-data www-data 1259 3月 27 2022 UPDATING.en.txt.zip
-rw-r--r-- 1 www-data www-data 15290 3月 14 2022 UPDATING.txt
-rw-r--r-- 1 www-data www-data 7425 12月 30 18:26 default.ini.php
-rw-r--r-- 1 www-data www-data 17161 1月 29 2022 en.lng.php
lrwxrwxrwx 1 root root 25 12月 24 23:22 image -> /raid_vol/puki_data/image
-rw-r--r-- 1 www-data www-data 754 12月 25 08:46 index.php
-rw-r--r-- 1 www-data www-data 896 12月 25 07:27 index.php_test
-rw-r--r-- 1 www-data www-data 19920 1月 12 2022 ja.lng.php
-rw-r--r-- 1 www-data www-data 14027 1月 11 2022 keitai.ini.php
drwxr-xr-x 2 www-data www-data 4096 3月 27 2022 lib
drwxr-xr-x 2 www-data www-data 4096 12月 25 15:56 plugin
-rw-r--r-- 1 www-data www-data 22118 12月 25 15:35 pukiwiki.ini.php
-rw-r--r-- 1 www-data www-data 1536 12月 3 2014 rules.ini.php
lrwxrwxrwx 1 root root 24 12月 24 23:22 skin -> /raid_vol/puki_data/skin
-rw-r--r-- 1 www-data www-data 11949 3月 27 2022 wiki.en.zip
- データは別の場所(/raid_vol/puki_data)に配置
[KGB2] munakata:~$ ls -la /raid_vol/puki_data/
total 764
drwxrwxr-x 10 www-data www-data 4096 12月 25 08:50 .
drwxr-xr-x 8 root root 4096 12月 23 18:06 ..
-rw-rw-r-- 1 www-data www-data 34 2月 8 2023 .htaccess
drwxrwxr-x 2 www-data www-data 643072 12月 30 19:16 attach
drwxrwxr-x 2 www-data www-data 20480 12月 30 19:12 backup
drwxrwxr-x 2 www-data www-data 20480 12月 30 19:25 cache
drwxrwxr-x 2 www-data www-data 4096 1月 7 2020 counter
-rw-r--r-- 1 www-data www-data 7424 1月 11 2022 default.ini.php
drwxrwxr-x 2 www-data www-data 20480 12月 30 19:08 diff
drwxrwxr-x 3 www-data www-data 4096 2月 8 2023 image
-rw-r--r-- 1 www-data www-data 14027 1月 11 2022 keitai.ini.php
lrwxrwxrwx 1 root root 29 12月 25 08:50 plugin -> /var/www/html/pukiwiki/plugin
-rw-r--r-- 1 www-data www-data 1536 12月 3 2014 rules.ini.php
drwxrwxr-x 2 www-data www-data 4096 2月 22 2024 skin
drwxrwxr-x 2 www-data www-data 20480 12月 30 19:08 wiki
- pukiwiki.ini.php} の変更内容(特別な内容はない) --> &ref(): File not found: "pukiwiki.ini.php" at page "HomeServer35";
- 管理者名の変更 => munakata
- 管理者パスワードの変更 => !frex7785
- FrontPage の変更 => KGB
- 差分
[KGB2] munakata:~/wk/pukiwiki-1.5.4_utf8$ diff pukiwiki.ini.php /var/www/html/pukiwiki/pukiwiki.ini.php
122c122
< $modifier = 'anonymous';
---
> $modifier = 'munakata';
128c128,129
< $defaultpage = 'FrontPage'; // Top / Default page
---
> //$defaultpage = 'FrontPage'; // Top / Default page
> $defaultpage = 'KGB'; // Top / Default page
192c193,194
< $adminpass = '{x-php-md5}!';
---
> //$adminpass = '{x-php-md5}!';
> $adminpass = '{x-php-md5}' . md5('!freedman7785');
- index.php の変更内容(データディレクトリの指定、php8.3 対策) --> &ref(): File not found: "index.php" at page "HomeServer35";
- DATA_HOME に /raid_vol/puki_data を指定
- php8.3 に起因するエラーを抑止
- 変更後の index.php
[KGB2] munakata:~/wk/pukiwiki-1.5.4_utf8$ cat /var/www/html/pukiwiki/index.php
<?php
error_reporting(E_ERROR | E_PARSE);
chdir(__DIR__);
// PHP8対策:未定義定数を潰す
define('PKWK_OPTIMISE', 0);
// absolute paths
define('DATA_HOME', '/raid_vol/puki_data/');
define('LIB_DIR', __DIR__ . '/lib/');
define('INI_FILE', __DIR__ . '/pukiwiki.ini.php');
// language (this tree uses docroot/*.lng.php)
define('LANG_FILE', __DIR__ . '/ja.lng.php');
define('LANG_FILE_HINT', __DIR__ . '/ja.lng.php');
define('UA_INI_FILE', __DIR__ . '/default.ini.php');
//define('RULES_FILE', __DIR__ . '/rules.ini.php');
//define('UA_INI_FILE', array(
// 'default' => __DIR__ . '/default.ini.php',
// 'keitai' => __DIR__ . '/keitai.ini.php',
// 'rules' => __DIR__ . '/rules.ini.php',
//));
require(LIB_DIR . 'pukiwiki.php');
?>
リカバリー(運用系)†