скопируйте всю SD-карту в один раздел на жестком диске

Этот конкретный вопрос относится к Raspberry Pi, но на самом деле это общий вопрос.

Итак, у меня есть SD-карта с работающей на ней системой RPI, состоящая из двух разделов:

      Disk /dev/mmcblk0: 59.5 GiB, 63864569856 bytes, 124735488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4481065

Device         Boot  Start       End   Sectors  Size Id Type
/dev/mmcblk0p1        8192    532479    524288  256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      532480 124735487 124203008 59.2G 83 Linux

Кроме того, у меня подключен внешний жесткий диск, который работает как хранилище данных и теперь состоит из четырех разделов:

      Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: EZRZ-00Z5HB0    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 9E92BCDF-4CF7-4ECE-ABCD-5B6794FE747E

Device          Start        End    Sectors   Size Type
/dev/sda1        2048  125831167  125829120    60G Linux filesystem
/dev/sda2   125831168  754976767  629145600   300G Linux filesystem
/dev/sda3   754976768 2331002879 1576026112 751.5G Linux filesystem
/dev/sda4  2331002880 3907028991 1576026112 751.5G Linux filesystem

Я хочу переместить мою систему RPI с SD-карты на первый раздел жесткого диска. Могу ли я использовать следующую команду для клонирования всей SD-карты (два раздела) в первый раздел жесткого диска?

      dd if=/dev/mmcblk0 of=/dev/sda1 ...

Поскольку целевой раздел немного больше (124735488 против 125829120 секторов), я ожидаю, что первый раздел жесткого диска будет разделен на два (загрузочный и корневой), а все остальные sda2, sda3 и т. д. останутся нетронутыми. Итак, после этой операции я смогу загружаться с жесткого диска вместо SD-карты (конечно, после проверки всех UUID, которые могут измениться после миграции).

Все должно быть в порядке, AFAIK, но в настоящее время у меня нет возможности протестировать этот процесс. Поэтому нужно все перепроверить и быть на 100% уверенным, что не испортите всю систему.

обновление.Да, я понимаю, что содержимое sda1 будет уничтожено безвозвратно.

1 ответ

Не ожидается, что разделы сами будут иметь разделы. Это «одноуровневая» система, а не «дерево». Раздел не будет волшебным образом «разделен на два», даже если он будет содержать действительную таблицу разделов. Ядро не будет автоматически устанавливать специальные блочные устройства, соответствующие этим подразделам. Таким образом, хотя вы, безусловно, можете посекторно сбросить все секционированное устройство куда угодно, вам придется выполнить дополнительные ручные действия для доступа к данным в этих «подразделах» (я имею в виду, вам понадобится ручная интерпретация таблицы разделов и циклическая обработка). настройка устройств).

При этом команда, которую вы показали, может уничтожить только данные/dev/sda1. Это не коснетсяsda2,sda3и так далее. Вы ничего на них не испортите, даже если они недостаточно велики, чтобы вместить SD-карту полного размера; в этом случае dd остановится с ошибкой, когда достигнет концаsda1. Но ваше разделение, похоже, от этого не страдает.

Другие вопросы по тегам