AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 561745
Accepted
Christian Eriksson
Christian Eriksson
Asked: 2020-01-13 10:43:35 +0800 CST2020-01-13 10:43:35 +0800 CST 2020-01-13 10:43:35 +0800 CST

Quais são as partições md em uma matriz mdadm?

  • 772

Estou configurando duas matrizes RAID 1 usando mdadm, parece estar funcionando bem, mas quando faço um check-in lsblk, vejo o seguinte:

sda                      8:0    0   5,5T  0 disk  
└─md127                  9:127  0   5,5T  0 raid1 
  ├─data-crypt-1       253:5    0   5,5T  0 crypt 
  │ └─myVg-data        253:6    0   5,5T  0 lvm   
  ├─md127p1            259:5    0 182,4G  0 md    
  └─md127p2            259:6    0   1,2T  0 md    
sdb                      8:16   0   5,5T  0 disk  
└─md127                  9:127  0   5,5T  0 raid1 
  ├─data-crypt-1       253:5    0   5,5T  0 crypt 
  │ └─myVg-data        253:6    0   5,5T  0 lvm   
  ├─md127p1            259:5    0 182,4G  0 md    
  └─md127p2            259:6    0   1,2T  0 md    
sdc                      8:32   0   5,5T  0 disk  
└─md126                  9:126  0   5,5T  0 raid1 
sdd                      8:48   0   5,5T  0 disk  
└─md126                  9:126  0   5,5T  0 raid1 

Quais são essas partições (?) md127p1e md127p2no meu array? Devo removê-los e, em caso afirmativo, como?

Não parece interferir no array, parece estar ressincronizando conforme o esperado. Mas eu me preocupo que, por exemplo, se alguém montasse dizer md127p1e escrevesse algo nele, isso corromperia os dados data-crypt-1(que abrange toda a unidade).

EDITAR:

O problema (se for um problema) persiste após a reinicialização e remontagem.

sudo wipefs --no-act /dev/md127
# DEVICE OFFSET TYPE        UUID                                 LABEL
# md127  0x0    crypto_LUKS ba3eab9b-db06-4053-9eb8-4e674931148c 

dmesgrelatam um comportamento ligeiramente diferente entre md126e md127. Não tenho certeza de como inspecionar a "reconstrução do plano de fundo".

dmesg | grep "md12[67]"
# [    3.072445] md/raid1:md127: not clean -- starting background reconstruction
# [    3.072445] md/raid1:md127: active with 2 out of 2 mirrors
# [    3.107577] md127: detected capacity change from 0 to 6001039835136
# [    3.112944]  md127: AHDI p1 p2 p3
# [    4.072578] md/raid1:md126: active with 2 out of 2 mirrors
# [    4.105528] md126: detected capacity change from 0 to 6001039835136
# [  175.221344]  md127: AHDI p1 p2 p3
# [  252.627169]  md127: AHDI p1 p2 p3
# [  337.950292]  md127: AHDI p1 p2 p3

e udevadmrelatórios da seguinte forma:

udevadm info /dev/md127p1
# P: /devices/virtual/block/md127/md127p1
# N: md127p1
# L: 100
# S: disk/by-id/md-name-XYZ:data-array-1-part1
# S: disk/by-id/md-uuid-94gd622:d96sf22:9fb73768:dae5367e-part1
# S: md/XYZ:data-array-1p1
# E: DEVLINKS=/dev/md/XYZ:data-array-1p1 /dev/disk/by-id/md-name-XYZ:data-array-1-part1 /dev/disk/by-id/md-uuid-94gd622:d96sf22:9fb73768:dae5367e-part1
# E: DEVNAME=/dev/md127p1
# E: DEVPATH=/devices/virtual/block/md127/md127p1
# E: DEVTYPE=partition
# E: MAJOR=259
# E: MD_DEVICES=2
# E: MD_DEVICE_ev_sda_DEV=/dev/sda
# E: MD_DEVICE_ev_sda_ROLE=0
# E: MD_DEVICE_ev_sdb_DEV=/dev/sdb
# E: MD_DEVICE_ev_sdb_ROLE=1
# E: MD_DEVNAME=XYZ:data-array-1
# E: MD_LEVEL=raid1
# E: MD_METADATA=1.2
# E: MD_NAME=XYZ:data-array-1
# E: MD_UUID=94gd622:d96sf22:9fb73768:dae5367e
# E: MINOR=5
# E: PARTN=1
# E: SUBSYSTEM=block
# E: SYSTEMD_WANTS=mdmonitor.service
# E: TAGS=:systemd:
# E: USEC_INITIALIZED=337999178
udevadm info /dev/md127p2
# P: /devices/virtual/block/md127/md127p2
# N: md127p2
# L: 100
# S: disk/by-id/md-name-XYZ:data-array-1-part2
# S: disk/by-id/md-uuid-94gd622:d96sf22:9fb73768:dae5367e-part2
# S: md/XYZ:data-array-1p2
# E: DEVLINKS=/dev/disk/by-id/md-name-XYZ:data-array-1-part2 /dev/disk/by-id/md-uuid-94gd622:d96sf22:9fb73768:dae5367e-part2 /dev/md/XYZ:data-array-1p2
# E: DEVNAME=/dev/md127p2
# E: DEVPATH=/devices/virtual/block/md127/md127p2
# E: DEVTYPE=partition
# E: MAJOR=259
# E: MD_DEVICES=2
# E: MD_DEVICE_ev_sda_DEV=/dev/sda
# E: MD_DEVICE_ev_sda_ROLE=0
# E: MD_DEVICE_ev_sdb_DEV=/dev/sdb
# E: MD_DEVICE_ev_sdb_ROLE=1
# E: MD_DEVNAME=XYZ:data-array-1
# E: MD_LEVEL=raid1
# E: MD_METADATA=1.2
# E: MD_NAME=XYZ:data-array-1
# E: MD_UUID=94gd622:d96sf22:9fb73768:dae5367e
# E: MINOR=6
# E: PARTN=2
# E: SUBSYSTEM=block
# E: SYSTEMD_WANTS=mdmonitor.service
# E: TAGS=:systemd:
# E: USEC_INITIALIZED=337999612

