Sử dụng ổ cứng ngoài USB cho sao lưu dự phòng
trong Linux
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
o pro: nhanh hơn
o 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)