Làm thế nào để thực hiện một snapshot btrfs?


22

Phân vùng của tôi / nhà bao gồm toàn bộ đĩa vật lý. Nó được định dạng là btrfs. Tôi muốn chụp nhanh nó. Tôi đặc biệt bối rối về việc đặt tên subvolume, đặc biệt.

Tôi biết rằng có những câu hỏi tương tự, nhưng mỗi câu hỏi tương tự dường như đang hỏi một điều gì đó khác với những gì tôi đang hỏi (và chúng đã cũ hơn, có nghĩa là đã lỗi thời, do sự phát triển nhanh chóng của btrfs). Ví dụ: câu trả lời cho câu hỏi này rõ ràng không phải là câu trả lời cho câu hỏi của tôi vì phân vùng / nhà của tôi là một khối riêng biệt và trang man cho btrfs hiển thị một lệnh khác để tạo ảnh chụp nhanh ngay bây giờ.

một vấn đề tương tự khác, không có giải pháp vững chắc .
một người khác cũng bối rối như tôi về các vấn đề đặt tên

Câu hỏi của tôi:

Bắt đầu đơn giản: đây có phải là lệnh chính xác để chụp ảnh đơn giản phân vùng nhà của tôi không?

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

Tôi đã thực sự dũng cảm và thử nghiệm nó và nó không hoạt động. Lỗi là error accessing /home/@home. Như được hiển thị dưới đây, @home được liệt kê.

Tôi rõ ràng bối rối về tên subvolume. Tôi có cần sử dụng chúng trong việc tạo ảnh chụp nhanh không? Một số ví dụ cho thấy chụp ảnh nhanh về nhà bằng cách sử dụng /hometham số nguồn, nhưng dựa trên các ví dụ về khối lượng gốc, đối với tôi, tôi cần phải sử dụng /home/@home.

Lệnh này sẽ làm việc? Và nếu không, tại sao?

btrfs subvolume snapshot /home /home/@home_snapshot_20120421

@chỉ một quy ước đặt tên? Nó có ý nghĩa gì không?

Đây là một số đầu ra có thể có liên quan:

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

Tôi không chắc điều đó có nghĩa là gì, chính xác. Khi tôi thử, btrfs device scannó báo lỗi (ví dụ: không thể quét thiết bị / dev / sda1). Hệ thống tập tin của tôi không có bất kỳ lỗi nào. Mọi thứ đều ổn.

Đây là phân vùng của tôi. Đáp lại một câu trả lời, không / nhà không phải là phân vùng btrfs duy nhất của tôi.

/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"  

cộng đồng sẽ quyết định về repo ...
One Zero

Câu trả lời:


19

Lệnh chính xác để tạo ảnh chụp nhanh phân vùng nhà của tôi trên Ubuntu 12.04 là gì?

Với thực tế là nhà nằm trên phân vùng btrfs và nó được gắn kết là / home, lệnh chính xác là:

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

Đây là kết quả của tôi:

Trước khi chạy lệnh ngày hôm nay:

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

Lệnh:

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

Sau khi chạy lệnh hôm nay:

$ 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

Vấn đề duy nhất với phương pháp này là ảnh chụp nhanh xuất hiện khi bạn ls (danh sách) / nhà.

Wiki cộng đồng Ubuntu đã được cập nhật với một giải pháp cho việc này. Đây là:

Cách làm việc với ảnh chụp nhanh trong bố cục của Ubuntu

Để làm việc với các ảnh chụp nhanh của / hoặc / home trong bố cục Ubuntu, rất thuận tiện để gắn hệ thống tệp btrfs ở một vị trí riêng biệt và làm việc từ đỉnh của cây btrfs, thay vì từ các subvolume được gắn. <- đó là giải pháp. Thật không may, nó không thuận tiện .

sudo mount /dev/sdX# /mnt

Để tạo ảnh chụp nhanh, hãy sử dụng cú pháp tương tự tôi đã sử dụng ở trên:

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

Điều này sẽ tạo ra một ảnh chụp nhanh của subvolume có tên @_snapshot cũng nằm ở đầu cây btrfs. Vì nó ở trên ngọn cây, nó sẽ không hiển thị khi liệt kê các tệp trong một ổ đĩa được gắn.

Để quay lại ảnh chụp nhanh, bạn chỉ cần thay đổi tên của nó thành tên mà Ubuntu gắn kết và khởi động lại. Đây là cách thay đổi tên:

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

Để xóa ảnh chụp nhanh, hãy sử dụng:

sudo btrfs subvolume delete /mnt/@_badroot

Ảnh chụp nhanh btrfs là bản thân các subvolume và khép kín, xóa các subvolume cũ như thế này là tốt, miễn là chúng tôi có một sự thay thế.

LƯU Ý: Lệnh btrfs-tools set-defaultsẽ phá vỡ bố cục của Ubuntu.


Vậy bạn có đúng không? Bây giờ bạn sẽ có thể gắn kết ảnh chụp nhanh của bạn.
turbo

Tôi thực sự chưa thử gắn chúng. Và tôi vừa thấy câu trả lời của psusi về gói apt-btrfs-snapshot. Điều đó có vẻ thú vị, phải không?
MountainX cho Monica Cellio

Vâng, tôi đã đề cập đến nó trong điểm thứ ba quá. Xin lỗi đã phải chỉ ra điều đó;)
turbo

