nén sao lưu dd khi đang bay


23

Có thể điều này nghe có vẻ như câu hỏi ngớ ngẩn nhưng cách tôi đang cố gắng thực hiện nó không hoạt động.

Tôi đang trên mạng, ổ đĩa là vô song, vv

Khi tôi sao lưu theo cách này

sudo dd if=/dev/sda2 of=/media/disk/sda2-backup-10august09.ext3 bs=64k

... thông thường nó sẽ hoạt động nhưng tôi không có đủ không gian trên hd bên ngoài mà tôi đang sao chép (nó CÒN phù hợp với nó). Vì vậy, tôi muốn nén theo cách này

 sudo dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz

... nhưng tôi đã bị từ chối. Tôi không hiểu


2
Đừng. Đây không phải là một bản sao lưu. Kiểm tra các lệnh 'dump' và 'restore'.
Juliano

Hoặc tar hoặc cpio ....
chris

1
Juliano, ý của bạn là 'đây không phải là bản sao lưu'?
Phil

5
Đây không phải là một bản sao lưu vì các bản sao lưu rất nghiêm túc, có cấu trúc tốt và sử dụng các công cụ thích hợp nhằm tạo các bản sao lưu. Bạn chỉ đang tạo một bản sao của dữ liệu thô của một phân vùng. Để khôi phục dữ liệu này, bạn sẽ cần một phân vùng khác có cùng hình dạng, không được bảo đảm. Ngoài ra, nếu bạn làm hỏng một khối lưu trữ duy nhất của bạn (siêu khối, bảng inode, thư mục gốc, v.v.), bạn có nguy cơ mất tất cả dữ liệu của mình. Với một bản sao lưu thích hợp, điều này sẽ không xảy ra.
Juliano

7
"Để khôi phục dữ liệu này, bạn sẽ cần một phân vùng khác có cùng hình dạng, không được bảo đảm" Tại sao anh ta cần điều đó, anh ta không thể gắn hình ảnh phân vùng trên thiết bị loopback?
Kyle Brandt

Câu trả lời:


41

Bạn có quyền truy cập vào tập tin sda2-backup ... gz không? Sudo chỉ hoạt động với lệnh sau nó và không áp dụng cho chuyển hướng. Nếu bạn muốn nó áp dụng cho chuyển hướng, thì hãy chạy shell với quyền root để tất cả các tiến trình con cũng được root:

sudo bash -c "dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz"

Ngoài ra, bạn có thể gắn đĩa với các tùy chọn gắn kết uid / gid (giả sử ext3) để bạn có quyền ghi như bất kỳ người dùng nào của bạn. Hoặc, sử dụng root để tạo thư mục trong / media / đĩa mà bạn có quyền.

Thông tin khác có thể giúp bạn:

  • Kích thước khối chỉ thực sự quan trọng đối với tốc độ cho hầu hết các phần. Mặc định là 512 byte mà bạn muốn giữ cho MBR và đĩa mềm. Kích thước lớn hơn đến một điểm sẽ tăng tốc các hoạt động, nghĩ về nó tương tự như một bộ đệm. Đây là một liên kết đến một người đã thực hiện một số điểm chuẩn tốc độ với các kích thước khối khác nhau. Nhưng bạn nên làm thử nghiệm của riêng bạn, vì hiệu suất bị ảnh hưởng bởi nhiều yếu tố. Hãy xem câu trả lời khác của andreas
  • Nếu bạn muốn thực hiện điều này qua mạng với ssh và netcat để không gian có thể không phải là vấn đề lớn, hãy xem câu hỏi về lỗi máy chủ này .
  • Bạn có thực sự cần một hình ảnh của phân vùng, có thể có chiến lược sao lưu tốt hơn?
  • dd là một lệnh rất nguy hiểm, sử dụng ofthay vì ifvà cuối cùng bạn ghi đè lên những gì bạn đang cố gắng sao lưu !! Chú ý các phím oinằm cạnh nhau như thế nào? Vì vậy, rất rất rất rất cẩn thận.

Tôi sẽ thử cái này. Làm thế nào để tôi cũng làm cho nó bs = 64k? (và tôi có phải không?)
Phil

Bs = 64k chỉ khiến việc chuyển tiền diễn ra nhanh hơn vì dd sẽ đọc từng khối 64k thay vì kích thước khối mặc định là (tôi không nhớ).
chris

Chris đã nói gì, và nếu bạn muốn đưa nó vào sau dd và trước ký hiệu ống dẫn (|) vì đây là đối số của dd.
Kyle Brandt

1
Thỉnh thoảng tôi cũng sẽ sử dụng "sudo tee $ file> / dev / null" trong một đường ống để cho phép ghi vào một tệp mà tài khoản người dùng của tôi cũng không có quyền truy cập.
Rik Schneider

6

Trong trường hợp đầu tiên, dd đang chạy như root.

Trong trường hợp thứ hai, dd đang chạy với quyền root nhưng gzip đang chạy như bạn.

Thay đổi quyền trên / media / đĩa, cung cấp cho chính bạn một vỏ gốc hoặc chạy gzip với quyền root.


3

Ngoài ra, bạn có thể thay thế gzip bằng bzip2 --bestcách nén tốt hơn nhiều:

sudo dd if=/dev/sda2 | bzip2 --best > /media/disk/$(date +%Y%m%d_%H%M%S)_sda2-backup.bz2

3
Với chi phí rất nhiều thời gian. Xem changelog.complete.org/archives/ ( "Cách nghĩ về nén" để biết thêm chi tiết.
Bill Weiss

@Billweiss: Cảm ơn bình luận của bạn, đọc rất thú vị!
andreas

nén: lzma> bzip2> gzip .. speed: gzip> bzip2> lzma. Trừ khi bạn đang xuất bản hình ảnh đĩa trên internet, không có nhiều lợi ích về thời gian, sức mạnh CPU và bộ nhớ bạn đang chi tiêu để nén tốt hơn.
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.