ZFS 數據在重新啟動時發生回滾後失去
編輯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
(大部分 - 除了我的 homedir - 是機器附帶的)
只有根文件系統似乎已被回滾,我的 homedir 仍然有所有最近的文件。
根據
df -kl
根文件系統的輸出,目前是這個:rpool/ROOT/11.4.23.69.3
,它已經對應於可用的最新 BE。我也希望從答案中了解真正可能導致回滾的原因。不,我不完全記得我的 beadm 呼叫。我只記得我為下次啟動更改了 BE,但隨後將其更改回目前的 BE 並且沒有重新啟動 - 直到電源故障。
也許這裡的答案也可能會在以後拯救其他人。
我所有的數據都還在…
一些友好(和耐心)的人向我解釋了引導環境和快照的概念。
從本質上講,對於像我這樣擁有更多 linux 而不是 solaris 背景的人來說,這些引導環境看起來像“掛載到 / 的替代設備”,具有共享公共文件的一些魔法(如快照),還有一些與系統更新共享的魔法升級工具實際上進入了不同的引導環境。
我在 7 月 27 日進行了一些系統更新,新系統安裝到了新的 boot-env 11.4….(請參閱問題文本中的“zfs 列表”),但是在這幾個月裡,我們仍在執行boot-env 命名為“solaris”,因為我在升級後從未重新啟動過。
在最近的電源故障後重新啟動,然後它安裝了“11.4 …”根文件系統,其中當然沒有“solaris”BE 的最新更改。
與此同時,我已經重建了大部分失去的更改,但是對於那些我無法從記憶中重建的剩餘更改,我現在將之前的 boot-env “solaris”掛載到 /mnt:
zfs mount -oro,mountpoint=/mnt rpool/ROOT/solaris
它們就在那裡,我的失去更改…也許這會在以後對其他人有所幫助。
道德:zfs 似乎是一個非常安全的數據避風港,畢竟 - 除非我可能遇到我最初認為自己所處的情況。
數據被丟棄。您可能會使用特殊工具恢復一些痕跡,但沒有可靠的方法可以依賴。