btrfs 스냅 샷을 만드는 방법은 무엇입니까?


22

내 / home 파티션은 전체 물리 디스크로 구성됩니다. btrfs로 형식화됩니다. 스냅 샷을 찍고 싶습니다. 특히 하위 볼륨 명명과 관련하여 혼란 스럽습니다.

나는 비슷한 질문이 있다는 것을 알고 있지만 각각의 비슷한 질문은 내가 요구하는 것과 다른 것을 요구하는 것 같습니다. 예를 들어,에 대한 대답 이 질문은 내 / home 파티션은 btrfs를 쇼에 대해 별도의 볼륨과 사람 페이지 지금 스냅 샷을 만들기위한 다른 명령이기 때문에 분명히 내 질문에 대한 답이 아니다.

다른 유사한 문제, 고체 용액 없음 .
네이밍 문제에 대해 나만큼 혼란스러워하는 사람

내 질문:

간단하게 시작 : 이것이 내 홈 파티션의 간단한 스냅 샷을 작성하는 올바른 명령입니까?

btrfs subvolume snapshot /home/@home /home/@home_snapshot_20120421

나는 정말 용감하고 그것을 테스트했는데 작동하지 않습니다. 오류는 error accessing /home/@home입니다. 다음과 같이 @home이 나열됩니다.

나는 분명히 하위 볼륨 이름에 혼란 스럽습니다. 스냅 샷을 만들 때 사용해야합니까? 일부 예제 /home는 소스 매개 변수로 홈 스냅 샷을 작성하는 것을 보여 주지만 루트 볼륨의 예제를 기반으로하는 것이 필요합니다 /home/@home.

이 명령이 작동합니까? 그렇지 않다면 왜?

btrfs subvolume snapshot /home /home/@home_snapshot_20120421

는 IS @단지 이름 지정 규칙은? 전혀 의미가 있습니까?

다음은 관련이있을 수있는 출력입니다.

btrfs subvolume list /home
ID 256 top level 5 path @home

그게 무슨 뜻인지 잘 모르겠습니다. 시도 btrfs device scan할 때 오류가 발생합니다 (예 : / dev / sda1 장치를 스캔 할 수 없음). 내 파일 시스템에 오류가 없습니다. 다 괜찮아

여기 내 파티션이 있습니다. 하나의 응답에 대한 응답으로 / home이 내 유일한 btrfs 파티션이 아닙니다.

/dev/sda1: (boot partition) TYPE="ext2"  
/dev/sda2: (root partition) TYPE="btrfs"  
/dev/sdb1: (home partition) TYPE="btrfs"  
/dev/sdc1: (shared partition) TYPE="btrfs"  
/dev/sdc2: TYPE="swap"  

지역 사회는 repo에 대해 결정할 것입니다 ...
One Zero

답변:


19

Ubuntu 12.04에서 홈 파티션의 스냅 샷을 만드는 올바른 명령은 무엇입니까?

홈이 btrfs 파티션에 있고 / home으로 마운트된다는 사실을 감안할 때 올바른 명령은 다음과 같습니다.

sudo btrfs subvolume snapshot /home/ /home/<any_name_you_choose_for_the_snapshot>

내 결과는 다음과 같습니다.

오늘 명령을 실행하기 전에 :

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936

명령 :

$ sudo btrfs subvolume snapshot /home/ /home/@snapshot_20120611_1307  
Create a snapshot of '/home/' in '/home/@snapshot_20120611_1307'

오늘 명령을 실행 한 후 :

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936  
ID 258 top level 5 path @home/@snapshot_20120611_1307

이 방법의 유일한 문제는 / home을 ls (목록) 할 때 스냅 샷이 표시된다는 것입니다.

우분투 커뮤니티 위키가 이에 대한 솔루션으로 업데이트되었습니다. 여기있어:

우분투 레이아웃에서 스냅 샷으로 작업하는 방법

우분투 레이아웃에서 / 또는 / home 스냅 샷으로 작업하려면 btrfs 파일 시스템을 별도의 위치에 마운트하고 마운트 된 하위 볼륨이 아닌 btrfs 트리의 맨 위에서 작업하는 것이 매우 편리합니다. <-이것이 해결책입니다. 불행히도 편리하지 않습니다 .

sudo mount /dev/sdX# /mnt

스냅 샷을 만들려면 위에서 사용한 것과 동일한 구문을 사용하십시오.

sudo btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot

이렇게하면 btrfs 트리의 맨 위에있는 @ 서브 볼륨의 이름이 @_snapshot 인 스냅 샷이 생성됩니다. 트리의 맨 위에 있으므로 마운트 된 볼륨에 파일을 나열 할 때 표시되지 않습니다.

스냅 샷으로 롤백하려면 이름을 우분투 마운트 이름으로 변경하고 재부팅하면됩니다. 이름을 변경하는 방법은 다음과 같습니다.

sudo mv /mnt/@ /mnt/@_badroot
sudo mv /mnt/@_snapshot /mnt/@

스냅 샷을 삭제하려면 다음을 사용하십시오.

sudo btrfs subvolume delete /mnt/@_badroot

btrfs 스냅 샷은 자체적으로 하위 볼륨이며 자체 포함되어 있으므로 이전 @ 하위 볼륨을 삭제하는 것이 좋습니다.

참고 : btrfs-tools 명령 set-default은 우분투의 레이아웃을 손상시킵니다.


