Recentemente ho ripreso un piccolo progetto OS-from-scratch-in-Assembly che ho avviato diversi mesi fa su Lion. Parte del progetto prevede la compilazione di un file binario con NASM (quello pre-incluso), quindi la creazione di un'immagine del disco basata su quel file binario. Il punto importante viene dal fatto che il binario viene scritto nel primo settore dell'immagine per essere avviabile da un altro hardware (il file binario è compilato con un FAT16 BPB), che collaudo con VirtualBox.
Purtroppo, ogni volta che compilo e cerco di montare l'immagine in Mountain Lion, ottengo una finestra di dialogo che dice " Non è stato possibile aprire il seguente disco: boot.img - nessun file system montabile ". Ho pensato che fosse una stranezza nel mio codice, quindi ho creato un'immagine disco FAT16 vuota con Utility Disco, quindi ho confrontato il mio disco con quello creato in un editor esadecimale, quindi ho modificato il mio codice di conseguenza. Sfortunatamente, mentre ha è riuscito a montare in seguito, il mio codice non funzionava più dopo aver apportato tali modifiche.
Quindi, sapendo che sono riuscito a compilare il codice con successo (e non l'ho ancora toccato da poco), sono entrato in Time Machine e ho tirato fuori la mia vecchia directory di lavoro. Ho testato l'immagine in VirtualBox e funziona. Tuttavia, ottengo lo stesso errore di montaggio . Ho trovato questo molto particolare, quindi ho copiato l'immagine del disco in un'unità fisica, l'ho collegata a una vecchia scatola Ubuntu e, di fatto, l'ho montata. Ho persino inviato l'immagine del disco a un amico (che sta ancora utilizzando l'ultima versione di Lion) e è riuscito a montare l'immagine del disco .
TL; DR : perché un'immagine del disco FAT16 devo montarla correttamente in Lion, ma non in Mountain Lion? Ho provato a montare provando open boot.img
, hdid boot.img
, mount boot.img some_folder
e mount -t msdos boot.img some_folder
, nessuna delle quali ha funzionato. Ho allegato l'immagine del disco in questione tramite Droplr .