Sử dụng ổ cứng ngoài USB cho sao lưu dự phòng trong Linux

Rob Newcater

Trong bài viết này, tôi sẽ giới thiệu cho các bạn cách thiết lập một ổ đĩa cứng USB ngoài thành một ổ backup cho máy tính Linux, xóa partition mặc định FAT32 và tạo partition mới, tạo các file hệ thống và giới thiệu cách sử dụng rsync để backup dữ liệu quan trọng.

Tại sao phải backup trong Linux?

Sẽ có một câu hỏi là “Tại sao lại là với Linux chứ không phải là Windows, nếu bạn có một dual boot PC?” Cá nhân mà nói tôi không có máy tính như vậy, do đó câu hỏi đó với tôi chưa từng được đưa ra. Mặc dù vậy, tôi có thể đưa ra một số các lý do rằng tại sao tôi sử dụng Linux như là hệ điều hành cho việc chạy backup.

  • Windows không thể đọc các partition Linux của bạn mà không có các add-on của nhóm thứ ba.
  • Ngược lại, Linux có thể (vốn có) đọc các partition FAT 32 và NTFS.
  • Nó hoàn toàn không phức tạp để tạo một kịch bản backup đi kèm với các partition, back up chúng, sau đó gỡ bỏ chúng.
  • Việc backup với Linux có thể lấy lại được bất kỳ một file bị nhiễm virus nào đã chậm chạp.
  • Bạn đã từng bỏ mặc máy tính Windows chạy qua đêm không được giám sát?

Những xem xét

Backup là gì?

Quan điểm cũ cho rằng backup là sao chép dự phòng mọi thứ, toàn bộ hệ thống. Không thực sự liên quan đến vấn đề không gian để chạy bakup hệ thống đầy đủ bởi vì một hệ thống đã cài đặt đầy đủ có thể mất vài GB, có lẽ từ 3-10GB gồm các bản ghi hệ thống và các thành phần khác.

Trên một hệ thống máy trạm tôi không tin chắc điều này là cần thiết. Phân loại lựa chọn của tôi (Arch Linux) và nhiều phân loại phổ biến khác ngày nay như phân loại dựa trên Debian, cùng với các phân loại khác được phát hành rầm rộ. Việc cài đặt và nâng cấp các hệ thống như vậy khá dễ dàng (cũng như việc tồn tại một kinh nghiệm hữu dụng). Tôi không dám chắc bạn sẽ tiết kiệm được khoảng thời gian là bao nhiêu bằng việc chạy một backup hệ thống đầy đủ.

Bạn có thể muốn backup một số các thư mục chủ yếu như /etc và các phần của /var. /root, nó phụ thuộc vào cách bạn chạy hệ thống.

Nếu có một danh sách tất cả các gói đã được cài đặt trên hệ thống của bạn thì đó là một điều hữu dụng. pacman –Qi sẽ cung cấp vấn đề này cho Arch, dpkg – danh sách sẽ cung cấp tương tự cho Debian & Co. Redirect đầu ra đến một file trong thư mục chủ của bạn. Nếu thực hiện điều này hãy lập thời gian biểu để chạy nó hàng ngày.

Những thành phần quan trọng đối với hầu hết các hệ thống máy trạm sẽ ở bên trong thư mục chủ; các tài liệu, email, file nhạc mp3, phim, ảnh,… vì vậy sao chép dự phòng vào thư mục chủ là những gì tôi sẽ tập trung giới thiệu trong bài viết này.

Backup nguyên bản hay như người dùng bình thường?

Một nguyên tắc có thể nhận ra là thử và chạy nhiều lần không cần sử dụng tài khoản gốc. Backup các file hệ thống như root và backup thư mục chủ tách biệt bằng việc sử dụng tài khoản người dùng thông thường. Điều này làm cho nó trở nên dễ dàng hơn để khôi phục dữ liệu người dùng thông thường, dễ dàng truy cập hơn root.

Cho phép backup partition đã cài đặt hay gỡ bỏ chúng sau mỗi backup?

Bạn nên cố gắng bảo đảm rằng backup partition được gỡ bỏ sau mỗi backup. Điều này sẽ giúp ngăn chặn việc sửa đổi dữ liệu trong những tình huống mất điện đột ngột.

Chỉ sử dụng đĩa backup cho việc backup. Không nên lưu trữ dữ liệu thực trên nó. Nếu đĩa backup bị hỏng thì bạn sẽ mất mọi thứ. Nếu nó chỉ lưu các backup thì bạn có thể thực hiện thay thế và đưa nó vào dịch vụ một cách nhanh chóng. Nếu nó cũng có dữ liệu thực trên đó thì dữ liệu đó sẽ bị mất hết.

