系統備份 - Arch Linux 中文维基

跳至內容

# 系統備份

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 System backup，最近一次同步於 2022-11-17，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- 同步和備份程序
- 系統維護#備份
- 靜態數據加密#用於磁碟加密場景的數據備份
- 硬碟克隆
- 遷移到新硬體
- 文件恢復

系統備份是備份作業系統、文件和特定於系統的有用的/關鍵的數據的過程。（系統備份）主要確保除了系統中的用戶數據，系統的狀態或操作條件也已保存。這有助於使用選擇的備份數據將系統恢復到之前保存的狀態。[1]

## 使用 Btrfs 快照

詳情請看 Btrfs#快照、#快照與 /boot 分區、Snapper、Timeshift 與 Yabsnap。

## 使用 LVM 快照

詳情請看 LVM#Snapshots、Create root filesystem snapshots with LVM 和 #快照與 /boot 分區。

## 使用 rsync

詳情請看 rsync#作為備份工具。

## 使用 tar

詳情請看使用 tar 備份整個系統。

## 使用 SquashFS

詳情請看 Full system backup with SquashFS。

## 可啟動的備份

在文件系統損壞或系統因更新而損壞的情況下，有一個可啟動的備份非常有用。備份還可以啟用testing軟體倉庫，並用於測試更新。在您將系統遷移到不同的分區或驅動器之後，只需更新備份的 `/etc/fstab` 和引導加載程序的配置文件，就可以從遷移後的系統啟動了。

在您在已將系統備份到另一個驅動器或分區，且當前的引導加載程序工作正常的情況下，接下來的操作將指導您如何從備份的系統啟動。

### 更新 fstab

不需要重新啟動，可以通過注釋掉或刪除任何現有條目來編輯備份的 fstab 文件。為包含備份的分區添加一個條目，如下例所示:

    /dev/sdaX    /             ext4      defaults                 0   1

記得使用正確的設備名和文件系統類型。

### 更新引導程序的配置文件

對於 Syslinux，你只需複製當前項目，不過使其指向不同的磁碟或分區。

提示：除了直接編輯 `syslinux.cfg`，您也可以在啟動的時候臨時編輯啟動菜單。當顯示啟動菜單的時候，按 `Tab` 鍵來編輯對應的啟動項。分區從1數起，而驅動器從0數起。

對於 GRUB，建議你自動重新生成主配置文件。如果你想將 GRUB 文件全新安裝到 `/boot` 以外的位置（例如 `/mnt/newroot/boot`），使用 `--boot-directory` 標誌。

請注意檢查 `/boot/grub/grub.cfg` 中的啟動項，確保其中的 UUID 與新分區相匹配，否則設備將仍然從原系統中啟動。您可以通過 lsblk 命令來找到正確的UUID：

    $ lsblk -no NAME,UUID /dev/sdXY

`/dev/sdXY` 是您備份的目標分區 （比如 `/dev/sdb3`）要列出所有 GRUB 可啟動的分區，請使用 grep 命令：

    # grep UUID= /boot/grub/grub.cfg

### 第一次啟動

重啟計算機並在引導程序中選擇正確的項目。系統應該會在第一次啟動的時候檢測到所有外部設備並填充根目錄下的空文件夾。

你現在可以編輯 `/etc/fstab`，將之前刪除的分區和掛載點重新加入。

## 快照與 /boot 分區

如果你的文件系統支持快照（例如 LVM 和 Btrfs），這些快照將很可能不包含 `/boot` 分區或 EFI 系統分區。

進行內核升級時，您可以用 pacman hook 來把升級後的內核自動複製啟動分區到 `root` 分區（請確保該鉤子文件為 root 所有） :

    /etc/pacman.d/hooks/95-bootbackup.hook

    [Trigger]
    Operation = Upgrade
    Operation = Install
    Operation = Remove
    Type = Path
    Target = usr/lib/modules/*/vmlinuz

    [Action]
    Depends = rsync
    Description = Backing up /boot...
    When = PostTransaction
    Exec = /usr/bin/rsync -a --delete /boot /.bootbackup

分類：​

- 備份

系統備份
新增話題