Tôi đề nghị bạn đánh dấu giải pháp của bạn là câu trả lời sau đó.
turbo

Có một giải pháp cho các ảnh chụp nhanh hiển thị khi bạn ls / home. Tôi đang chỉnh sửa câu trả lời của tôi với thông tin bây giờ.
MountainX cho Monica Cellio

11

Ok điều đầu tiên trước tiên:

  • Tên của subvolume bạn đang xem là @homenhư được hiển thị bởi btrfs subvolume list /home. Nó được gắn vào /home. @home là tên của subvolume, nó cũng có ID 256 nên rất có thể chỉ có / nhà của bạn được định dạng là btrfs.

  • Bây giờ để tạo ảnh chụp nhanh của @home, bạn phải phát hành: sudo btrfs subvolume snapshot /home/ /home/@home_snapshot_20120421

  • Subvolume có thể có bất kỳ tên. @ Là quy ước của Ubuntu khi cài đặt. (Nếu bạn sử dụng apt-btrfs-snapshotsubvolume gốc phải được đặt tên là @btw.) Wiki cộng đồng khuyên bạn nên giữ quyền @root và @homenhư nhà vì nó được gắn theo cách đó. Điều này đặc biệt quan trọng nếu bạn muốn quay lại: Bạn KHÔNG nên sử dụng btrfs subvolume set-default (không phải cú pháp được đánh dấu theo mục đích).

  • Đối với btrfs device scanbạn phải sử dụng sudo.

  • Để xóa một subvolume bạn có thể sử dụng sudo btrfs subvolume delete @home_snapshot_20120421

Tất cả các lệnh btrfs có thể được viết tắt là miễn là họ có rõ ràng, ví dụ như vậy sudo btrfs device scancó thể được rút ngắn tới sudo btrfs d s, sudo btrfs dev schoặc bất cứ điều gì ở giữa.

Tôi hy vọng rằng đã trả lời câu hỏi của bạn. Có một số công cụ hiện có để sao lưu thường xuyên, btrfs-snapshot-rotation là một ví dụ. Sử dụng những người thận trọng vì không ai trong số họ thực sự trưởng thành hoặc có đủ lực kéo, tức là họ rất có thể chứa lỗi.


Tôi gặp lỗi:$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
MountainX cho Monica Cellio

Ngoài ra, tôi chưa thành công btrfs device scan. Bất kỳ biến thể nào, bao gồm cả việc sử dụng đều gây sudora lỗi "LRI: không thể quét thiết bị '/ dev / sdX'" trong đó X là bất kỳ tên hợp lệ nào, chẳng hạn như a, a1, b, v.v.
MountainX cho Monica Cellio

@OneZero: Tôi chưa có tất cả các câu trả lời, nhưng tôi đã tìm ra lệnh chính xác để tạo ảnh chụp nhanh phân vùng nhà của tôi trên Ubuntu 12.04 và tôi đã cung cấp thông tin đó dưới dạng câu trả lời bên dưới.
MountainX cho Monica Cellio

Điều đó thực sự kỳ lạ. Tôi đã kiểm tra với phân vùng btrfs của tôi btrfs sub snap @ /mnt/randomvà nó đã làm việc cho tôi. Sau đó, một lần nữa tôi đã ở / mnt nơi @ được gắn kết. Xin lỗi vì sự nhầm lẫn
turbo

@turbo: Câu trả lời của bạn rất hữu ích. Không cần phải xin lỗi vì đã cố gắng giúp đỡ. Ngay cả các trang Ubuntu cũng không rõ ràng. Cuối cùng chúng ta sẽ hiểu được tất cả.
MountainX cho Monica Cellio

10

Cài đặt apt-btrfs-snapshotgói, và sử dụng lệnh con của nó list, snapshot, deleteset-default.

Đây là một kịch bản bao bọc các btrfslệnh cấp thấp hơn . Nó hoạt động bằng cách đầu tiên gắn hệ thống tập tin gốc btrfs ở đâu đó. Điều đó có nghĩa là gốc thực sự, trái ngược với /@subvolume thường được gắn kết là /. Nói cách khác, bạn cần phải chạy mount /dev/sda1 /mntđể bạn có thể xem các subvolumes sẽ được liệt kê như là /mnt/@, /mnt/@homevà bất kỳ những người khác bạn đã tạo. Từ đó bạn có thể btrfs subvolume snapshot /mnt/@home @snapshot-today, sẽ tạo ra một ảnh chụp nhanh /@homeđược đặt tên /@snapshot-today. So sánh điều này với việc chạy btrfs subvolume snapshot /home /home/@snapshot_today, thay vào đó tạo ra ảnh chụp nhanh như một đứa trẻ /@home, do đó nó hiển thị khi bạn ls /homevà tên thật của nó là /@home/@snapshot-today.

Quay lại ảnh chụp nhanh chỉ là một thao tác đổi tên đơn giản : mv /mnt/@home @backup ; mv /mnt/@snapshot-today @home. Lần sau khi bạn khởi động, khi nó đi /@homevào /home, nó sẽ tìm thấy ảnh chụp nhanh.

Có một chút khó khăn để quấn đầu bạn vì bạn phải ghi nhớ sự khác biệt giữa cách btrfs nhìn mọi thứ so với cách kernel nhìn thấy mọi thứ, bị ảnh hưởng bởi các tùy chọn gắn kết (cụ thể là subvol = argument).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.