-1

Я хочу переместить один раздел в другое место на жестком диске, то есть содержимое sda1 в sda2 , а затем я хочу загрузиться с sda2 .

Прежде всего, я не знаю, испортит ли это какую-нибудь таблицу разделов или что-то, что делает невозможным загрузку, но я попробую. Это раздел HFS+, и я не знал, как они себя ведут.

Игнорируя это, если я попытаюсь dd содержимое из одного в другое (на самом деле я помещаю содержимое в файл в отдельный большой раздел), что произойдет, если в sda2 хватит места? Будет ли он продолжать работать в следующем разделе, физически расположенном на диске, или он просто остановится и выдаст ошибку?

2 ответа2

3

что будет если sda2 хватит места?

Если вы используете of=/dev/sda2 и в sda2 заканчивается свободное место, то dd выйдет с No space left on device . Одним из пунктов использования специальных файлов, таких как /dev/sda2 является уверенность, что вы не читаете и не пишете за его пределами в /dev/sda .

Получающаяся файловая система на sda2 будет повреждена, если она не достаточно мала, чтобы уместиться. Это редко, но возможно иметь файловую систему, меньшую, чем раздел, содержащий ее. Только в этом случае dd -ing для меньшего (но достаточно большого) раздела копирует всю файловую систему.

Но если бы вы использовали of=/dev/sda и seek=… чтобы начать писать именно там, где начинается sda2 , а если ваш if больше sda2 , то dd с радостью запишет после конца sda2 , потому что он открыл весь sda и имеет доступ ко всему этому. Мы используем абстракцию sdaN чтобы избежать подобных ошибок.

1

Если вы входите непосредственно в of=/dev/sda2:

Узлы разделительных устройств ограничены ядром в соответствии с таблицей разделов, поэтому все операции записи после конца будут возвращать -ENOSPC ("На устройстве не осталось места"). При получении любой ошибки записи dd остановится.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .