Điểm:1

Tại sao "dd" của Linux bị lỗi "không còn chỗ trống trên thiết bị" trong khi sao chép một phân vùng sang một thiết bị nhỏ hơn?

lá cờ cn

Tôi đang cố sao chép một phân vùng /dev/sda1 sang /dev/sdc1, nhưng tôi gặp lỗi "không còn chỗ trống trên thiết bị" và tôi thực sự không hiểu tại sao.

Tôi đang làm việc trên máy ảo Cơ sở hạ tầng đám mây Oracle (OCI) trong đó /dev/sda là ổ đĩa 768 GB có phân vùng sda1 đã được thu nhỏ lại chỉ còn 32 GB (quá trình diễn ra bình thường, không mất dữ liệu! Tôi có thể đảm bảo vì ổ đĩa đó là một nhóm đĩa ASM của Cơ sở dữ liệu Oracle và mọi thứ đều hoạt động tốt sau khi thu nhỏ).

Vì OCI chỉ cho phép tăng kích thước ổ đĩa nên tôi đã tạo một ổ đĩa mới /dev/sdc có kích thước 50 GB (đó là kích thước tối thiểu được phép) và tạo một phân vùng /dev/sdc1 chỉ 32 GB (cùng kích thước với /dev/sda1).

TÊN MAJ:KÍCH THƯỚC RM TỐI THIỂU RO LOẠI NÚI
sdc 8:32 0 50G 0 đĩa
ââsdc1 8:33 0 32G 0 phần
sda 8:0 0 768G 0 đĩa
ââsda1 8:1 0 32G 0 phần

Tôi gặp lỗi khi chạy

# dd if=/dev/sda1 of=/dev/sdc1 bs=512b conv=noerror,sync
dd: ghi lỗi â/dev/sdc1â: Không còn chỗ trống trên thiết bị
22567+0 hồ sơ trong
Đã hết 22566+0 bản ghi
Đã sao chép 5915787264 byte (5,9 GB), 42,9384 giây, 138 MB/giây

Hai phân vùng có cùng kích thước, như được hiển thị bởi fdisk

# fdisk /dev/sda

Đĩa /dev/sda: 824,6 GB, 824633720832 byte, 1610612736 cung
Đơn vị = các cung 1 * 512 = 512 byte
Kích thước cung (logic/vật lý): 512 byte / 4096 byte
Kích thước I/O (tối thiểu/tối ưu): 4096 byte / 1048576 byte
Loại nhãn đĩa: dos
Định danh đĩa: 0x7c9bf84b

   Khởi động thiết bị Bắt đầu Kết thúc Khối Id Hệ thống
/dev/sda1 2048 67108863 33553408 83 Linux


# ổ đĩa /dev/sdc
Đĩa /dev/sdc: 53,7 GB, 53687091200 byte, 104857600 cung
Đơn vị = các cung 1 * 512 = 512 byte
Kích thước cung (logic/vật lý): 512 byte / 4096 byte
Kích thước I/O (tối thiểu/tối ưu): 4096 byte / 1048576 byte
Loại nhãn đĩa: dos
Định danh đĩa: 0x9b11add5

   Khởi động thiết bị Bắt đầu Kết thúc Khối Id Hệ thống
/dev/sdc1 2048 67108863 33553408 83 Linux

Tôi đang làm gì sai?

lá cờ in
Nó báo lỗi khá sớm so với 32G, tôi sẽ xác minh các nút `ls -l /dev/sd?1` xác minh số nút bằng `lsblk -b`, kiểm tra `dmesg` xem có tin nhắn nào không, sử dụng `dd_rescue` hoặc `ddresTHER` thay thế.
Điểm:0
lá cờ cn

Tôi không biết vấn đề là gì, nhưng tôi đã có nó hoạt động khi nhân bản toàn bộ tập

# dd if=/dev/sda of=/dev/sdc bs=512b conv=noerror,sync

Tất nhiên, thao tác dừng ở 50 GB, tức là /dev/sdc tổng kích thước bị lỗi cùng một thông báo, nhưng kết quả vẫn ổn.

A.B avatar
lá cờ cl
A.B
Vấn đề có thể là gì: hệ thống của bạn không cập nhật các bảng phân vùng trong bộ nhớ.Bạn có thể đã tạo /dev/dc1 ở mức ~ 6G và tăng nó sau. Công cụ đơn giản nhất để bắt buộc cập nhật như vậy là `kpartx -u ...`. Điều này chỉ xảy ra nếu phân vùng đang được sử dụng.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.