Sử dụng phần mềm backup nào?

Bài viết này tập trung vào rsync. Với một số tính năng rất thông minh, những tính năng đó gồm:

  • Việc truyền bên trong giảm góc trễ cho nhiều file.
  • Nếu một file được thay đổi, nó chỉ gửi những khác biệt trong file đến vị trí mới.
  • Nó có thể được sử dụng trên một mạng; tôi đã sử dụng rsync với SSH để backup cho một máy tính kiểm tra của tôi tại nhà. Máy tính kiểm tra này đôi khi bị tắt (do giá điện quá đắt; rất khó khăn để sử dụng máy tính này liên tục, nó được nối vào một UPS…) và vì vậy đôi khi một vài ngày sẽ thực hiện backup. Kết nối USB luôn luôn là kết nối nhanh và tốt, vì vậy tôi chưa từng bị hỏng một backup nào.

Bắt đầu với phần cứng

Tùy thuộc vào từng loại USB HDD mà bạn đã mua, hãy đọc tài liệu hướng dẫn cho bộ công cụ của bạn. Trước khi bắt đầu, chạy tail -f /var/log/messages.log trong một đầu cuối tách biệt (như root). Điều này không thực sự cần thiết, chỉ là để minh chứng rằng hệ thống của bạn đã nhận ra ổ đĩa USB. Các bước cơ bản này có thể liên quan đến một vài thứ như:

  • Kết nối ổ đĩa USB vào hệ thống.
  • Nối cáp nguồn
  • Bật nguồn

Khi có đã có ổ đĩa được kết nối và cấp nguồn, bạn có thể thấy nó trong hệ thống của mình.

Chạy tail sẽ hiển thị như phần dưới đây:

Apr 16 23:17:40 aquilonia usb 1-7: new high speed USB device using ehci_hcd and address 7
Apr 16 23:17:40 aquilonia usb 1-7: configuration #1 chosen from 1 choice
Apr 16 23:17:40 aquilonia scsi4 : SCSI emulation for USB Mass Storage devices
Apr 16 23:17:40 aquilonia scsi 4:0:0:0: Direct-Access SAMSUNG HD400LD WQ10 PQ: 0 ANSI: 0
Apr 16 23:17:40 aquilonia SCSI device sda: 781422768 512-byte hdwr sectors (400088 MB)
Apr 16 23:17:40 aquilonia sda: Write Protect is off
Apr 16 23:17:40 aquilonia SCSI device sda: 781422768 512-byte hdwr sectors (400088 MB)
Apr 16 23:17:40 aquilonia sda: Write Protect is off
Apr 16 23:17:40 aquilonia sda: sda1
Apr 16 23:17:40 aquilonia sd 4:0:0:0: Attached scsi disk sda


Chúng ta có thể thấy được ở đây ổ đĩa USB mới được thể hiện như SCSI device /dev/sda với partition /dev/sda1 đơn.

Ctrl-C để đóng lệnh tail của bạn.

Partition hiển thị gần mới sẽ có thể là các file hệ thống FAT32. Nếu đồng ý với điều đó thì bạn có thể tạo một đầu vào trong /etc/fstab một vài dòng sau để truy cập nó:

# <file system> <dir> <type> <options> <dump> <pass>
...
/dev/sda1 /mnt/usb vfat user,noauto,rw 0 0

Những tùy chọn có ý nghĩa tương ứng với bất kỳ người dùng này có thể cài đặt các file hệ thống, nhưng chỉ có người dùng đã cài đặt các file hệ thống mới có thể gỡ bỏ nó, các file hệ thống sẽ không cài ở thời điểm khởi động (không tự động) và chúng được cài đặt cho phép truy cập đọc và ghi(rw).

Bạn có thể kiểm tra ổ cứng mới như một người dùng thông thường:

$ mount /mnt/usb
$ df -k


Filesystem 1K-blocks Used Available Use% Mounted on
...
/dev/sda1 390610848 64 390610784 1% /mnt/usb


Các file hệ thống FAT32 mặc định phù hợp đang ở trong ổ cứng này sẵn sàng được sử dụng. Nhược điểm ở đầy là:

  • Sự phân đoạn
  • Không có nhật ký khôi phục trong các trường hợp mất nguồn.
  • Điều kiện bảo mật nghèo – các file FAT 32 tự động nằm trong file hệ thống.

