Necesito crear un sistema de archivos con solo una partición de la nada ( /dev/zero). Intenté esta secuencia de comandos:
dd if=/dev/zero of=mountedImage.img bs=512 count=131072
fdisk mountedImage.img
n
p
2048
131072
Básicamente, necesito crear un archivo de imagen de 64 MB lleno de ceros. Luego uso fdiskpara agregar una nueva partición para el nuevo sistema de archivos (que finalmente debería ser FAT32), comenzando en el sector 2048y usando todos los sectores restantes.
losetup /dev/loop1 mountedImage.img
mkfs -t vfat /dev/loop1
Pero aquí estoy golpeando problemas. Si configuro un loopdispositivo y lo formateo usando mkfs -t vfat, la tabla de particiones se sobrescribe y el sistema de archivos (FAT32) se coloca en el disco. No necesito un disco completo formateado con FAT32, solo necesito que mi partición primaria sea así.
¿Alguien sabe cómo puedo formatear solo una partición de la imagen de disco sin formato, no la imagen completa?
fuente

mkfsllamada. Tuve que leer tu publicación 3 veces para entender tu problema. Si bien no puedo ayudarte, estoy interesado en por qué creas un archivo de imagen (!) Pero aún así quiero dejar los primeros n "sectores" sin usar.loopes un módulo o está integrado en el núcleo), por lo que creo que es útil que cada sitio tenga su versión de la pregunta y voté para volver a abrirla.Respuestas:
Si está en Linux, al cargar el
loopmódulo, asegúrese de pasar unamax_partopción al módulo para que los dispositivos de bucle sean particionables.Verifique el valor actual:
Si es 0:
Para que esta configuración sea persistente, agregue la siguiente línea
/etc/modprobe.confa un archivo/etc/modprobe.dsi ese directorio existe en su sistema:Si
modprobe -r loopfalla porque "El bucle del módulo está integrado", deberá agregarloloop.max_part=31a la línea de comando del núcleo y reiniciar. Si su gestor de arranque es Grub2, agréguelo al valor deGRUB_CMDLINE_LINUXinetc/default/grub.Ahora, puede crear un dispositivo de bucle particionable:
(tenga en cuenta que necesita una versión relativamente reciente de Linux).
fuente
loop.max_part=31línea de comando del kernelloop.maxpart=31oloop.max_part=31en la línea de comando del núcleo?losetup /dev/loop0 file -o 1048576 --sizelimit limitLa compensación especificada debe estar en bytes (1048576 = 2048 sectores * 512 bytes por sector).
mount -o loop,offset=1048576,sizelimit=limitPara obtener más información, consulte losetup y mount .
fuente
Los siguientes procedimientos le permiten montar las particiones de la imagen para modificarlas.
opción losetup 2.21 -P
Crea uno
/dev/loopXpYpor partición.Ventaja: ejecutable preinstalado en muchas distribuciones (paquete util-linux).
Desventaja: opción bastante reciente, no presente en Ubuntu 14.04.
losetup -PautomatizaciónUso:
Fuente:
kpartx
Salida:
donde
loop0p1está la primera partición, entonces podemos hacer:Ventaja de este método: funciona en Ubuntu 14.04 sin reiniciar.
fuente