Um pouco de fundo:
Estou planejando fazer algumas experiências com computadores sem disco e inicialização pela rede.
O problema que encontrei é que, se eu tiver quatro máquinas que inicializam a partir da mesma imagem, preciso de uma maneira de identificar que essa máquina é app-1 , não app-4 .
Então, depois de pensar onde eu poderia armazenar esse tipo de informação em uma máquina sem disco, percebi que o Windows está armazenando seu CD-KEY no BIOS e os OEMs estão armazenando alguns dados personalizados lá também.
Então, meu objetivo seria armazenar uma string simples dentro da memória do BIOS. Eu sei que posso recuperar isso no Linux usando dmidecode
, mas não encontrei nenhum dmiencode
comando.
Como posso armazenar uma string personalizada dentro do BIOS, para que eu possa recuperá-la posteriormente usando dmidecode ou alguma outra ferramenta?
Além disso, como os profissionais estão lidando com o armazenamento de dados específicos da máquina em um ambiente de servidor sem disco?
Eu sei que esta não é uma resposta direta à sua pergunta, mas isso tem todas as características de um problema XY .
A abordagem usual para isso é não armazenar nada localmente na máquina.
Se você precisar identificar os computadores de forma exclusiva, configure as reservas de DHCP para cada computador com um nome DNS e endereço IP associados. Se necessário, você pode ter um script de inicialização/inicialização na máquina para consultar o DNS por seu próprio nome e definir o nome do host interno de acordo.
Substituir uma máquina é tão simples quanto atualizar a reserva de DHCP. Não há necessidade de mexer com o BIOS/UEFI. (Exceto para configurá-lo para inicializar a partir da LAN, obviamente.)
Se seus computadores estiverem usando a Unified Extensible Firmware Interface (UEFI) , você poderá usar o que é chamado de "variáveis UEFI".
Da interface de firmware extensível unificada do Arch Linux - variáveis UEFI :
Mais informações são escassas, por exemplo, a página de manual do Ubunti efivar .
Você também pode achar interessante o artigo Sending data from UEFI to OS through UEFI variables .
Sistemas pré-UEFI podem ser capazes de armazenar um identificador persistente em seu firmware NVRAM (não em qualquer disco rígido) por meio do DMI/SMBIOS Asset Tag e Property Tag. Você pode tentar configurá-los usando o
smbios-sys-info
programa do pacote smbios-utils .No entanto, quando eu tentei isso em dois dos meus laptops (um Toshiba de 2005 e um Lenovo de 2010), em ambos os últimos mostraram um traceback de exceção, enquanto o primeiro travou com uma falha de segmentação. A única vez que me lembro de configurar essas tags com sucesso foi com um laptop Dell ainda mais antigo (de 2002, que não tenho mais); provavelmente não é surpreendente, uma vez que a biblioteca libsmbios possui direitos autorais da Dell. Faça disso o que você quiser.
O software BIOS normalmente é proprietário e depende do fabricante do hardware que você está usando e se eles lançaram uma ferramenta.
É improvável que você consiga criar uma nova propriedade, no entanto, é possível que você consiga reutilizar uma propriedade existente e definir seu próprio valor.
Por exemplo, a Lenovo tem uma ferramenta que permite definir novos valores para o tipo de máquina, número de série e ID da marca do sistema.