sử dụng dd để sao chép phân vùng sang phân vùng khác, trong khi sử dụng ổ đĩa vật lý


17

Tôi không chắc làm thế nào để giải thích điều này trong chủ đề tốt hơn, vì vậy "câu hỏi" có thể không đúng. Nhưng ở đây đi. Tôi có ba ổ cứng. Ổ A là ổ 320 GB, Ổ B là Ổ 80 GB và Ổ C là Ổ 1TB. Tôi đã sao chép dữ liệu từ ổ đĩa 80 GB sang ổ đĩa 1TB và tôi sẽ thay đổi kích thước phân vùng (để tôi có thể sao chép dữ liệu từ ổ đĩa 320 GB tiếp theo).

Câu hỏi của tôi là: Nếu tôi khởi động vào hệ điều hành trên ổ đĩa 1TB, tôi có thể sử dụng dd để sao chép ổ đĩa 320 GB sang phân vùng khác trên ổ đĩa vật lý đó không? Tôi biết rằng tôi không nên sao chép phân vùng trực tiếp (có nghĩa là tôi không thể sao chép dữ liệu từ ổ đĩa 320 GB nếu tôi đang chạy hệ điều hành đó).

Lý do của tôi là thế này: Tôi đã thử sử dụng Acronis TrueImage, Trình quản lý phân vùng và Image 4 DOS / Linux (cả hai ứng dụng) và sẽ mất hơn một tuần để sao chép dữ liệu. Điều đó có nghĩa là trong một tuần, tôi không thể sử dụng máy tính, điều này không được chấp nhận (trừ khi đó là lựa chọn duy nhất của tôi). Tôi hy vọng rằng điều này hoạt động, vì vậy tôi ít nhất có thể sử dụng máy tính trong khi tôi đang sao chép.

Nếu tôi phải, tôi có thể khởi động vào Live CD (không thực sự là một tùy chọn ưa thích) hoặc sử dụng "Drive B", nhưng tôi muốn xóa ổ đĩa đó càng sớm càng tốt.


Chắc chắn, tại sao không?
Michael Hampton

Câu trả lời:


17

Có, những gì bạn muốn làm sẽ hoạt động tốt, với hai điều kiện sau đây là đúng:

  1. Không có hệ thống tập tin (được gắn) trên phân vùng mà bạn đang truy cập .
  2. Các phân vùng bạn đang dd'ing để ít nhất là kích thước tương tự như một trong những bạn đang dd'ing từ (tức là 320 GB).

Lý do nó sẽ hoạt động tốt là các phân vùng chỉ là các tệp trong UNIX. Nội dung của chúng chỉ có ý nghĩa đặc biệt nếu chúng chứa một hệ thống tập tin được gắn kết.

Giả sử bạn có một bố cục trông như thế này:

1 TB = sda, hai phân vùng, sda1 mà bạn đã khởi động từ và sda2 mà bạn đang truy cập

320 GB = sdb, một phân vùng, sdb1 mà bạn đang tìm kiếm

Lệnh của bạn sẽ trông như thế này:

dd if=/dev/sdb1 of=/dev/sda2 bs=1M

Các bs=1Mtham số là có để đảm bảo rằng dd sao chép dữ liệu trong khối lớn thay vì phát hành một yêu cầu đối với từng ngành.


1
if = source of = Destination tôi nghĩ có gì đó không đúng trong lời khuyên ở trên.

Trong ví dụ trên, sdb1 là nguồn và sda2 là đích. Tôi chỉnh sửa câu trả lời để rõ hơn về điều đó.
Michael Fenn

1
Không cần thực hiện resize2fssau khi sao chép? Ngay cả khi kích thước là khác nhau?
Sopalajo de Arrierez

5

Nói chung, ok để dd bất kỳ phân vùng trong khi nó không được gắn kết. Nếu bạn phải gắn kết phân vùng nguồn để đọc trong khi dd chạy, tốt hơn là chỉ gắn kết nó với chỉ đọc -o ro.

Nếu trước tiên bạn muốn khởi động vào phân vùng nguồn sau đó sử dụng dd để sao chép nó, bạn có thể thực hiện mount -o ro, remount / để làm cho nó chỉ đọc sau khi khởi động.


Chỉ đọc không có nghĩa là hệ thống tập tin không bị lừa với tạp chí hoặc sắp xếp lại không gian trống hoặc bất cứ điều gì.
vonbrand

@vonbrand bạn có thể cung cấp một ví dụ về triển khai hệ thống tập tin linux thực hiện điều đó khi ở chế độ RO không?
Basilevs

@vonbrand Trong các hệ thống tập tin UNIX, việc được gắn ro rất nhiều nghĩa là không nên ghi vào thiết bị bên dưới.
Michael Fenn
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.