배경
가상 머신에서 BTRFS를 사용하고 있습니다.
나는 팔로우한다이 가이드/home/.snapshot
내 폴더가 자체 하위 볼륨인지 확인하세요 . 모든 것이 잘 작동하는 것 같습니다. 스냅샷을 찍고 나열하는 undochanges
등의 작업을 할 수 있습니다.
보내기/받기를 시도해보세요
속도:
- 보내기/받기를 사용하여 스냅샷 ID 1을 다른 하위 볼륨으로 보내기
- Snapper를 사용하여 ID가 1인 스냅샷을 삭제합니다.
- 스냅샷 ID 1로 보내기/받기 사용
- Snapper는 더 이상 스냅샷 ID 1을 인식하지 않습니다.
세부 사항:
기존 스냅샷을 다른 하위 볼륨(장치)으로 보냅니다.
sudo btrfs subvolume list -t /mnt_device3
ID gen top level path
-- --- --------- ----
256 9 5 @backup
sudo mkdir /backup/1
sudo btrfs send /home/.snapshots/1/snapshot | sudo btrfs receive /backup/1
sudo btrfs subvolume list -t /backup
ID gen top level path
-- --- --------- ----
256 17 5 @backup
258 18 256 1/snapshot
그런 다음 snapper를 사용하여 스냅샷을 삭제합니다.
sudo snapper -c home delete 1
sudo snapper -c home list
# | Type | Pre # | Date | User | Cleanup | Description | Userdata
---+--------+-------+-----------------------------+------+---------+--------------------------------------------------+---------
0 | single | | | root | | current |
2 | single | | Tue 04 Jul 2023 03:20:01 PM | root | | testing send/receive after test.txt |
그런 다음 다시 보내기/받기를 사용하여 스냅샷을 다시 넣습니다.
sudo mkdir /home/.snapshots/1
sudo btrfs send /backup/1/snapshot | sudo btrfs receive /home/.snapshots/1
ls /home/.snapshots
total 0
drwxr-xr-x 1 root root 6 Jul 4 16:30 .
drwxr-xr-x 1 root root 32 Jun 29 11:36 ..
drwxr-xr-x 1 root root 16 Jul 4 16:11 1
drwxr-xr-x 1 root root 32 Jul 4 15:20 2
#an excerpt of sudo btrfs subvolume list /home
ID 311 gen 1147 top level 272 path 2/snapshot
ID 313 gen 1214 top level 272 path 1/snapshot
하지만 Snapper는 스냅샷 1을 인식하지 못합니다.
sudo snapper -c home list
# | Type | Pre # | Date | User | Cleanup | Description | Userdata
---+--------+-------+-----------------------------+------+---------+--------------------------------------------------+---------
0 | single | | | root | | current |
2 | single | | Tue 04 Jul 2023 03:20:01 PM | root | | testing send/receive after test.txt |
그래서 더 이상 Snapper를 사용하여 스냅샷 1로 어떤 작업도 할 수 없습니다.
Snapper가 가져온 스냅샷을 인식하도록 하는 방법이 있습니까?
답변1
AFAIK는 snapper
생성된 스냅샷을 추적하기 위해 데이터베이스를 유지 관리합니다. 이렇게 하면 # snapper -c home delete 1
스냅샷 자체와 데이터베이스의 해당 항목이 삭제됩니다. BTRFS를 사용하여 복구 스냅샷 디렉터리를 보내거나 받는 것은 해당 스냅샷의 정보를 데이터베이스에 다시 저장하지 않습니다.
동일한 ID로 새 스냅샷을 수동으로 생성할 수 있지만 데이터베이스의 타임스탬프와 기타 메타데이터가 복원된 스냅샷과 일치하지 않기 때문에 원하는 결과가 아닐 수도 있습니다.
# manually create snapshot
sudo snapper -c home create --description "Restored snapshot 1"
# replace the snapshot ('3' is an example ID; replace it with the one you actually get)
sudo mv /home/.snapshots/3/snapshot /home/.snapshots/3/snapshot.bak
sudo mv /home/.snapshots/1/snapshot /home/.snapshots/3/snapshot