
Tengo un dd
archivo de imagen de disco editado conmigo.
Puedo usar una herramienta como kpartx
para crear un dispositivo asignador de dispositivos a partir de este archivo de imagen de disco.
¡Pero los programas de partición como gparted
y fdisk
no incluyen mi dispositivo mapeado!
¿Hay alguna forma de hacer gparted
(o un programa equivalente, gráfico o de consola) una lista de mi dispositivo mapeado y sus particiones constituyentes e información detallada sobre estas particiones?
PD: ¿Es este un caso de característica faltante en estas herramientas, o es que proporcionar esta característica es fundamentalmente imposible?
Respuesta1
Es posible, pero no estoy seguro de que tenga sentido.
Las herramientas de partición sólo se preocupan por el dispositivo de disco completo, porque leen la tabla de particiones directamente desde los sectores de disco relevantes. No necesitan que existan dispositivos por partición. Esto significa que un dispositivo de bucle básico hecho con losetup
es suficiente, y si una herramienta no lo ve, puedes ejecutarlo manualmente fdisk /dev/loop0
o algo así.
(Si unel disco enterodispositivo está en /dev/mapper/
, no es difícil hacer que esas herramientas lo vean, aunque generalmente implica editar algunas líneas del código fuente... ejecutarlo fdisk /dev/mapper/bleh
suele ser más fácil).
También tenga en cuenta que la compatibilidad con kernels recientes losetup --partscan
elimina la necesidad de utilizar el mapeador de dispositivos para esto.
Respuesta2
Simplemente cree un enlace duro temporaldespues de correr kpartx -a ...
:
sudo ln /dev/loop0 /dev/mapper/loop0
Y luego ejecute gparted como de costumbre (funcionará correctamente /dev/mapper/loop0p*
):
sudo gparted /dev/mapper/loop0
No olvides eliminar el enlace cuando ya no sea necesario.
Respuesta3
Después de 3,5 años tengo otra solución al respecto :)
Si no le preocupa el uso de kpartx y estoy en lo cierto al sugerir que su objetivo es operar particiones en una imagen de disco representada como un archivo normal, aquí hay un flujo de trabajo alternativo sin kpartx y enlaces simbólicos (es por eso que se publica como una respuesta separada):
sudo losetup --find --show ./somedrive.img
Adjunte un dispositivo de bucle para todo el archivo
./somedrive.img
;--find
es pedirlosetup
buscar dispositivo libre automáticamente; y--show
es para imprimir el dispositivo que se ha utilizado. Por ejemplo, considere que el dispositivo elegido es/dev/loop5
.sudo partx --update /dev/loop5
Dígale al kernel de Linux que vuelva a escanear las particiones internas
/dev/loop5
. En caso de éxito, no producirá ningún resultado, así que verifiquels -al /dev/loop5*
qué aparece.Haz lo que necesites, como
sudo gparted /dev/loop5
En este punto debería poder operar correctamente
/dev/loop5p*
.sudo partx --delete /dev/loop5
Libere las asignaciones de particiones.
sudo losetup --detach /dev/loop5
Finalmente, suelte el dispositivo de bucle.
PDSi es el Proud Owner™ de util-linux
un paquete con la versión v2.21 o superior, puede solicitar tanto la conexión del dispositivo de bucle como una nueva exploración de la partición de una sola vez: sudo losetup --find --show --partscan ./somedrive.img
y no debería encontrar ningún problema con las utilidades tipo gparted.