编辑1:与我创建这个问题时最初的想法不同,似乎问题不是由计划外的电源循环直接引起的,而是由我过去对 beadm 犯的一个错误引起的,并且该错误仅在此后第一次重启后才生效。
这曾经是(现在仍然是)问题的实际核心:
我认为自该快照以来的大部分更改应该仍在磁盘上的某个位置。是否有任何机会(除了为原始设备编写自己的 zfs-reader)访问自上次快照以来更改的特定文件?
评论中要求的更多信息:
清单
BE Name Flags Mountpoint Space Policy Created
---------------- ----- ---------- ------- ------ ----------------
11.4.23.69.3 NR / 73.93G static 2020-07-27 12:08
solaris - - 95.53G static 2020-05-23 19:35
solaris-backup-1 - - 374.41M static 2020-07-22 14:37
zfs 列表:
NAME USED AVAIL REFER MOUNTPOINT
rpool 382G 713G 73.5K /rpool
rpool/ROOT 170G 713G 31K none
rpool/ROOT/11.4.23.69.3 75.5G 713G 63.3G /
rpool/ROOT/11.4.23.69.3/var 3.12G 713G 1.14G /var
rpool/ROOT/solaris 94.2G 713G 143G /
rpool/ROOT/solaris-backup-1 98.9M 713G 48.5G /
rpool/ROOT/solaris-backup-1/var 1K 713G 1.13G /var
rpool/ROOT/solaris/var 503M 713G 1.29G /var
rpool/VARSHARE 102M 713G 24.7M /var/share
rpool/VARSHARE/kvol 27.7M 713G 31K /var/share/kvol
rpool/VARSHARE/kvol/dump_summary 1.22M 713G 1.02M -
rpool/VARSHARE/kvol/ereports 10.2M 713G 10.0M -
rpool/VARSHARE/kvol/kernel_log 16.2M 713G 16.0M -
rpool/VARSHARE/pkg 63K 713G 32K /var/share/pkg
rpool/VARSHARE/pkg/repositories 31K 713G 31K /var/share/pkg/repositories
rpool/VARSHARE/sstore 30.0M 713G 30.0M /var/share/sstore/repo
rpool/VARSHARE/tmp 20.0M 713G 20.0M /var/tmp
rpool/VARSHARE/zones 31K 713G 31K /system/zones
rpool/dump 63.1G 713G 63.1G -
rpool/export 20.5G 713G 32K /export
rpool/export/home 20.5G 713G 7.26G /export/home
rpool/export/home/avl 9.30G 713G 9.30G /export/home/avl
(除我的主目录外,其中大部分都是机器自带的)
只有根文件系统似乎已回滚,我的主目录仍然保留所有最近的文件。
根据df -kl
根文件系统的输出,当前是这个:rpool/ROOT/11.4.23.69.3
,它已经对应于最新的可用 BE。
我还希望从答案中了解真正导致回滚的原因。不,我记不清我调用了哪些 beadm。我只记得我更改了下次启动的 BE,但随后将其改回当前 BE 并且没有重新启动 - 直到那次电源故障。
也许这里的答案以后也许还能拯救其他人。
答案1
数据被丢弃。您可能会使用特殊工具恢复一些痕迹,但没有可靠的方法可以依赖。
答案2
我的所有数据都还在那里...
一些友好(且耐心)的人向我解释了启动环境和快照的概念。
本质上,对于像我这样拥有更多 Linux 背景而非 Solaris 背景的人来说,这些启动环境看起来就像“要挂载到 / 的替代设备”,具有一些共享通用文件的魔力(就像快照一样),并且还具有与系统更新工具共享的一些魔力,以使升级实际上进入不同的启动环境。
我在 7 月 27 日做了一些系统更新,并将新系统安装到新的启动环境 11.4....(参见问题文本中的“zfs 列表”),但是在所有这些月中,我们仍然运行名为“solaris”的启动环境,因为升级后我从未重新启动过。
在最近断电后重新启动后,它安装了“11.4...”根文件系统,当然它没有“solaris”BE 的任何最新更改。
与此同时,我已经重建了大部分丢失的更改,但对于那些我无法从记忆中重建的剩余更改,我现在将之前的启动环境“solaris”安装到/mnt:zfs mount -oro,mountpoint=/mnt rpool/ROOT/solaris
它们就在那里,我丢失的更改......
也许这以后会对其他人有所帮助。
寓意:zfs 毕竟看起来是一个相当安全的数据避风港——除非我陷入我最初认为的那种情况。