Почему Linux «dd» выдает ошибку «на устройстве не осталось места» при копировании одного раздела на меньшее устройство?

Я пытаюсь скопировать единственный раздел / dev / sda1 в / dev / sdc1, но получаю сообщение об ошибке «на устройстве не осталось места», и я честно не понимаю почему.

Я работаю над виртуальной машиной Oracle Cloud Infrastructure (OCI), где / dev / sda - это том 768 ГБ, раздел sda1 которого был уменьшен до 32 ГБ (процесс прошел нормально, данных нет Я могу гарантировать, потому что этот том является дисковой группой Oracle Database ASM, и после сжатия все работает нормально).

Поскольку OCI позволяет только увеличивать размер тома, я создал новый том / dev / sdc размером 50 ГБ (это минимально допустимый размер) и создал раздел / dev / sdc1 размером всего 32 ГБ (того же размера, что и / dev / sda1).

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdc      8:32   0    50G  0 disk
└─sdc1   8:33   0    32G  0 part
sda      8:0    0   768G  0 disk
└─sda1   8:1    0    32G  0 part

Я получаю сообщение об ошибке во время работы

# dd if=/dev/sda1 of=/dev/sdc1 bs=512b conv=noerror,sync
dd: error writing ‘/dev/sdc1’: No space left on device
22567+0 records in
22566+0 records out
5915787264 bytes (5.9 GB) copied, 42.9384 s, 138 MB/s

Два раздела имеют одинаковый размер, как показывает fdisk

# fdisk /dev/sda

Disk /dev/sda: 824.6 GB, 824633720832 bytes, 1610612736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes
Disk label type: dos
Disk identifier: 0x7c9bf84b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    67108863    33553408   83  Linux


# fdisk /dev/sdc
Disk /dev/sdc: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes
Disk label type: dos
Disk identifier: 0x9b11add5

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    67108863    33553408   83  Linux

Что я делаю не так?

1
задан 27 August 2021 в 11:20
1 ответ

Я не знаю, в чем проблема, но у меня все получилось, просто клонировав весь том

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

Конечно, операция останавливается на 50 ГБ, то есть на общем размере /dev/sdc, с тем же сообщением об ошибке, но результат в порядке.

0
ответ дан 27 August 2021 в 16:15

Теги

Похожие вопросы