Есть ли способ заставить инструменты разметки видеть устройства, созданные 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 и символических ссылок (поэтому он публикуется как отдельный ответ):
sudo losetup --find --show ./somedrive.img
Прикрепить устройство петли для всего файла
./somedrive.img
;--find
это спроситьlosetup
искать бесплатное устройство автоматически; а также--show
это распечатать устройство было использовано. Например, рассмотрим выбранное устройство/dev/loop5
,sudo partx --update /dev/loop5
Скажите ядру Linux о необходимости повторного сканирования разделов внутри
/dev/loop5
, В случае успеха он не выдаст никакого результата, так что проверьтеls -al /dev/loop5*
чтобы увидеть, что появляется.Делай что хочешь, например
sudo gparted /dev/loop5
На этом этапе вы должны быть в состоянии правильно работать
/dev/loop5p*
,sudo partx --delete /dev/loop5
Освободить сопоставления разделов.
sudo losetup --detach /dev/loop5
Наконец, отпустите петлю устройства.
PS Если вы гордый владелец ™ util-linux
Пакет с версией v2.21 или выше, вы можете запросить как присоединение петлевого устройства, так и повторное сканирование раздела за один раз: sudo losetup --find --show --partscan ./somedrive.img
и вообще не должен сталкиваться с проблемой утилит, подобных gparted.