hexdumpmostra:

sudo hexdump -C -n 512 /dev/md127
# *
# *
# 000001c0  7c e8 03 4d 62 32 d5 66  37 75 6b e9 12 6d 16 cc  ||..Mb2.f7uk..m..|
# 000001d0  96 9e 6f 3d 32 e0 e7 fe  7f f4 9c a1 59 03 19 47  |..o=2.......Y..G|
# 000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
# *

Também observei que não vejo as partições "fantasmas" em algumas máquinas, em particular, não as minhas máquinas DietPi as mostram. Eles aparecem na minha máquina Ubuntu. Além disso, observei que ambos os arrays (md126 e md127) foram criados em uma das máquinas DietPi.

mdadm software-raid
  • 1 1 respostas
  • 953 Views

1 respostas

  • Voted
  1. Best Answer
    frostschutz
    2020-01-14T10:35:00+08:002020-01-14T10:35:00+08:00

    Portanto, este parece ser um caso de detecção incorreta de uma tabela de partição aleatória falsa.

    Aqui está um exemplo de uma tabela de partição Atari / AHDI (criada com parted):

    # hexdump -C -n 512 /dev/loop0 
    000001c0  00 00 00 03 20 00 01 4c  4e 58 00 00 08 00 00 00  |.... ..LNX......|
    000001d0  08 00 01 4c 4e 58 00 00  18 00 00 00 60 00 00 50  |...LNX......`..P|
    000001e0  41 52 54 45 44 41 54 41  52 49 00 50 41 52 54 45  |ARTEDATARI.PARTE|
    000001f0  44 41 54 41 52 49 00 00  00 01 00 00 00 01 fa 70  |DATARI.........p|
    

    Portanto, o bit interessante é um de GEM, BGM, LNX, SWP, RAW em linhas de deslocamento 0x1c0/0x1d0, como pode ser visto em block/partitions/atari.c#L27-L32:

    static inline int OK_id(char *s)
    {
        return  memcmp (s, "GEM", 3) == 0 || memcmp (s, "BGM", 3) == 0 ||
            memcmp (s, "LNX", 3) == 0 || memcmp (s, "SWP", 3) == 0 ||
            memcmp (s, "RAW", 3) == 0 ;
    }
    

    Aqui está um exemplo de um cabeçalho LUKS2:

    # hexdump -C -n 512 /dev/loop1
    00000000  4c 55 4b 53 ba be 00 02  00 00 00 00 00 00 40 00  |LUKS..........@.|
    00000010  00 00 00 00 00 00 00 03  00 00 00 00 00 00 00 00  |................|
    00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    00000040  00 00 00 00 00 00 00 00  73 68 61 32 35 36 00 00  |........sha256..|
    00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    00000060  00 00 00 00 00 00 00 00  a4 43 6c 13 63 6b 33 da  |.........Cl.ck3.|
    00000070  c8 f5 1d 7d 82 b3 9e dc  15 b2 ff 55 d2 4c 3e 8c  |...}.......U.L>.|
    00000080  62 08 ec 0f 56 b2 bc 89  86 f0 e8 c0 e6 a2 d8 12  |b...V...........|
    00000090  56 93 68 2f 83 82 e6 90  18 57 7b 23 34 d7 96 92  |V.h/.....W{#4...|
    000000a0  ab ad 67 a5 d9 7d dd 6c  32 36 37 36 35 63 39 32  |..g..}.l26765c92|
    000000b0  2d 34 34 37 34 2d 34 36  37 64 2d 62 39 62 62 2d  |-4474-467d-b9bb-|
    000000c0  64 36 30 36 63 61 64 31  32 61 62 64 00 00 00 00  |d606cad12abd....|
    000000d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    000001c0  55 85 e9 50 c2 46 1e 16  27 a7 ce a5 9d e9 46 17  |U..P.F..'.....F.|
    000001d0  fb 30 9a ae 53 74 39 8a  c5 2c d2 21 4b 86 ad 20  |.0..St9..,.!K.. |
    000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    00000200
    

    Portanto, há dados aleatórios nas mesmas linhas 0x1c0 / 0x1d0.

    Meu palpite é que você rolou aleatoriamente um GEM, BGM, LNX, SWP, RAW lá, então parece uma tabela de partição para o kernel e, portanto, você detectou suas partições estranhas.

    A boa notícia é que, para o cabeçalho LUKS2, esse deslocamento parece representar a soma de verificação do cabeçalho. Ele muda completamente toda vez que você altera alguma coisa no cabeçalho do LUKS2, então... você pode, por exemplo, apenas adicionar outra senha. (e remova-o se você realmente não precisar dele).

    # cryptsetup luksAddKey /dev/loop1
    Enter any existing passphrase: 
    Enter new passphrase for key slot: 
    Verify passphrase: 
    

    Mesmo cabeçalho LUKS2 após a execução cryptsetup luksAddKey:

    # hexdump -C -n 512 /dev/loop1
    00000000  4c 55 4b 53 ba be 00 02  00 00 00 00 00 00 40 00  |LUKS..........@.|
    00000010  00 00 00 00 00 00 00 05  00 00 00 00 00 00 00 00  |................|
    00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    00000040  00 00 00 00 00 00 00 00  73 68 61 32 35 36 00 00  |........sha256..|
    00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    00000060  00 00 00 00 00 00 00 00  a4 43 6c 13 63 6b 33 da  |.........Cl.ck3.|
    00000070  c8 f5 1d 7d 82 b3 9e dc  15 b2 ff 55 d2 4c 3e 8c  |...}.......U.L>.|
    00000080  62 08 ec 0f 56 b2 bc 89  86 f0 e8 c0 e6 a2 d8 12  |b...V...........|
    00000090  56 93 68 2f 83 82 e6 90  18 57 7b 23 34 d7 96 92  |V.h/.....W{#4...|
    000000a0  ab ad 67 a5 d9 7d dd 6c  32 36 37 36 35 63 39 32  |..g..}.l26765c92|
    000000b0  2d 34 34 37 34 2d 34 36  37 64 2d 62 39 62 62 2d  |-4474-467d-b9bb-|
    000000c0  64 36 30 36 63 61 64 31  32 61 62 64 00 00 00 00  |d606cad12abd....|
    000000d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    000001c0  2a 11 50 fd 0b 8a 05 b6  67 1a e5 2f 2b a7 de d5  |*.P.....g../+...|
    000001d0  2c b3 17 7c a5 21 b5 a1  5a f3 86 5c 96 9e 16 c0  |,..|.!..Z..\....|
    000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    *
    00000200
    

    Como você pode ver os dados nas linhas 0x1c0/0x1d0 mudaram completamente de antes, então, com alguma sorte, sua tabela de partição falsa também desaparecerá (depois de reler as tabelas de partição). Ao mesmo tempo, é algo que vale a pena observar, pois qualquer alteração futura no cabeçalho pode trazê-lo de volta ...


    Suponho que você esteja usando o LUKS2 porque o antigo cabeçalho LUKS1 não armazena dados aleatórios nesse deslocamento e luksFormattambém zera assim:

    000001c0  00 00 de ad 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  
    

    Portanto, esse problema nem deveria estar ocorrendo com o antigo formato de cabeçalho LUKS1.

    • 2

relate perguntas

  • Fazer backup da configuração do array mdadm existente

  • MDADM - adicionando um disco ao RAID5 com um pouco menos de setores

  • Como corrigir mdadm: matrizes RAID1 inativas, após desconectar uma das unidades em ambos os casos?

  • script bash para executar um comando, quando a reconstrução do RAID for concluída

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve