Казалось бы, я не только один, чтобы заметить это поведение. Это особенно важно для некоторых arm
сред, где наличие загрузчика на диске может вызвать проблемы.
Проблема в том, что parted сам (и молча) помещает туда код, и, следовательно, встроенная система думает, что код корректного загрузчика есть, и благополучно зависает.
...а также...
Есть ли опция parted, чтобы избежать добавления этого кода (и вести себя как fdisk)?
Кажется, что это поведение parted
является преднамеренным . Как пользователь на parted
почтовой рассылке спрашивает:
Проблема в том, что parted генерирует следующий код с самого начала MBR:
...
Какова цель этого кода? Почему это было положено там?
И ответ, кажется, таков:
Это загрузочный код MBR, обычно используемый для загрузки системы BIOS. Если это вызывает проблемы в системах, отличных от x86, вы должны обнулить его (или записать системный загрузчик после разбиения).
Кажется, что mklabel
он предназначен для записи общего загрузчика на диск. По крайней мере, когда используется ярлык msdos
. Я полагаю, что имеет смысл, но исходя из fdisk
и syslinux
, кажется, немного необычно для менеджера разделов для изменения секторов загрузчика.
Это, кажется, как parted
следует не быть перезапись тех секторов, если данные ненулевой присутствуют.
Нет, единственный раз, когда он не напишет, это если что-то уже есть (например, не 0x00). Так что, если вы можете заставить SDK сначала написать свой загрузчик, а затем разделить его, parted оставит его нетронутым.
Тем не менее, это не то поведение, которое я вижу. Если я пишу мусор из /dev/urandom
, а затем запускаю parted mklabel
, мои ненулевые данные определенно засоряются.
Если я соберу mbr.s
файл libparted
из разделенного репозитория, я смогу увидеть, откуда берутся эти байты.
$ as86 -b /dev/stdout mbr.s | hexdump -e '16/1 "%02x " "\n"' fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b 4c 02 cd 13 ea 00 7c 00 00 eb fe
Это именно та последовательность байтов, которая parted
создается на моем диске.