
Antes de preguntar aquí, intenté buscar en SU/SE y Google sin éxito.Esto es lo más parecido que tengo.
Básicamente, intento hacer lo siguiente:
- crear una imagen de disco de aproximadamente 128 MB;
- crear un GPT;
- crear una partición FAT32 en los primeros 32 MB (la llamaré UEFI);
- crear una partición FAT32 en los bytes restantes (la llamaré SISTEMA);
- cree el siguiente subdirectorio en la partición UEFI: /EFI/BOOT/;
- copiar un archivo en el subdirectorio;
- copiar otro archivo en la partición del SISTEMA.
Esto es lo que he hecho hasta ahora:
dd if=/dev/zero of=disk.img bs=1M recuento=128
disk.img separado
(partido) mktable gpt
(partido) mkpart primario fat32 2048s 65535s
(partido) mkpart primario fat32 65536s 100%
(partido) align-check óptimo 1
(partido) align-check óptimo 2
(partido) nombre 1 UEFI
(partido ) ) nombre 2 SISTEMA
Esta es mi salida:
Disco disk.img: 134MB Tamaño del sector (lógico/físico): 512B/512B Tabla de particiones: gpt Banderas de disco: Número Inicio Fin Tamaño Sistema de archivos Nombre Banderas 1 1049kB 33,6MB 32,5MB datos msft UEFI 2 33,6MB 134MB 101MB SISTEMA msftdata
La forma alternativa es crear dos particiones diferentes y luego fusionarlas:
dd if=/dev/zero of=uefi.img bs=1M recuento=32 mformat -i uefi.img -v UEFI -f 1440 -c 1 :: mmd -i uefi.img ::/EFI mmd -i uefi.img ::/EFI/BOOT mcopy -i uefi.img BOOTX64.EFI ::/EFI/BOOT
dd if=/dev/zero of=system.img bs=1M recuento=100 mformat -i system.img -v UEFI -f 1440 -c 1 :: mcopy -i system.img myawesomeOS ::
De la forma anterior no puedo entender por qué la columna "Sistema de archivos" está vacía (debería decir fat32) y cómo crear subdirectorios y copiar archivos.
De esta última manera no puedo crear un sistema de archivos FAT32 adecuado para las dos imágenes, si agrego -F a mformat obtengo
Muy pocos racimos para este tamaño de grasa. Elija un archivo fat de 16 bits en su archivo /etc/mtools.conf o .mtoolsrc
Si logro hacerlo, todavía no sé cómo configurar el GPT y fusionar las dos imágenes en un solo archivo.
¿Cómo puedo conseguir esto? Se agradece cualquier ayuda o sugerencia.
Respuesta1
Después de luchar durante un par de horas, lo resolví yo solo. Publicaré la solución aquí, por si acaso:
# Crea una imagen de disco vacía de 256 MB, crea su GPT y luego crea # dos particiones: la primera de aproximadamente 60 MB, la segunda se llena # los bytes restantes. Ambas particiones están alineadas. dd if=/dev/zero of=disk.img bs=1M recuento=256 disco partido.img gpt mktable mkpart primario fat32 2048s 131071s mkpart grasa primaria32 131072s 100% alinear-comprobar óptimo 1 alinear-comprobar óptimo 2 nombre 1 UEFI nombre 2 SISTEMA abandonar # Crea una imagen de disco vacía de 33 MB. dd if=/dev/zero of=uefi.img bs=1M recuento=33 # Formatea la imagen del disco como FAT32 mkfs.vfat uefi.img -F 32 # Crea los subdirectorios solicitados. mmd -i uefi.img ::/EFI mmd -i uefi.img ::/EFI/BOOT # Copia el archivo de arranque. mcopy -i uefi.img BOOTX64.EFI ::/EFI/BOOT # Crea una imagen de disco vacía de 100 MB. dd if=/dev/zero of=system.img bs=1M recuento=100 # Formatea la imagen del disco como FAT32 mkfs.vfat system.img -F 32 # Copia el archivo del sistema operativo. mcopy -i sistema.img SISTEMA.EFI :: # Habilita el módulo del kernel solicitado por kpartx, por si acaso. sudo modprobe dm-mod # Asigna y monta las dos particiones en disk.img en /dev/mapper/loop0p1 y # /dev/mapper/loop0p2 sudo kpartx -av disk.img # Copia la partición UEFI en la imagen del disco. sudo dd if=uefi.img of=/dev/mapper/loop0p1 bs=1M # Copia la partición del SISTEMA en la imagen del disco. sudo dd if=system.img of=/dev/mapper/loop0p2 bs=1M # Desmonta las dos particiones sudo kpartx -dv disk.img