Tôi thích ReiserFS (Reiser 3). Tuy nhiên bạn hoàn toàn có thể xem xét khác với máy tính Windows, ở đây tôi không sử dụng Windows.Tiếp tục tôi sẽ vào Reiser 3 partition đơn. Để thực hiện điều này, thứ cần đến trước tiên là sử dụng cfdisk để xóa partition cũ và tạo cái mới. Bạn có thể cần đến truy cập root hoặc sudo cho vấn đề này (phụ thuộc vào cách hệ thống của bạn được cấu hình như thế nào).

# cfdisk /dev/sda

                                  cfdisk 2.12r
Disk Drive: /dev/sda
Size: 400088457216 bytes, 400.0 GB
Heads: 255   Sectors per Track: 63   Cylinders: 48641
Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
    sda1                    Primary   W95 FAT32                       400085.85 
[Bootable]  [ Delete ]  [  Help  ]  [Maximize]  [ Print  ]
[  Quit  ]  [  Type  ]  [ Units  ]  [ Write  ]
Toggle bootable flag of the current partition

FAT32 partition. Hãy loại bỏ nó sau đó xem những gì còn lại. Chọn [ Delete ] từ menu

                                  cfdisk 2.12r
Disk Drive: /dev/sda
Size: 400088457216 bytes, 400.0 GB
Heads: 255   Sectors per Track: 63   Cylinders: 48641
Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
    sda1                    Primary   W95 FAT32                       400085.85 
[Bootable]  [ Delete ]  [  Help  ]  [Maximize]  [ Print  ]
[  Quit  ]  [  Type  ]  [ Units  ]  [ Write  ]
Delete the current partition
                                  cfdisk 2.12r
Disk Drive: /dev/sda
Size: 400088457216 bytes, 400.0 GB
Heads: 255   Sectors per Track: 63   Cylinders: 48641
Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
                            Pri/Log   Free Space                      400085.85 
[  Help  ]  [  New   ]  [ Print  ]  [  Quit  ]  [ Units  ]
[ Write  ]
Print help screen

Đúng, không còn gì để lại. Đây là thời điển tạo một partition mới. Partition này sẽ là chính và tôi sẽ chỉ tạo một partition – toàn bộ đĩa này là backup. Chọn [ New ], [Primary] để tạo một partition chính mới. Chấp nhận kích thước mặc định đươc cung cấp, kích thước này sẽ là tất cả dung lượng đĩa.

                                  cfdisk 2.12r
Disk Drive: /dev/sda
Size: 400088457216 bytes, 400.0 GB
Heads: 255   Sectors per Track: 63   Cylinders: 48641
Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
    sda1                    Primary   Linux                           400085.85 
[Bootable]  [ Delete ]  [  Help  ]  [Maximize]  [ Print  ]
[  Quit  ]  [  Type  ]  [ Units  ]  [ Write  ]
Toggle bootable flag of the current partition

Bây giờ viết một bảng partition mới cho đĩa

                                  cfdisk 2.12r
Disk Drive: /dev/sda
Size: 400088457216 bytes, 400.0 GB
Heads: 255   Sectors per Track: 63   Cylinders: 48641
Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
    sda1                    Primary   Linux                           400085.85 
[Bootable]  [ Delete ]  [  Help  ]  [Maximize]  [ Print  ]
[  Quit  ]  [  Type  ]  [ Units  ]  [ Write  ]
Write partition table to disk (this might destroy data)
                                  cfdisk 2.12r
Disk Drive: /dev/sda
Size: 400088457216 bytes, 400.0 GB
Heads: 255   Sectors per Track: 63   Cylinders: 48641
Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
    sda1                    Primary   Linux                           400085.85 
Are you sure you want to write the partition table to disk? (yes or no):
Warning!!  This may destroy data on your disk!

Đánh Yes và nhấn Enter để tiếp tục

                                  cfdisk 2.12r
Disk Drive: /dev/sda
Size: 400088457216 bytes, 400.0 GB
Heads: 255   Sectors per Track: 63   Cylinders: 48641
Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
    sda1                    Primary   Linux                           400085.85 
[Bootable]  [ Delete ]  [  Help  ]  [Maximize]  [ Print  ]
[  Quit  ]  [  Type  ]  [ Units  ]  [ Write  ]
No primary partitions are marked bootable. DOS MBR cannot boot this.
Toggle bootable flag of the current partition

Còn bây giờ bạn có thể [ Quit ].

Để lắp thiết bị bảo vệ mới, tôi đã tạo một Linux partition chính đơn cho tất cả không gian đĩa của ổ USB.

