摘要
在 Linux 上建立檔案系統快照以執行復原的功能是過去使用者常常要求的一項功能。現在,Snapper 與 Btrfs 檔案系統或簡易佈建的 LVM 磁碟區合用,填補了這個空白。
Btrfs 是一個適用於 Linux 的全新寫時複製檔案系統,它支援子磁碟區 (每個實體分割區中的一或多個可獨立掛接的檔案系統) 的檔案系統快照 (子磁碟區於特定時間點之狀態的副本)。Snapper 可讓您管理這些快照。Snapper 包含一個指令行和一個 YaST 介面。
依預設,SUSE Linux Enterprise Desktop 上的 Snapper 與 Btrfs 設為用作 YaST 與 zypper 所執行之系統變更的「復原工具」。在執行 YaST 模組或 zypper 的前後,系統會分別建立一個快照。Snapper 可讓您比較這兩個快照,並提供回復這兩個快照之間的差異的方法。這些工具還提供系統備份,方法是建立系統子磁碟區的每小時快照。
由於 Btrfs 是 SUSE Linux Enterprise Desktop 上唯一一個支援快照的檔案系統,因此要「建立快照」的所有分割區或子磁碟區上都需要它。
建立快照時,快照和原件都會指向檔案系統中的同一區塊。因此,快照最初並不佔用額外的磁碟空間。如果原始檔案系統中的資料經過修改,則會複製變更後的資料區塊,同時保留快照的舊資料區塊。因此,快照便會佔用與已修改資料相同的空間。這樣,經過一段時間之後,快照配置的空間不斷增大。因而,從包含快照的 Btrfs 檔案系統刪除檔案可能無法釋放磁碟空間!
![]() | 快照位置 |
|---|---|
快照永遠位於「已建立快照」的同一分割區或子磁碟區上,而無法儲存到其他分割區或子磁碟區上。 | |
因此,包含快照的分割區必須比「一般」分割區更大。確切大小很大程度上取決於保留的快照數和資料修改量。一般來說,您應該考慮使用比平常大兩倍的大小。
![]() | 釋放空間/磁碟使用量 |
|---|---|
為了釋放包含快照之
由於 df 無法正確顯示 從一個 Service Pack 升級到另一個 Service Pack 會導致快照佔用系統子磁碟區上的大量磁碟空間,這是因為有許多資料進行了變更 (套件更新)。一旦快照不再需要,建議您手動刪除它們。 | |
Snapper 還可用於在格式為 ext3 或 XFS 之簡易佈建的 LVM 磁碟區上建立和管理快照 (請參閱第 4.6 節「對簡易佈建的 LVM 磁碟區使用 Snapper」)。
SUSE Linux Enterprise Desktop 上的 Snapper 已預先設定為充當復原 zypper 和 YaST 所做變更的工具。要充當復原工具,Snapper 設定為在每次執行 zypper 和 YaST 的前後建立一對快照。此外,Snapper 還可讓您還原遭意外刪除或修改的系統檔案。對此會建立每小時備份。
預設會為根分割區及其子磁碟區設定上述的自動快照。為了讓這些快照可供其他分割區 (例如 /home) 使用,您可以建立自定組態。
如果您在安裝期間使用 Btrfs 設定根分割區,系統將會自動安裝 Snapper (已預先設定為用於復原 YaST 或 Zypper 所做的變更)。每當您啟動 YaST 模組或 Zypper 交易時,都會建立兩個快照:擷取啟動模組之前檔案系統狀態的「前快照」,以及完成模組之後的「後快照」。
您可以使用 YaST Snapper 模組或 snapper 指令行工具,透過從「前快照」還原檔案來復原 YaST/Zypper 所做的變更。比較兩個快照時,這些工具還可讓您查看哪些檔案已經過變更。此外,您還可以顯示某檔案的兩個版本之間的差異 (diff)。
由於 Linux 是一個多工作業系統,因此 YaST 或 zypper 以外的其他程序可以在前快照與後快照之間的時間範圍內修改資料。若是如此,完全回復為前快照還將會復原其他程序執行的變更。在大多數情況下,並不希望發生這種情況 — 因此,強烈建議您在啟動復原之前,先仔細檢閱這兩個快照之間的變更。如果有其他程序的變更要保留,請選取要復原的檔案。
![]() | 限制 |
|---|---|
請確定在嘗試使用 Snapper 的復原機制之前,您知悉 Snapper 的局限性。如需詳細資料,請參閱第 4.4 節「限制」。 | |
![]() | 快照的儲存時間 |
|---|---|
依預設,系統會保留最後 100 個 YaST 和 zypper 快照。如果超出此數量,系統將會刪除最舊的快照。 | |
過程 4.1. 使用 YaST 模組復原變更¶
從 YaST 的區段或透過輸入 yast2 snapper 啟動模組。
請確定設為。除非您手動新增了自己的 Snapper 組態,否則應始終如此設定。
從清單中選擇一對前快照和後快照。YaST 與 Zypper 快照對都屬於類型。在欄中,YaST 快照標示為 yast ;Zypper 快照標示為 模組名稱zypp(zypper)。
![]() |
按一下以開啟兩個快照之間不同的檔案清單。下列影像顯示了新增使用者 tester 之後已變更的檔案清單。
![]() |
檢閱檔案清單。若要顯示檔案的前版本與後版本之間的「差異」,請從清單中選取它。下列影像顯示了新增使用者 tester 之後對 /etc/passwd 的變更。
![]() |
若要還原一組檔案,請勾選相應的核取方塊來選取相關的檔案或目錄。按一下,然後按一下確認該動作。
![]() |
若要還原單個檔案,請按一下其名稱以啟動差異比對檢視。按一下,然後按一下確認您的選擇。
過程 4.2. 使用 snapper 指令復原變更¶
執行 snapper list -t pre-post 取得 YaST 和 Zypper 快照的清單。在欄中,YaST 快照標示為 yast ;Zypper 快照標示為 模組名稱zypp(zypper)。
~ # snapper list -t pre-post
Pre # | Post # | Pre Date | Post Date | Description
------+--------+--------------------------+--------------------------+----------------------+
4 | 5 | Tue Jan 10 14:39:14 2012 | Tue Jan 10 14:39:33 2012 | yast system_settings
65 | 66 | Thu Jan 12 17:18:10 2012 | Thu Jan 12 17:18:23 2012 | zypp(zypper)
68 | 69 | Thu Jan 12 17:25:46 2012 | Thu Jan 12 17:27:09 2012 | zypp(zypper)
73 | 74 | Thu Jan 12 17:32:55 2012 | Thu Jan 12 17:33:13 2012 | yast system_settings
75 | 76 | Thu Jan 12 17:33:56 2012 | Thu Jan 12 17:34:42 2012 | yast users
77 | 92 | Thu Jan 12 17:38:36 2012 | Thu Jan 12 23:13:13 2012 | yast snapper
83 | 84 | Thu Jan 12 22:10:33 2012 | Thu Jan 12 22:10:39 2012 | zypp(zypper)
85 | 86 | Thu Jan 12 22:16:58 2012 | Thu Jan 12 22:17:09 2012 | zypp(zypper)
88 | 89 | Thu Jan 12 23:10:42 2012 | Thu Jan 12 23:10:46 2012 | zypp(zypper)
90 | 91 | Thu Jan 12 23:11:40 2012 | Thu Jan 12 23:11:42 2012 | zypp(zypper)
108 | 109 | Fri Jan 13 13:01:06 2012 | Fri Jan 13 13:01:10 2012 | zypp(zypper)
使用下列指令取得快照對的已變更檔案清單:snapper status 前..後。含有內容變更的檔案以 標示,新增的檔案以 標示,刪除的檔案以 標示。下面的範例顯示了安裝套件 ncftp 的快照對。
~ # snapper status 108..109
+... /usr/bin/ncftp
+... /usr/bin/ncftpbatch
+... /usr/bin/ncftpget
+... /usr/bin/ncftpls
[...]
+... /usr/share/man/man1/ncftpspooler.1.gz
c... /var/cache/zypp/solv/@System/cookie
c... /var/cache/zypp/solv/@System/solv
c... /var/lib/rpm/Basenames
c... /var/lib/rpm/Dirnames
c... /var/lib/rpm/Filemd5s
c... /var/lib/rpm/Group
c... /var/lib/rpm/Installtid
c... /var/lib/rpm/Name
c... /var/lib/rpm/Packages
c... /var/lib/rpm/Providename
c... /var/lib/rpm/Provideversion
c... /var/lib/rpm/Requirename
c... /var/lib/rpm/Requireversion
c... /var/lib/rpm/Sha1header
c... /var/lib/rpm/Sigmd5
c... /var/lib/zypp/SoftLocks
若要顯示特定檔案的差異,請執行 snapper diff 前..後 檔案名稱。如果不指定檔案名稱,將會顯示所有檔案的差異。
~ # snapper diff 108..109 /var/lib/zypp/SoftLocks
--- /.snapshots/108/snapshot/var/lib/zypp/SoftLocks 2012-01-12 23:15:22.408009164 +0100
+++ /.snapshots/109/snapshot/var/lib/zypp/SoftLocks 2012-01-13 13:01:08.724009131 +0100
@@ -1,4 +1,2 @@
-# zypp::SoftLocksFile generated Thu Jan 12 23:10:46 2012
-#
-ncftp
-#
+# zypp::SoftLocksFile generated Fri Jan 13 13:01:08 2012
+##
若要還原一或多個檔案,請執行 snapper -v undochange 前..後 檔案名稱。如果不指定檔案名稱,將會還原所有已變更的檔案。
~ # snapper -v undochange 108..109
create:0 modify:16 delete:21
undoing change...
deleting /usr/share/man/man1/ncftpspooler.1.gz
deleting /usr/share/man/man1/ncftpput.1.gz
[...]
deleting /usr/bin/ncftpls
deleting /usr/bin/ncftpget
deleting /usr/bin/ncftpbatch
deleting /usr/bin/ncftp
modifying /var/cache/zypp/solv/@System/cookie
modifying /var/cache/zypp/solv/@System/solv
modifying /var/lib/rpm/Basenames
modifying /var/lib/rpm/Dirnames
modifying /var/lib/rpm/Filemd5s
modifying /var/lib/rpm/Group
modifying /var/lib/rpm/Installtid
modifying /var/lib/rpm/Name
modifying /var/lib/rpm/Packages
modifying /var/lib/rpm/Providename
modifying /var/lib/rpm/Provideversion
modifying /var/lib/rpm/Requirename
modifying /var/lib/rpm/Requireversion
modifying /var/lib/rpm/Sha1header
modifying /var/lib/rpm/Sigmd5
modifying /var/lib/zypp/SoftLocks
undoing change done
除了 YaST 和 zypper 快照之外,Snapper 還會按小時建立系統分割區 (/) 的快照。您可以使用這些備份快照來還原遭意外刪除或修改但無法復原的檔案。利用 Snapper 的差異比對功能,您還可以瞭解在特定時間點執行了哪些修改。
每小時備份快照屬於單一類型,並以描述時間軸標示。若要從這些快照還原檔案,請依過程 4.1, “使用 YaST 模組復原變更” 或過程 4.2, “使用 snapper 指令復原變更” 中所述繼續操作。
![]() | 快照的儲存時間 |
|---|---|
依預設,系統會保留過去十天、十個月或十年的第一個快照。如需詳細資料,請參閱範例 4.1 「時間軸組態範例」。 | |
Snapper 的行為方式在組態檔案中加以定義;每個分割區或 Btrfs 子磁碟區的行為都是特定的。這些組態檔案位於 /etc/snapper/configs/ 下。隨 Snapper 一起安裝之 / 目錄的預設組態名為根。它會建立並管理 YaST 和 Zypper 快照,以及 / 的每小時備份快照。
您可以為其他格式為 Btrfs 的分割區或 Btrfs 分割區上的現有子磁碟區建立您自己的組態。在下面的範例中,我們將設定 Snapper 組態以用於備份掛接於 /srv/www 且採用 Btrfs 格式之獨立分割區上的 Web 伺服器資料。
您可以使用 snapper 本身或 YaST 模組來從這些快照還原檔案。在 YaST 中,您需要選取,同時還需要使用全域參數 -c 指定 snapper 的組態 (例如 snapper -c myconfig list)。
若要建立新的 Snapper 組態,請執行 snapper create-config:
snapper -c www-datacreate-config /srv/www
此指令將會使用 /etc/snapper/config-templates/default 中的適當預設值建立一個新的組態檔案 /etc/snapper/config-templates/www-data。
![]() | 組態預設值 |
|---|---|
新組態的預設值取自 snapper -c www-data create-config -t my_defaults /srv/www | |
若要調整組態檔案,您需要使用編輯器對它進行修改。它包含格式為的鍵/值組。您只能變更鍵=值值。
SUBVOLUME
要建立快照之分割區或子磁碟區的掛裝點。請勿進行變更。
FSTYPE
分割區的檔案系統類型。請勿進行變更。
NUMBER_CLEANUP
定義當快照總計數超出使用 NUMBER_LIMIT 指定的數量以及使用 NUMBER_MIN_AGE 指定的期限時,是否自動刪除舊快照。有效值:yes 和 no
![]() | 限制和期限 |
|---|---|
系統始終會同時評估 | |
NUMBER_LIMIT
定義在 NUMBER_CLEANUP 設為 yes 時要保留的快照數量。
NUMBER_MIN_AGE
定義快照在可供自動刪除之前的最短保留期限 (秒)。
TIMELINE_CREATE
如果設為 yes,將會建立每小時快照。這是目前唯一一種自動建立快照的方法,因此強烈建議您將它設為 yes。有效值:yes 和 no
TIMELINE_CLEANUP
定義當快照計數超出使用 選項指定的數量以及使用 時間軸限制 *TIMELINE_MIN_AGE 指定的期限時,是否自動刪除舊快照。有效值:yes 和 no
TIMELINE_MIN_AGE
定義快照在可供自動刪除之前的最短保留期限 (秒)。
TIMELINE_LIMIT_HOURLY、TIMELINE_LIMIT_DAILY、TIMELINE_LIMIT_MONTHLY 和 TIMELINE_LIMIT_YEARLY
要以小時、天、月和年保留的快照數量。
範例 4.1. 時間軸組態範例¶
TIMELINE_CREATE="yes"
TIMELINE_CLEANUP="yes"
TIMELINE_MIN_AGE="1800"
TIMELINE_LIMIT_HOURLY="10"
TIMELINE_LIMIT_DAILY="10"
TIMELINE_LIMIT_MONTHLY="10"
TIMELINE_LIMIT_YEARLY="10"
此組態範例啟用了會自動清理的每小時快照。系統始終會同時評估 TIMELINE_MIN_AGE 和 TIMELINE_LIMIT_*。在此範例中,快照在可供刪除之前的最短期限設為 30 分鐘 (1800 秒)。因為我們建立了每小時快照,所以這可確保僅保留最新的快照。如果將 TIMELINE_LIMIT_DAILY 設為非零值,這表示同時會保留當天的第一個快照。
要保留的快照
每小時:已建立的最後十個快照。
每日:保留最近十天內建立的第一個每日快照。
每月:保留最近十個月內當月最後一天建立的第一個快照。
每年:保留最近十年內當年最後一天建立的第一個快照。
依預設,Snapper 只能由 root 使用者使用。但是,在下列情況中,某些群組或使用者需要能夠建立快照或透過回復至快照來復原變更:
網站管理員希望建立 /srv/www 的快照。
資料庫管理員希望建立資料庫的快照。
使用者希望建立其主目錄的快照。
為了以上這些目的,您可以建立用於授予使用者或/和群組權限的 Snapper 組態。除了此組態變更之外,對應的 .snapshots 目錄還必須可供指定的使用者讀取和存取。
過程 4.3. 讓一般使用者可以使用 Snapper
請注意,此程序中的所有步驟都必須由 root 使用者執行。
若不存在,請為使用者應該能夠在其上使用 Snapper 的分割區或子磁碟區建立 Snapper 組態。如需指示,請參閱第 4.2.3 節「建立和修改 Snapper 組態」。範例:
snapper --config web_data create /srv/www
組態檔案將在 /etc/snapper/configs/下建立,其中「名稱」是您在上一步中使用 名稱-c/--config 指定的值 (例如 /etc/snapper/configs/web_data)。根據您的需求調整該值;如需詳細資料,請參閱第 4.2.3.1 節「調整組態檔案」。
設定 ALLOW_USERS 和/或 ALLOW_GROUPS 的值,以分別向使用者和/或群組授予權限。多個項目需要用 Space 加以分隔。例如,若要向使用者 www_admin 授予權限,請輸入:
ALLOW_USERS="www_admin"
對快照目錄路徑/.snapshots 授予讀取與存取權限。路徑將由您在此程序的第一步中所指定的子磁碟區取代。範例:
chmod a+rx /srv/www/.snapshots
現在,指定的使用者和/或群組便可以使用給定的 Snapper 組態。您可以使用 list 指令進行測試,例如:
www_admin:~ > snapper -c web_data list
如果您在安裝期間使用 Btrfs 設定了根分割區,Snapper 將會自動每小時建立系統的快照,以及 YaST 和 zypper 交易的前快照與後快照。上述每個任務都可以按如下所示停用:
編輯 /etc/snapper/configs/root 並將 TIMELINE_CREATE 設為 no:
TIMELINE_CREATE="no"
解除安裝套件 snapper-zypp-plugin
編輯 /etc/sysconfig/yast2 並將 USE_SNAPPER 設為 no:
USE_SNAPPER="no"
Snapper 並不限於依照組態自動建立和管理快照;您還可以使用指令行工具或 YaST 模組手動建立快照對 (「前與後」) 或單一快照。
所有 Snapper 操作都會對現有組態進行 (如需詳細資料,請參閱第 4.2.3 節「建立和修改 Snapper 組態」)。您只能為存在組態的分割區或子磁碟區建立快照。預設會使用系統組態 (根)。如果您要為您自己的組態建立或管理快照,則必須明確選擇它。您可以使用 YaST 中的下拉式功能表,或在指令行上指定 -c (snapper -c 我的組態 指令)。
每個快照都包含快照本身和一些中繼資料。建立快照時,您還需要指定中繼資料。修改快照即表示變更其中繼資料 — 您無法修改其內容。下列中繼資料適用於每個快照:
類型:快照類型,請參閱第 4.3.1.1 節「快照類型」 以取得詳細資料。此資料無法變更。
編號:快照的唯一編號。此資料無法變更。
前快照編號:指定相應前快照的編號。僅適用於類型為後的快照。此資料無法變更。
描述:快照的描述。
使用者資料:延伸描述,您可在其中以逗號分隔之鍵=值清單的形式指定自定資料:reason=testing_stuff, user=tux
清理演算法:快照的清理演算法,請參閱第 4.3.1.2 節「清理演算法」 以取得詳細資料。
Snapper 知道三種不同類型的快照:前、後與單一。實際上,它們並無差異,但是 Snapper 會以不同的方式處理它們。
前
修改前檔案系統的快照。每個前快照都對應一個後快照。例如用於自動建立 YaST/zypper 快照。
後
修改後檔案系統的快照。每個後快照都對應一個前快照。例如用於自動建立 YaST/zypper 快照。
單一獨立快照。例如用於自動建立每小時快照。這是建立快照時的預設類型。
Snapper 提供了三種用於清理舊快照的演算法。每日 cron 工作中會執行這些演算法。清理頻率本身是在分割區或子磁碟區的 Snapper 組態中加以定義 (如需詳細資料,請參閱第 4.2.3.1 節「調整組態檔案」)。
當達到特定的快照計數時刪除舊快照。
刪除經過特定期限的舊快照,但會保留大量每小時、每日、每月和每年快照。
刪除無差異的前/後快照對。
可透過執行 snapper create 或在 YaST 模組 中按一下建立快照。下列範例說明如何從指令行建立快照。透過 YaST 介面可便於採用這兩種建立方法。
![]() | 快照描述 |
|---|---|
您應始終指定有意義的描述,以便日後能夠識別其用途。透過使用者資料選項可以指定更多資訊。 | |
--description "2013 年第 2 週的快照"
為預設 (根) 組態建立獨立快照 (類型為單一) 並提供描述。因為未指定清理演算法,所以一律不自動刪除快照。
--config home create --description "在 ~tux 中清理"
為名為 home 的自定組態建立獨立快照 (類型為單一) 並提供描述。因為未指定清理演算法,所以一律不自動刪除快照。
--config home create --description "每日資料備份" --cleanup-algorithm timeline
為名為 home 的自定組態建立獨立快照 (類型為單一) 並提供描述。當檔案符合特定於組態中時間軸清理演算法的準則時,將會自動刪除該檔案。
--type pre--print-number--description "在 Apache 組態清理之前"
建立類型為前的快照並列印快照編號。需要第一個指令才能建立用於儲存「前」和「後」狀態的快照對。
--type post--pre-number 30--description "在 Apache 組態清理之後"
建立類型為後並與前快照編號 30 配對的快照。需要第二個指令才能建立用於儲存「前」和「後」狀態的快照對。
--command COMMAND--description "在指令前後"
在執行指令前後自動建立快照對。僅當在指令行上使用 snapper 時,此選項才可用。
Snapper 可讓您修改快照的描述、清理演算法和使用者資料,所有其他中繼資料則無法變更。下列範例說明如何從指令行修改快照。透過 YaST 介面可便於採用這兩種建立方法。
若要透過指令行修改快照,您需要知道其編號。請使用 snapper list 來顯示所有快照及其編號。
YaST 模組已列出所有快照。從清單中選擇一個快照,然後按一下。
--cleanup-algorithm "時間軸" 10
修改預設 (根) 組態之快照 10 的中繼資料。清理演算法設為時間軸。
--config home modify --description "每日備份" -cleanup-algorithm "時間軸"120
修改名為 home 的自定組態之快照 120 的中繼資料。將會設定新的描述並取消設定清理演算法。
若要使用 YaST 模組刪除快照,請從清單中選擇快照,然後按一下。
若要使用指令行工具刪除快照,您需要知道其編號。請透過執行 snapper list 來取得該編號。若要刪除快照,請執行 snapper delete 編號。
![]() | 刪除快照對 |
|---|---|
刪除 | |
刪除預設 (根) 組態的快照 65。
-c home delete 89 90
刪除名為 home 之自定組態的快照 89 和 90。
![]() | 舊快照佔用較多磁碟空間 |
|---|---|
如果您要刪除快照以釋放硬碟上的空間 (如需詳細資料,請參閱第 4.1.1 節「快照與磁碟空間」),請確定先刪除舊快照。快照越舊,它佔用的磁碟空間就越多。 | |
快照也可由每日 cron 工作自動刪除。如需詳細資訊,請參閱第 4.3.1.2 節「清理演算法」。
雖然 Btrfs 及 Snapper 已備妥可用於線上,但是它們仍在持續不斷地進行進一步開發。目前存在下列限制。計劃在後續版本中解決這些問題。
在建立快照時,沒有任何一種機制可確保資料的一致性。在建立快照的同時寫入檔案 (例如資料庫),都將導致檔案損毀或部分寫入。還原此類檔案將會導致問題。因此,強烈建議您始終仔細檢閱已變更檔案及其差異的清單。僅還原確實需要歸屬於要復原之動作的檔案。
/home 通常位於獨立的分割區上。此類獨立分割區不屬於用於執行 YaST 復原的預設組態。因此,在使用 Snapper 復原使用者新增時,不會刪除使用者的主分割區。強烈建議您使用 YaST 工具來移除使用者。
/boot 和開機載入程式的變更執行任何復原¶
目前,SUSE Linux Enterprise Desktop 不能從 Btrfs 分割區開機。因此,當對系統分割區使用 Btrfs 時,會在安裝過程中為 /boot 建立獨立分割區。因為 /boot 不支援快照,所以下列限制適用於 YaST/zypper 復原:
唯一可供復原的檔案是 /etc 中的開機載入程式組態檔案。主要組態檔案位於 /boot 下,無法進行復原。
核心本身及其 initrd 均安裝在 /boot 分割區中,而核心模組或來源則分別安裝在 /var/lib 和 /usr/src 中。此外,每個核心安裝還會變更 /boot 中的開機載入程式組態檔案。因此,每當您執行涉及復原核心安裝的復原時,都需要從 /boot 手動移除核心及其 initrd,並透過移除核心的開機項目來調整開機載入程式組態。
/var/log、/tmp 及其他目錄中的變更?
對於某些目錄,我們決定停用「建立快照」 (例如 /var/log),因為回復記錄會加大搜尋問題的難度。為了排除某路徑進行「快照建立」,我們為該路徑建立了子磁碟區。在 SUSE Linux Enterprise Desktop 上,會從「建立快照」中排除下列掛接點︰
/opt
/srv
/tmp
/var/crash
/var/log
/var/run
/var/spool
/var/tmp
目前不行。SUSE Linux Enterprise Desktop 上的開機載入程式目前不支援從 Btrfs 分割區進行開機。
除了針對 Btrfs 檔案系統建立快照之外,snapper 還支援針對格式為 ext3 或 XFS 之簡易佈建的 LVM 磁碟區「建立快照」 (但不支援對一般 LVM 磁碟區建立快照)。如需詳細資訊及設定指示,請參閱Section “LVM Configuration” (Chapter 12, Advanced Disk Setup, ↑Deployment Guide)。
若要對簡易佈建的 LVM 磁碟區使用 Snapper,您需要為它建立一個 Snapper 組態。在 LVM 上,需要使用 --fstype=lvm( 指定檔案系統。目前支援 ext3 和 XFS,因此 檔案系統)ext3 或 xfs 是檔案系統的有效值。範例:
snapper -c lvm create-config --fstype="lvm(xfs)" /thin_lvm
您可以依第 4.2.3.1 節「調整組態檔案」 中所述根據需求調整此組態。現在,您可以使用 Snapper 來建立和管理快照、還原檔案以及復原變更 (如上所述)。