Linux Mint에서 Timeshift를 사용하기 시작했을 때 Linux Mint에서 백업이 가능하다는 것을 알았지 btrfs
만 몇 가지 요구 사항이 있었습니다. Linux 시스템도 btrfs에 마운트되어야 했습니다( @
하위 볼륨 에 마운트해야 했던 것 같습니다) 또한). 제 경우 는 아니고 ext4
.rsync
나이백업을 하세요.
튜토리얼 검색을 시작했지만 btrfs 스냅샷에 대한 일반 기사만 찾았지만 아무것도 찾지 못했습니다.일상적인 백업 명령안에실제 환경. 몇번의 테스트 끝에 알아냈어요시스템이 ext4에 설치된 경우에도 외부 Btrfs 드라이브에서 Btrfs 스냅샷을 만드는 방법(또는 무엇이든) 나는 Linux 및 Unix Stackexchange에서 답변을 공유하기로 결정했습니다.
답변1
설정
이것이 /media/myuser/btrbaks
외부 드라이브의 btrfs 파티션에 대한 마운트 지점이라고 가정하면(파티션 및 마운트에 대한 자세한 내용은 끝 참조) 여기 명령은 처음 시작할 때만 적용됩니다.
백업용 디렉터리를 만듭니다.
sudo mkdir /media/myuser/btrbaks/BACKUPS
rsync 명령의 대상이 될 @ 하위 볼륨을 생성합니다.
sudo btrfs subvolume create /media/myuser/btrbaks/BACKUPS/@
일일 백업 명령
모든 백업에 대해 시작해야 하는 명령은 다음과 같습니다.
동기화:
sudo rsync -aAXv --delete --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* --exclude=/run/* --exclude=/mnt/* --exclude=/media/* --exclude="swapfile" --exclude="lost+found" --exclude=/home/* --exclude=/root/* / /media/myuser/btrbaks/BACKUPS/@/
Btrfs 스냅샷:
sudo btrfs subvolume snapshot /media/myuser/btrbaks/BACKUPS/@ /media/myuser/btrbaks/BACKUPS/@_bak_`date +%Y.%m.%d_%H.%M.%S`
그러면 다음을 확인할 수 있습니다.
sudo btrfs subvolume list /media/attilio/btrbaks/
ID 279 gen 109 top level 5 path BACKUPS/@
ID 280 gen 109 top level 5 path BACKUPS/@_bak_2020.09.14_08.12.2
회복 중
시스템이 부팅되면 다음 명령을 사용하여 복원할 수 있습니다.
sudo rsync -aAXv --dry-run --delete --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* --exclude=/run/* --exclude=/mnt/* --exclude=/media/* --exclude="swapfile" --exclude="lost+found" --exclude=/home/* --exclude=/root/* /media/attilio/btrbaks/BACKUPS/@/ /
--dry-run
실제 복원을 수행하려면 옵션을 제거해야 합니다 .
@
이는 마지막 백업을 가리키 므로 @_bak_2020.09.14_08.12.22
또는 스냅샷을 사용하여 변경할 수 있습니다.
시스템이 부팅되지 않으면 라이브 USB에서 부팅하고 동일한 명령을 실행하고 rsync <source>
및<destination>
파티셔닝 및 마운트에 대한 참고 사항
내 하드웨어 구성은 다음과 같습니다.
/dev/sda5 ext4 / # system installation
/dev/sdb3 btrfs /media/myuser/btrbaks # external drive has several partitions, one is btrfs and here is the mount point that is automatically assigned by linux mint
답변2
다시 설치하지 않고도 ext4를 btrfs로 변환할 수도 있습니다. 이제 스냅샷과 라이브 시스템 모두 동일한 파티션을 사용합니다.
- 장점: 더 빠르며 더 적은 디스크 공간이 필요합니다.
- 단점: 디스크가 손상되면 스냅샷도 손실됩니다. 이 문제는 다음 방법 중 하나로 처리될 수 있습니다.
- 이 두 가지 방법을 결합하십시오. (타임시프트에서 btrfs 스냅샷을 사용하고 rsync를 사용하여 선택한 스냅샷을 다른 디스크로 이동)
- RAID 사용(btrfs 자체는 RAID와 함께 사용할 수 있지만 일반적인 방법도 잘 작동함)
변환에는 여러 단계가 포함됩니다.
노트:가상 머신에서 첫 번째 테스트를 수행합니다. 아직은요. 뭔가 잊어버린 게 있을 수도 있어요.
- 라이브 USB 스틱(예: Mint를 설치하는 데 사용한 것과 같은)에서 부팅하고 새 터미널에서 루트가 됩니다.
sudo -i
- ext4를 btrfs로 변환하십시오: ( 이것이 귀하의 파티션이라고
btrfs-convert /dev/sda1
가정 )/dev/sda1
- "작업"을 시작할 수 있도록 설치하세요.
mount /dev/sda1 /mnt
- 루트 파일 시스템이 다음 이름의 하위 볼륨에 있는지 확인하세요
@
.btrfs sub snap /mnt /mnt/@
- 홈 디렉터리에 대해 별도의 디렉터리를 만듭니다.
btrfs sub create /mnt/@home && rsync -HAXav /mnt/home/ /mnt/@/home/
- 파티션의 UUID를 검색합니다.
ls -l /dev/disk/by-uuid | grep sda1
/
설치된 라인을/mnt/@/etc/fstab
2개의 라인으로 교체합니다:
UUID=xxxxxxxxx-xxxx-xxxx-xxxxxxxx/btrfs 기본값, subvol=@ 0 1 UUID=xxxxxxxxx-xxxx-xxxx-xxxxxxxx /home btrfs 기본값, subvol=@home 0 2
그리고 ( xxxxxxxx-xxxx-xxxx-xxxxxxxx
당신의 진실에 따라 UUID
) 변화하십시오.
- 동일한 파일에서 스왑을 언급하는 줄을 제거합니다.
linux
in이 포함된 첫 번째 줄을/mnt/boot/grub/grub.cfg
다음으로 변경하고linux /@/boot/vmlinuz-YYYY root=UUID=XXXX ro rootflags=subvol=@
(YYYY
원래 커널 버전과XXXX
사용자 버전 사용UUID
) 다음을 실행합니다.cp /mnt/boot/grub/grub.cfg /mnt/@/boot/grub/grub.cfg
- 시스템을 재부팅하고 루트로 계속 진행합니다.
sudo -i
@
귀하와 하위 볼륨의 데이터만 유지하십시오@home
.mkdir /mnt/fullbtrfs && mount /dev/sda1 /mnt/fullbtrfs && rm -rf /mnt/fullbtrfs/[a-z]* && umount /mnt/fullbtrfs
- 나머지 grub 구성을 수정합니다(우리는 몇 단계 전에 필요한 작업만 수행했습니다).
update-grub
- 다시 재부팅하고 타임시프트 구성을 btrfs로 변경합니다.