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 fdisk
para agregar una nueva partición para el nuevo sistema de archivos (que finalmente debería ser FAT32), comenzando en el sector 2048
y usando todos los sectores restantes.
losetup /dev/loop1 mountedImage.img
mkfs -t vfat /dev/loop1
Pero aquí estoy golpeando problemas. Si configuro un loop
dispositivo 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
mkfs
llamada. 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.loop
es 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
loop
módulo, asegúrese de pasar unamax_part
opció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.conf
a un archivo/etc/modprobe.d
si ese directorio existe en su sistema:Si
modprobe -r loop
falla porque "El bucle del módulo está integrado", deberá agregarloloop.max_part=31
a la línea de comando del núcleo y reiniciar. Si su gestor de arranque es Grub2, agréguelo al valor deGRUB_CMDLINE_LINUX
inetc/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=31
línea de comando del kernelloop.maxpart=31
oloop.max_part=31
en la línea de comando del núcleo?losetup /dev/loop0 file -o 1048576 --sizelimit limit
La compensación especificada debe estar en bytes (1048576 = 2048 sectores * 512 bytes por sector).
mount -o loop,offset=1048576,sizelimit=limit
Para 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/loopXpY
por partición.Ventaja: ejecutable preinstalado en muchas distribuciones (paquete util-linux).
Desventaja: opción bastante reciente, no presente en Ubuntu 14.04.
losetup -P
automatizaciónUso:
Fuente:
kpartx
Salida:
donde
loop0p1
está la primera partición, entonces podemos hacer:Ventaja de este método: funciona en Ubuntu 14.04 sin reiniciar.
fuente