Tạo một filesystem mới

Để tạo một filesystem. Sử dụng reiserfs, bạn có thể chọn ext3 hoặc bất cứ thứ gì bạn muốn.

# /sbin/mkreiserfs /dev/sda1

mkreiserfs 3.6.20
Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiserfsprogs/COPYING.
A pair of credits:
Continuing core development of ReiserFS is  mostly paid for by Hans Reiser from
money made selling licenses  in addition to the GPL to companies who don't want
it known that they use ReiserFS  as a foundation for their proprietary product.
And my lawyer asked 'People pay you money for this?'. Yup. Life is good. If you
buy ReiserFS, you can focus on your value add rather than reinventing an entire
FS.
Vladimir Saveliev started as the most junior programmer on the team, and became
the lead programmer.  He is now an experienced highly productive programmer. He
wrote the extent  handling code for Reiser4,  plus parts of  the balancing code
and file write and file read.
Guessing about desired format.. Kernel 2.6.20-ARCH is running.
Format 3.6 with standard journal
Count of blocks on the device: 97677200
Number of blocks consumed by mkreiserfs formatting process: 11192
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 19cfe77a-8913-4aed-bc25-775b42c9ce88
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON '/dev/sda1'!
Continue (y/n):y
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok
Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.
ReiserFS is successfully created on /dev/sda1.

Do đây là ổ đĩa ngoài chỉ sử dụng cho backup nên chúng ta bỏ qua việc khởi động lại.

Điểm cài đặt

Tôi sẽ tạo một điểm cài đặt mới có tên thích hợp hơn tại /mnt/backup:

# mkdir /mnt/backup

Bạn cần tạo một đầu vào trong /etc/fstab

# <file system> <dir> <type> <options> <dump> <pass>
...
/dev/sda1 /mnt/backup reiserfs user,noauto,rw 0 0


Hãy cài đặt filesystem như một người dùng thông thường (chúng ta cần phải truy cập vào nó). Thoát khỏi tiện ích gốc.

$ mount /mnt/backup
$ df -h


Filesystem Size Used Avail Use% Mounted on
...
/dev/sda1 373G 33M 373G 1% /mnt/backup


Cần phải nhớ rằng đây là Linux filesystem. FAT32 có thoải mái đôi chút khi nói đến quyền sở hữu của filesystem. Chúng ta cần phải thay đổi quyền sở hữu của filesystem mới thành người dùng thông thường (chỉ cần thực hiện điều này một lần).

$ su -
# cd /mnt
# chown -R rob:rob backup
# exit
$ cd /mnt/backup

Bây giờ chi tiết về làm thế nào để dễ thực hiện với bạn. Tôi thích tạo một thư mục được đặt tên cho host mà tôi đang backup (aquilonia trong ví dụ này), đây chỉ là một trường hợp tôi muốn backup nhiều hơn một host (có thể backup cho một laptop cũng như một desktop).

$ mkdir /mnt/backup/aquilonia

Running the backup (/home)


Cuối cùng chúng ta cần một số phần mềm để backup dữ liệu. Như tôi đã đề cập trong phần trước, tôi đã sử dụng rsync. Hãy cài đặt nó để sử dụng cho việc backup dữ liệu bước này.

Một trong những thứ mà tôi cảm thấy thú vị về rsync là khả năng sử dụng các danh sách gộp hay loại trừ. Danh sách gộp vào cho phép bạn chỉ rõ chính xác những gì bạn muốn được backup, còn cái kia cho phép bạn chỉ rõ chính xác những gì bạn không muốn backup.

Tôi thích danh sách loại trừ, bởi vì nếu tôi có quên thêm một file hoặc thư mục vào danh sách thì nó vẫn được backup. Nếu sau đó không muốn thì tôi vẫn có thể bổ sung nó vào danh sách loại trừ và xóa ra khỏi kho trữ backup. Nếu bạn quên không thêm một thành phần nào đó vào danh sách gộp, vấn đề đầu tiên là bạn phải tìm ra file đó khi bạn muốn khôi phục!

Lệnh sử dụng cho việc backup thư mục chủ của tôi (/home/rob) là:

$ rsync -vrlptg /home/rob /mnt/backup/aquilonia/home --exclude-from=/home/rob/.rsync/exclude

Sử dụng:

-v verbose output
-r recurse into directories
-l copy symlinks as symlinks
-p preserve permissions
-t preserve times
-g preserve group
/home/rob source: my home directory
/mnt/backup/aquilonia/home destination: the backup archive location
--exclude-from= use an exclude list
/home/rob/.rsync/exclude read exclude patterns from this file

