Ý nghĩa của ranh giới hệ thống tập tin chéo, --one-file-system, v.v.


9

Tôi dự định sử dụng rsnapshot để sao lưu toàn bộ hệ thống Linux của mình, mặc dù tôi bối rối bởi -xtùy chọn (tương tự one_fstrong rsnapshot.conf). Trang người đàn ông nói:

-x một hệ thống tập tin, không phân vùng chéo trong mỗi điểm sao lưu

Tôi hiểu đó không phải là một tùy chọn rsnapshot cụ thể vì rsync, cp, tar và các lệnh khác cũng cung cấp tính năng này.

Có ranh giới hệ thống tập tin đề cập đến các phân vùng khác nhau? Điểm gắn kết khác nhau? Và ý nghĩa của việc không "vượt qua" chúng là gì?

Quay lại trường hợp của tôi, tôi đã đọc nhiều người đề nghị sử dụng -xvới rsnapshot, nhưng tôi tự hỏi nếu làm như vậy sẽ không ảnh hưởng đến tính đầy đủ của bản sao lưu của tôi. Tôi muốn tất cả mọi thứ sao lưu dưới /, bao gồm /boot/home, mà nằm trên phân vùng dành riêng của cùng một đĩa, trong khi cùng một lúc tôi không muốn sao lưu các file và thư mục không đúng thuộc hệ thống của tôi, giống như /mnt, /mediavv

mountLệnh thực thi trên hệ thống của tôi cho đầu ra sau. Pratically, sử dụng rsnapshot -x, những gì sẽ được bao gồm và những gì sẽ bị bỏ lại?

/dev/sda7 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /tmp type tmpfs (rw,noexec,nosuid)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda6 on /boot type ext3 (rw)
/dev/sda8 on /home type ext4 (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/myuser/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=myuser)

Câu trả lời:


12

Không được vượt qua ranh giới hệ thống tập tin, có nghĩa là không nhìn vào bên trong các điểm gắn kết. Một ranh giới giữa các hệ thống tập tin là một điểm gắn kết. Về mặt hiệu quả, điều này có nghĩa là chỉ hành động trên phân vùng được chỉ định, ngoại trừ việc không phải tất cả các hệ thống tập tin đều nằm trên một phân vùng. Xem Điểm gắn kết nào tồn tại trên một hệ thống Linux điển hình?

Khi bạn tạo bản sao lưu, bạn nên tránh một số hệ thống tệp, cụ thể là:

  • hệ thống tập tin từ xa (NFS, Samba, SSHFS, tầm);
  • hệ thống tập tin có nội dung được tạo ra khi đang bay từ dữ liệu thời gian chạy ( /proc, /sys, ...);
  • các hệ thống tập tin là một khung nhìn của một phần khác của cây thư mục (bindfs, avfs, tầm);
  • hệ thống tập tin trong bộ nhớ chứa dữ liệu chỉ hợp lệ cho đến lần khởi động lại tiếp theo ( /tmp,, /dev/shm);
  • phương tiện lưu động có thể có hoặc không có mặt tại bất kỳ thời điểm nào và không phải là một phần của hệ thống.

Các hệ thống tập tin để sao lưu chỉ là những hệ thống tương ứng với lưu trữ trên đĩa. Nhiều hệ thống chỉ có một hệ thống tập tin như vậy, được gắn trên thư mục gốc /. Bạn có thể biết được hệ thống tập tin tương ứng với lưu trữ trên đĩa vì nguồn của họ (cột đầu tiên mang tên “Hệ thống tập tin” của dfđầu ra, cột đầu tiên trước khi oncác mountđầu ra) là một khối lượng đĩa (một phân vùng PC kiểu như /dev/sda1, một LVM logical volume như vậy như /dev/mapper/mygroup-mylogicalvolume, lòng).

Có một vài sự tinh tế có thể khiến việc xác định hệ thống tập tin nào cần sao lưu khó hơn là chỉ nhìn vào nguồn để xem nó có trên đĩa không:

  • Khối lượng di động không nên sao lưu, mặc dù chúng là trên đĩa.
  • Linux cho phép cùng một hệ thống tập tin (hoặc các bộ phận của chúng) được gắn tại nhiều vị trí, với mount --bind; chỉ một trong số họ nên được sao lưu.
  • Có thể khó liệt kê tất cả các ổ đĩa trên đĩa: có khối lượng được mã hóa, khối lượng lưu trữ phân tán, v.v.

Trên hệ thống của bạn, các hệ thống tập tin để sao lưu được /dev/sda7gắn kết /, /dev/sda6gắn kết /boot/dev/sda8gắn kết /home. Vì vậy, bạn nên nói với rsnapshot để sao lưu ba thư mục đó. Bạn hầu như luôn luôn nên sử dụng -xtùy chọn với rsnapshot.


4

Để đơn giản hóa mọi thứ, chúng ta chỉ cần xem xét hai phân vùng. Giả sử rằng việc chạy mountthực sự tạo ra đầu ra sau:

/dev/sda1 on / type ext4 (rw,errors=remount-ro)
/dev/sda2 on /home type ext4 (rw)

Tất nhiên, điều này là hoàn toàn phi thực tế ( /devsẽ không được phổ biến, hàng tấn công cụ dựa vào sysfsprocfs, v.v.). Hãy bỏ qua điều đó.

Vượt qua một ranh giới hệ thống tập tin có nghĩa là thay đổi vào một thư mục trong đó hệ thống tập tin cơ bản (thường tương ứng với phân vùng bên dưới) là khác nhau. Thông thường khi ai đó nói về việc vượt qua một ranh giới hệ thống tập tin, họ sẽ nói về nó trong bối cảnh vượt qua cây thư mục xuống hoặc lên.

Như một ví dụ về những gì tôi muốn nói, hãy lấy git. Để tìm hiểu xem thư mục có phải là kho lưu trữ Git hay không, gittrước tiên hãy kiểm tra xem liệu có thư mục có tên ".git" trong thư mục làm việc hiện tại không. Nếu có, đó là kho Git. Nếu không có, gitsẽ thực hiện kiểm tra tương tự đối với cha mẹ của thư mục hiện tại, v.v. Theo mặc định, Git sẽ kiểm tra như thế này cho đến khi ranh giới hệ thống tập tin (hoặc một khi nó đạt được /), tại thời điểm đó, nó sẽ từ bỏ và cho rằng thư mục làm việc hiện tại trên thực tế không phải là kho lưu trữ Git.

Nói rằng bạn chạy git statusvào ~/Desktop. Git kiểm tra xem có ~/Desktop/.gitthư mục nào không ... không. Git bây giờ sẽ kiểm tra thư mục cha: có a ~/.gitkhông? Không. Đây là điểm mà ranh giới hệ thống tập tin phát huy tác dụng: vì /homelà một phân vùng riêng, thay vì kiểm tra /home/.git, gitsẽ từ bỏ, in cảnh báo đến bàn điều khiển và cho rằng thư mục làm việc hiện tại không phải là kho lưu trữ Git. Nó đã từ chối vượt qua ranh giới hệ thống tập tin.

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.