
У меня dd
с собой есть файл образа диска .ed.
Я могу использовать такой инструмент, как kpartx
создание устройства сопоставления устройств из этого файла образа диска.
Но программы разбиения на разделы, такие как gparted
и , fdisk
не отображают мое сопоставленное устройство!
Есть ли способ gparted
(или эквивалентная программа — графическая или консольная) вывести список моего сопоставленного устройства и его разделов, а также подробную информацию об этих разделах?
PS: Это случай отсутствия какой-либо функции в этих инструментах или реализация этой функции в принципе невозможна?
решение1
Это возможно, но я не уверен, имеет ли это смысл.
Инструменты разбиения на разделы заботятся только о целом дисковом устройстве, поскольку они считывают таблицу разделов непосредственно из соответствующих секторов диска. Им не нужны устройства для каждого раздела. Это означает, что losetup
достаточно простого циклического устройства, созданного с помощью, и если инструмент его не видит, вы можете просто запустить вручную fdisk /dev/loop0
или что-то в этом роде.
(Есливесь-диск(Если устройство находится в /dev/mapper/
, несложно заставить эти инструменты его увидеть, хотя обычно для этого требуется отредактировать несколько строк исходного кода... запуск fdisk /dev/mapper/bleh
часто оказывается проще.)
Также обратите внимание, что поддержка последних ядер losetup --partscan
устраняет необходимость использования device-mapper для этого.
решение2
Просто создайте временную жесткую ссылкупосле запуска kpartx -a ...
:
sudo ln /dev/loop0 /dev/mapper/loop0
А затем запустите gparted как обычно (он будет работать правильно /dev/mapper/loop0p*
):
sudo gparted /dev/mapper/loop0
Не забудьте удалить ссылку, когда она больше не нужна.
решение3
Спустя 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
Наконец, отпустите петлевое устройство.
ПСЕсли вы являетесь гордым владельцем™ util-linux
пакета версии v2.21 или выше, вы можете запросить как присоединение циклического устройства, так и повторное сканирование раздела за один раз: sudo losetup --find --show --partscan ./somedrive.img
и у вас вообще не должно возникнуть проблем с утилитами типа gparted.