Qual seria uma boa maneira de saber quando um computador Linux foi instalado?
Qualquer solução que eu possa pensar seria baseada em stat -c %y
, por exemplo.
stat --format %y /etc/os-release /etc/skel
2022-04-06 12:00:18.402055811 +0200
2022-04-06 12:00:19.895055839 +0200
Mas usar o horário de modificação tem deficiências óbvias, e a data de nascimento pode não ser suportada.
Acho que o mais próximo que você pode chegar (ou, mais precisamente, o melhor que você pode esperar) é o registro de data e hora da criação do próprio sistema de arquivos raiz, supondo que o sistema de arquivos foi criado durante a instalação (e o relógio foi ajustado corretamente quando foi criado).
Assim, se no Ext4:
Se em btrfs:
Se no zfs:
Em sistemas de arquivos que não armazenam um registro de data e hora de criação separadamente, o horário de criação (“nascimento”) do inode raiz pode ser substituído:
(ou qualquer outro ponto de montagem do sistema de arquivos em vez de
/
).Isso não funcionará se o sistema de arquivos foi copiado de outro lugar; em tais cenários, há arquivos no sistema que supostamente são tornados exclusivos para o sistema durante a instalação, mas isso também não é 100% confiável. Um desses arquivos é
/etc/machine-id
, então você pode olhar a data de modificação desse arquivo:mas tenha em mente que esse arquivo pode ser removido e recriado após a instalação do sistema.
Você também pode determinar limites inferiores verificando o hardware instalado (assumindo um sistema físico). Infelizmente, não há uma maneira confiável de determinar se qualquer timestamp que você encontrar em um sistema é um indicador confiável!
Se o sistema for uma máquina virtual, você poderá determinar sua data de criação observando os metadados do hipervisor.
Uma pergunta muito interessante. Não sei se é 100% possível descobrir, dependendo se um kernel pré-configurado, initrd, GRUB, sistema de arquivos, etc. é usado e qual sistema usa quais timestamps.
E @Stephen Kitt já mencionou um dos comandos mais importantes, não o incluí agora.
Talvez nem todos os comandos façam sentido sozinhos e eles devam ser usados em combinação.
Estou usando o Debian 12.x GNU/Linux aqui para esses comandos e executei todos os comandos como root.
Execute o script como root e substitua
/dev/sda2
pelo seu dispositivo/partição:Obtive a data mais antiga de: hora de criação do sistema de arquivos ext4
Crie um script de execução
system_ctrl_date
:Ainda tenho um script que lê informações de BIOS, UEFI, bootloader e hardware, mas acho que não faz sentido, porque é do fabricante.