Como eu faço uma gravação bruta em um cd com dd?

3

Como faço uma gravação bruta em minha unidade de CD /dev/scd0 ? Eu quero escrever um bootloader (que leva dois setores) diretamente para um CD, isso é possível?

    
por Ajtgarber 05.09.2011 / 23:21

2 respostas

4

Como os CDs não são dispositivos de bloco tradicionais, escrever via dd provavelmente não resultará em um CD utilizável. Se você quiser gravar uma imagem em um CD, use a ferramenta wodim (o que costumava ser conhecido como cdrecord ).

wodim dev=/dev/cdrom file.iso

Como alternativa, você pode usar o aplicativo gráfico Brasero Disc Burner incluído na instalação padrão do Ubuntu.

Note também que um processo diferente é usado para inicializar um CD comparado com a inicialização de um dispositivo de bloco como um disco rígido. Em vez de apenas executar código encontrado nos primeiros setores da imagem, ele faz uso de um processo chamado de El Torito Especificação de CD inicializável . Na verdade, há uma tabela na imagem do CD que diz onde encontrar loaders de boot para uma ou mais arquiteturas de CPU. O carregador de boot existe diretamente no próprio CD ou dentro de uma imagem de disquete. No último caso, o BIOS emula uma unidade de disquete apoiada por essa imagem e inicializa normalmente a partir dali.

Se você quiser inicializar o Linux a partir do CD, sugiro usar o carregador de boot ISOLINUX . Uma cópia do carregador de boot pode ser encontrada no pacote syslinux .

Se você quiser usar outro código de inicialização personalizado, o modo de emulação de disquete pode ser uma opção mais fácil.

    
por James Henstridge 06.09.2011 / 06:15
2

Eu vejo algumas falhas com sua abordagem ...

Em primeiro lugar, é geralmente impossível escrever setores arbitrários em um CD-ROM - ao contrário dos discos rígidos, a mídia ótica não suporta gravações aleatórias. Pense em discos CD-R, sessões de abertura / fechamento e outras coisas.

Em segundo lugar, o procedimento de inicializar a partir de um CD é bem diferente da inicialização de um HD - em alguns casos os cdroms inicializáveis usam uma imagem de um disquete ou emulam um disco rígido, etc. Veja El Torito para mais detalhes

Então, para criar um CD inicializável, eu imagino que você precisa preparar uma imagem ISO inicializável usando ISOLINUX ou algum outro carregador de inicialização. A gravação dessa ISO em um CD-ROM usando algum programa padrão, como o Brasero ou o K3b, produziria um disco inicializável.

    
por Sergey 06.09.2011 / 06:17