Linux, como conhecer o disco de inicialização atual

4

Eu tenho uma máquina Linux Centos (5.0) com 2 discos. Eu estava mudando o cabo SATA para um dos discos quando percebi que, dependendo do slot SATA que estou usando, o sistema operacional inicia a partir de sda ou sdb.

O problema é que eu tenho backups diários de sda para sdb (meramente cópias), se por acaso alguém mudar o cabo SATA, eu vou estragar e sobrescrever novos dados com dados antigos.

A única coisa que sei é que o disco de inicialização atual é o bom. Como posso saber com certeza qual disco é o disco de inicialização atual (sda ou sdb)?

Informações adicionais: não tenho acesso físico à máquina.

    
por LoThaR 28.08.2012 / 18:24

5 respostas

1

Primeiro, use UUIDs de disco como o @grawity disse.

Se você quiser conhecer os UUIDs de tudo que se parece com um dispositivo de bloco para o Linux, use o comando blkid . Eu acho que você pode fazer algo como blkid /dev/sda para descobrir o UUID de sda também.

Outra coisa que você pode fazer é usar os links simbólicos em /dev/disk/by-id que são criados para cada disco baseado no barramento ao qual ele está conectado e seu modelo e número de série relatados.

Tecnicamente, o Linux não sabe ou não se importa com o dispositivo do qual foi carregado, porque

  • essa é a tarefa do bootloader - que é executada antes de o kernel estar em execução - para carregar o kernel na memória.
  • qualquer coisa que não esteja no kernel necessário na inicialização está no initramfs (initrd), como drivers, utilitários do início do userland - carregar esse também é o trabalho do bootloader.

Agora, depois que o Linux é carregado, scripts de inicialização ou qualquer outro mecanismo executado sob o kernel tenta montar um sistema de arquivos raiz para que você tenha outras coisas além do kernel, além de swap, etc. Basicamente todas as coisas em seu %código%. É com isso que você realmente se importa e esse arquivo terá as informações necessárias. Você pode usar UUIDs em /etc/fstab (e acredito que a maioria das distribuições já os usa) - então, com um par de /etc/fstab e grep , você pode tirar UUIDs daqui que quiser.

Exemplo (isso provavelmente pode ser feito melhor): cut

E você pode usar a saída disso para cat /etc/fstab | grep "/ " | cut -f 1 -d " " para encontrar o UUID do seu sistema de arquivos raiz ou qualquer outra partição.

    
por 21.03.2015 / 18:17
0
awk '$2 == "/"' /proc/self/mounts
    
por 28.08.2012 / 18:58
0

Eu também gostaria de sugerir o uso de UUIDs, mas, além disso, se você não estiver usando LVM ou RAID ou qualquer outra coisa que obscureça o dispositivo de bloco subjacente usando "df", irá expor qual unidade está montada. (Mesmo se você estiver usando LVM ou RAID, você provavelmente terá uma partição / boot que pode lhe dizer isso).

Alternativamente, "hdparm -a / dev / sdX" informará o modelo E o número de SERIAL da unidade, para que você possa executar este comando e o grep para descobrir qual disco rígido é qual.

    
por 27.10.2015 / 23:52
0

Corri para isso e encontrei  %código% retorna o nó do dispositivo do que estiver montado em mount | head -n 1 | cut -d " " -f 1 (assumindo que / é sempre o primeiro da lista)

    
por 24.08.2016 / 20:04
-1

sudo fdisk -l conclui e funciona mesmo se você estiver conectado remotamente. A partição de inicialização terá um asterisco ao lado dela.

    
por 28.08.2012 / 18:32

Tags