Localiza o nome do kernel para uma partição quando apenas o rótulo é conhecido

2

Condição: encontre com segurança o nome do dispositivo em que o rótulo do disco ( MasiWeek ) e o tamanho do disco ( 2 TB ) são conhecidos. Motivation: tentando determinar o que o botão GUI do Ubuntu mount faz | Características do sistema

  • Rótulo do disco é o nome do disco fornecido pelo usuário. Está listado em /media/masi/ se montado corretamente.

  • Comando lsblk -no name,label,partlabel

    sda                    
    ├─sda1                 
    ├─sda2                 
    └─sda3                 
    sdb                    
    └─sdb1 MasiWeek 
    
  • Eu sei que o rótulo do disco é MasiWeek e seu tamanho é 2 TB, visível no comando como 1.8T. Eu quero encontrar um disco de tal forma confiável que eu possa fazer o seguinte, onde eu preciso da informação para a variável $label

    # https://askubuntu.com/a/593375/25388
    partition=$(basename $(readlink $label))
    sudo mkdir /media/$USER/$label
    sudo mount /dev/$partition /media/$USER/$label
    

Sistema: Linux Ubuntu 16.04 64 bit
Relacionados: Qual é o comando equivalente para a GUI do Ubuntu “Mount”?

    
por Léo Léopold Hertz 준영 21.07.2016 / 18:07

2 respostas

1
  1. use a opção mount do -L ou especifique o dispositivo de montagem com LABEL=name .

    por exemplo.

    mount LABEL=MasiWeek /media/masi/MasiWeek

    ou

    mount -L MasiWeek /media/masi/MasiWeek

    mount também tem uma opção -U e entende UUID=uuid se você preferir usar o UUID do dispositivo de bloco.

  2. A maneira mais fácil de obter uma lista de todos os dispositivos de bloco, junto com os detalhes LABEL e / ou UUID (se houver) é usar blkid . por exemplo,

    # blkid
    /dev/sda1: LABEL="kaliboot" UUID="c0182339-da69-4f30-b131-c2fdb778f6b0" TYPE="ext3" PARTUUID="6fb80985-01"
    /dev/sda2: UUID="4c367cee-8bed-41d5-b466-38c7f3a03330" TYPE="swap" PARTUUID="6fb80985-02"
    /dev/sda3: LABEL="kaliroot" UUID="6bb6d228-0581-49ae-9d49-dd148c273ecc" TYPE="xfs" PARTUUID="6fb80985-03"
    

    Note que a partição swap tem um UUID, mas não possui um rótulo. Isso porque não me preocupei em usar a opção -L quando a criei com mkswap .

    Note também que isso pode ser lento e produzir muita saída (uma linha por dispositivo de bloco) se você tiver muitos LVs LVM ou ZFS ZVOLs (como eu faço na minha máquina principal, e é por isso que usei a saída de outro máquina) ou similar.

por 27.07.2016 / 15:20
1

Se você conhece apenas o rótulo da partição e deseja encontrar o nome do kernel correspondente:

lsblk -rno label,name | awk '$1=="LABEL"{print $2}'

exibe algo como sdb3 . Você pode então montar a partição da mesma forma que seu gerenciador de arquivos, via udisksctl :

udisksctl mount -b /dev/$(lsblk -rno label,name | awk '$1=="LABEL"{print $2}')
    
por 21.07.2016 / 19:17