Eu tenho um arquivo bootrom (arquivo binário) que eu copio em um drive USB (para inicializar um alvo) usando o Linux cp (eu também tentei com o dd). O arquivo é copiado para a primeira partição formatada com FAT16 (requisito de bootrom):
Device Boot Start End Blocks Id System /dev/sdc1 * 63 3037859 1518898+ 6 FAT16 /dev/sdc2 3037860 30361589 13661865 c W95 FAT32 (LBA)
Quando eu tento inicializar o alvo, o bootrom está carregando (eu sei disso porque há alguns caracteres impressos durante essa fase), mas ele simplesmente trava. Esse problema não ocorre se eu copiar o arquivo de um host do Windows. O conteúdo do arquivo não muda, quer eu o copie do Linux ou do Windows, é exatamente o mesmo. Eu observei que isso também ocorre se eu renomear um arquivo de trabalho na unidade USB.
Eu não acho que isso seja um problema em relação à minha instalação do Linux, porque eu também tentei isso em um host Linux diferente.
Eu apreciarei qualquer ideia que alguém possa ter. Se você precisar de mais detalhes, por favor, sinta-se à vontade para perguntar nos comentários!
Host OS: Linux Mint 17.3 Cinnamon 64-bit Kernel : 3.19.0-32-generic
EDIT : Eu encontrei uma maneira de fazer isso funcionar usando mcopy
.
Eu adicionei a seguinte linha em /etc/mtools.conf:
drive u: file="/dev/sdc1"
No entanto, quando tento fazer o seguinte:
$ mcopy bootrom.bin u:bootrom.sys # for some reasons I get the following error: Can't open /dev/sdc1: Permission denied Cannot initialize 'U:' Bad target u:bootrom.sys # with sudo: $ sudo mcopy bootrom.bin u:bootrom.sys Cannot initialize 'U:' Bad target u:bootrom.sys
Então, continuei com a seguinte solução alternativa que parece funcionar:
$ copy bootrom <mount_point>/file $ cd $ mcopy file bootrom.sys
Tags files linux filesystems file-copy