거기있어? 이제 스냅 샷을 마운트 할 수 있습니다.
turbo

실제로 마운트를 시도하지 않았습니다. 그리고 방금 apt-btrfs-snapshot 패키지에 대한 psusi의 답변을 보았습니다. 그거 흥미로워 요?
MonicaX 용 MountainX

네, 세 번째 요점에서도 언급했습니다. 죄송합니다.;)
turbo

솔루션을 답변으로 표시하는 것이 좋습니다.
터보

ls / home 일 때 나타나는 스냅 샷에 대한 솔루션이 있습니다. 정보를 사용하여 답변을 편집하고 있습니다.
Monica Cellio를위한 MountainX

11

우선 가장 먼저 :

  • 보고있는 하위 볼륨의 이름은 @home로 표시됩니다 btrfs subvolume list /home. 에 마운트되어 /home있습니다. @home은 하위 볼륨의 이름이며 ID 256도 있으므로 / home 만 btrfs로 형식화됩니다.

  • 이제 @home의 스냅 샷을 만들려면 다음을 실행해야합니다. sudo btrfs subvolume snapshot /home/ /home/@home_snapshot_20120421

  • 하위 볼륨은 임의의 이름을 가질 수 있습니다. @는 설치시 Ubuntu의 규칙입니다. ( apt-btrfs-snapshot루트 서브 볼륨 을 사용 하는 경우 @btw 로 이름을 지정해야합니다 .) 커뮤니티 위키@루트와 @home마운트 방식으로 마운트되므로 루트 및 홈으로 유지하는 것이 좋습니다 . 롤백하려는 경우 특히 중요합니다. btrfs subvolume set-default를 사용하지 않아야합니다 (구문 적으로 강조된 구문은 아님).

  • 들어 btrfs device scan당신은 사용해야합니다 sudo.

  • 하위 볼륨을 삭제하려면 sudo btrfs subvolume delete @home_snapshot_20120421

그들이 모호으로 모든 btrfs를 명령 때문에 예를 들어, 한 단축 할 수 있습니다 sudo btrfs device scan로 절단 할 수있다 sudo btrfs d s, sudo btrfs dev sc또는 사이에 아무것도.

귀하의 질문에 답변이 되었기를 바랍니다. 정기적 인 백업을 수행하기위한 몇 가지 도구가 있으며 btrfs-snapshot-rotation 이 그 예입니다. 그들 중 어느 것도 실제로 성숙하거나 충분한 견인력을 얻지 못 했으므로주의해서 사용하십시오. 즉, 버그를 포함하고있을 수 있습니다.


오류가 발생했습니다 :$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
Monica Cellio 용 MountainX

또한 나는 btrfs device scan아직 성공하지 못했습니다. 사용 sudo을 포함한 모든 변형 은 "오류 : 장치 '/ dev / sdX'를 스캔 할 수 없습니다"오류를 발생시킵니다. 여기서 X는 a, a1, b 등과 같은 유효한 이름입니다.
MountainX for Monica Cellio

@OneZero : 아직 모든 답변이 없지만 Ubuntu 12.04에서 홈 파티션의 스냅 샷을 만드는 올바른 명령을 찾았으며 해당 정보를 아래 답변으로 제공했습니다.
Monica Cellio를위한 MountainX

정말 이상합니다. 나는 btrfs 파티션을 확인 btrfs sub snap @ /mnt/random했고 그것은 나를 위해 일했다. 그런 다음 다시 @가 마운트 된 / mnt에있었습니다. 혼란을 드려 죄송합니다
turbo

@ turbo : 당신의 대답은 매우 도움이되었습니다. 도와 주려고 사과 할 필요가 없습니다. 우분투 페이지조차도 명확하지 않습니다. 우리는 결국 모든 것을 알아낼 것입니다.
MonicaX 용 MountainX

10

설치 apt-btrfs-snapshot패키지를, 그 하위 명령을 사용하여 list, snapshot, deleteset-default.

이것은 하위 레벨 btrfs명령 을 래핑하는 스크립트입니다 . 먼저 btrfs 루트 파일 시스템을 어딘가에 마운트하여 작동합니다. /@일반적으로로 마운트되는 하위 볼륨 과 달리 실제 루트를 의미합니다 /. 즉, 실행해야 mount /dev/sda1 /mnt당신이로 표시됩니다 서브 볼륨을보실 수 있습니다 /mnt/@, /mnt/@home그리고 어떤 다른 사람이 당신이 만들었습니다. 여기에서 이름 btrfs subvolume snapshot /mnt/@home @snapshot-today/@home지정된 스냅 샷이 생성됩니다 /@snapshot-today. 이것을 running과 비교하면 btrfs subvolume snapshot /home /home/@snapshot_today대신 스냅 샷을 하위로 생성 /@home하므로 사용자 ls /home와 실제 이름이이면 나타납니다 /@home/@snapshot-today.

스냅 샷 롤백은 간단한 이름 바꾸기 작업 mv /mnt/@home @backup ; mv /mnt/@snapshot-today @home입니다. 이 마운트로 전환 될 때 부팅 다음 번 /@home/home, 그것은 스냅 샷을 찾을 수 있습니다.

btrfs가 사물을 보는 방식과 커널이 사물을 보는 방식 사이의 차이를 명심해야하기 때문에 머리를 감싸는 것은 약간 까다 롭습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.