Định dạnh danh sách loại trừ

Định dạng của danh sách loại trừ khá đơn giản. Chủ yếu gồm các có dạng như liệt kê bên dưới. Các thẻ tự đại diện có thể được sử dụng. Vì việc loại trừ xảy ra từ bên trong thư mục nguồn nên khoảng cách giữa các dấu “/” phải được loại bỏ. Dưới đây là một ví dụ khá cô đọng.

.adobe
.aspell.en.prepl
.aspell.en.pws
.backup_fsck_last_run
.bash_history
.cddb
.cddbslave
.config
.dbus
download/gkrellm/plugins
.gconf
.gconfd
.gimp-2.2
.gkrellm2
.mozilla
.nautilus
.openoffice.org2
paniclog
.qf
.qt
.realplayerrc
.recently-used
.sane
.serverauth.*
tmp
.viminfo
.Xauthority
.xsession-errors

Nếu bạn sử dụng rsync thì tôi khuyên bạn nên đọc kỹ về rsync. Có rất nhiều tùy chọn hữu dụng có thể tìm thấy khi nghiên cứu một cách chi tiết.

Khi đang chạy backup, bạn có thể vào đến kho lưu trữ backup và nhìn thấy những gì đã được backup. Bạn sẽ nhìn thấy một cấu trúc file rất quen thuộc (một mô hình của thư mục chủ, tất cả các bit mà bạn không muốn mất!), điều này có thể dễ dàng được điều hướng và từ đó bạn có thể dễ dàng copy file và thư mục cần thiết.

Thực hiện sự khôi phục (/home)

Khi gặp vấn đề đĩa bị lỗi hoặc các tai biến khác, bạn có thể khôi phục toàn bộ thư mục chủ (những gì đã được backup) chỉ bằng một lệnh.

$ rsync -vrlptg /mnt/backup/aquilonia/home/rob /home

Cũng có các tùy chọn như trước, ngoại trừ nguồn là kho lưu trữ backup (/mnt/backup/aquilonia/home/rob) và đích là thư mục chủ. Bạn chỉ cần chỉ ra một đích đến bởi vì bạn đã chỉ ra thư mục con như một phần của nguồn lưu trữ. rsync chờ /home/rob để được trình bày và để được thể hiện nó là nó (hoặc ít nhất là khả năng có thể viết) bởi tài khoản được thực hiện bằng lệnh.

Thực hiện backup (/etc)

Rất ngắn ngọn (như root)

# rsync -av /etc /mnt/backup/aquilonia

Lệnh trên sẽ tạo /mnt/backup/aquilonia/etc và copy nội dung của /etc vào nó. Bạn sẽ thấy quyền sở hữu của file đó và các cho phép được duy trì, điều này là một biểu hiện tốt cho việc bảo mật, làm cho ổ USB an toàn!

Nếu bạn backup các file hệ thống với rsync, thì trang hướng dẫn thêm về rsync sẽ giúp bạn rất nhiều. Kiểm tra các tùy chọn. Bạn có thể thay thế /ect trong lệnh trên bằng /var hoặc /root khi được yêu cầu, và có thể sử dụng các danh sách loại trừ nếu muốn.

Tự động backup

Backup của bạn nên được thực hiện tự động.

Tôi khuyên bạn nên viết một kịch bản nếu muốn backup tự động. Sau đó bạn có thể chạy kịch bản này thường xuyên bằng cách sử dụng một lịch trình. Kịch bản phải gồm:

  • kiểm tra xem đĩa backup có cài đặt / cài đặt nếu yêu cầu / nếu nó không thể cài đặt thì đó là một thất bại.
  • chạy backup
  • gỡ bỏ đĩa backup
  • ghi đầu ra của backup ở bất cứ đâu

Các tùy chọn

Nếu bạn không có ổ USB thì sẽ không có các tùy chọn sẵn có đối với bạn. Tất cả các thành phần khác có thể sử dụng với rsynt.

  • Backup vào ổ đĩa cứng bên trong
    • pro: nhanh hơn
    • con: cài đặt phức tạp hơn hoặc việc truyền tải đến các máy tính khác.
  • Backup Network Attached Storage (Samba hoặc NFS)
  • Backup để muốn một host được kết nói mạng bằng sử dụng rsync với SSH
  • Backup đến ổ đĩa ứng bên ngoài (esata)
Thứ Sáu, 04/05/2007 16:27
13 👨 2.272
0 Bình luận
Sắp xếp theo
    ❖ Tổng hợp