Создать загрузочный диск из образа раздела ext4

Что касается первого вопроса, который вы задали, любая программа, работающая на виртуальной машине, будет использовать ядро ​​и библиотеки в гостевой системе, а не в хосте (, что имеет смысл :гость Windows не сможет напрямую вызывать библиотеки на хосте Linux или наоборот. )Пока ваша виртуальная машина Fedora имеет практически ту же конфигурацию Python, что и ваши машины с Ubuntu, вы сможете провести корректное сравнение между ними.

(Единственным придирчивым -исключением из этого является интерфейс, который VirtualBox предоставляет гостю :, например, сетевой адаптер гостя реализуется как серия сетевых вызовов на хосте. Однако, если в VirtualBox или вашем хосте нет ошибки, это не должно влиять на ваши тесты.)

Я бы порекомендовал опубликовать отдельный вопрос о переполнении стека с неработающим -кодом, хотя :принудительный запуск программы в определенной версии/дистрибутиве — это не весело и крайне хрупко.

1
22.03.2020, 01:43
1 ответ

Вы можете циклически -смонтировать весь -образ диска с поддержкой разделов, а затем ddобновленный sda2образ на место внутри него:

losetup -P /dev/loop0 /nfs/sda.raw  #this will create /dev/loop0p1 and loop0p2
dd if=/nfs/sda2.raw of=/dev/loop0p2
losetup -d /dev/loop0

Кроме того, ваша таблица разделов указывает, что ваш первый раздел начинается с сектора #2048, поэтому на вашем диске есть 2048 *512 байт = 1 МБ пространства перед первым разделом ("head" ), и 500118192 -500117503 -1 = 688 секторов (344 КБ )пространства в конце («хвоста» )вне любого раздела.(-1, потому что первый сектор равен #0, а не #1)

Первый раздел заканчивается на секторе #2000895, а второй начинается на #2000896, поэтому между ними нет неиспользуемого пространства.

Вы используете таблицу разделов GPT, которая включает в себя резервную копию таблицы разделов в конце диска, поэтому необходимо также захватить «хвостовую» часть. Он начинается с сектора #500117504 и продолжается до конца диска.

Таким образом, вы можете захватить содержимое "головной" и "хвостовой" частей по отдельности, а затем собрать все вместе:

dd if=/dev/sda of=/nfs/head.raw bs=512 count=2048
dd if=/dev/sda of=/nfs/tail.raw bs=512 skip=500117504
cat /nfs/head.raw /nfs/sda1.raw /nfs/sda2.raw /nfs/tail.raw > /nfs/sda.raw

Если вы не измените таблицу разделов, вам потребуется захватить «головную» и «хвостовую» части только один раз, :они не должны изменяться при обычном использовании системы.

0
28.04.2021, 23:19

Теги

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