Есть ли способ заставить инструменты разметки видеть устройства, созданные kpartx?

У меня есть dd'файл образа диска со мной.

Я могу использовать такой инструмент, как kpartx создать устройство устройства отображения из этого файла образа диска.

Но разметка программ вроде gparted а также fdisk не перечисляйте мое подключенное устройство!

Есть ли способ сделать gparted (или эквивалентная программа - графическая или консольная) перечислить мое подключенное устройство и составляющие его разделы, а также подробную информацию об этих разделах?

PS: Это тот случай, когда в этих инструментах отсутствует функция или предоставление этой функции принципиально невозможно?

3 ответа

Решение

Это возможно, но я не уверен, имеет ли это смысл.

Инструменты разбиения заботятся только о целом дисковом устройстве, потому что они читают таблицу разделов непосредственно из соответствующих секторов диска. Им не нужны устройства на разделы, чтобы существовать. Это означает, что базовое устройство петли сделано с losetup достаточно, и если инструмент не видит его, вы можете просто запустить вручную fdisk /dev/loop0 или что-то.

(Если устройство с целым диском находится в /dev/mapper/эти инструменты легко увидеть, хотя обычно это требует редактирования нескольких строк исходного кода... fdisk /dev/mapper/bleh часто проще.)


Также обратите внимание, что поддержка последних ядер losetup --partscan что избавляет от необходимости использовать устройство-маппер для этого.

Просто создайте временную жесткую ссылку после запуска kpartx -a ...:

sudo ln /dev/loop0 /dev/mapper/loop0

А затем запустите gparted как обычно (он будет работать правильно /dev/mapper/loop0p*):

sudo gparted /dev/mapper/loop0

Не забудьте удалить ссылку, когда она больше не нужна.

Через 3,5 года у меня есть другое решение по этому вопросу:)

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

  1. sudo losetup --find --show ./somedrive.img

    Прикрепить устройство петли для всего файла ./somedrive.img; --find это спросить losetup искать бесплатное устройство автоматически; а также --show это распечатать устройство было использовано. Например, рассмотрим выбранное устройство /dev/loop5,

  2. sudo partx --update /dev/loop5

    Скажите ядру Linux о необходимости повторного сканирования разделов внутри /dev/loop5, В случае успеха он не выдаст никакого результата, так что проверьте ls -al /dev/loop5* чтобы увидеть, что появляется.

  3. Делай что хочешь, например sudo gparted /dev/loop5

    На этом этапе вы должны быть в состоянии правильно работать /dev/loop5p*,

  4. sudo partx --delete /dev/loop5

    Освободить сопоставления разделов.

  5. sudo losetup --detach /dev/loop5

    Наконец, отпустите петлю устройства.

PS Если вы гордый владелец ™ util-linux Пакет с версией v2.21 или выше, вы можете запросить как присоединение петлевого устройства, так и повторное сканирование раздела за один раз: sudo losetup --find --show --partscan ./somedrive.img и вообще не должен сталкиваться с проблемой утилит, подобных gparted.

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