GNU/Linux >> Znalost Linux >  >> Linux

Linux BTRFS - převod na single s neúspěšným diskem

Dobře, přišel jsem na to pomocí tohoto odkazu Trello. Pro případ, že by to chtěl udělat někdo jiný, zde je postup.

Postup

Z pole RAID1 dvou disků, jeden /dev/sda který je vadný a další /dev/sdc známý-dobrý:

  1. Zakažte automatické připojování tohoto pole v /etc/fstab , restartujte . V zásadě chceme, aby btrfs zapomnělo, že toto pole existuje, protože existuje chyba, kdy se bude stále snažit použít jeden z disků, pokud bude odpojen.
  2. Nyní, když je vaše pole odpojeno, spusťte:

    echo 1 | sudo tee /sys/block/sda/device/delete

    nahrazující sda s vadným názvem zařízení. To způsobí, že se disk roztočí (měli byste si to ověřit v dmesg) a stane se nepřístupným pro jádro.

    Alternativně :Před spuštěním vyjměte disk z počítače! Rozhodl jsem se nezvolit tuto metodu, protože výše uvedená metoda pro mě funguje dobře.

  3. Připojte pole pomocí -o degraded režimu.
  4. Začněte operaci opětovného vyvažování s sudo btrfs balance start -f -mconvert=single -dconvert=single /mountpoint . Tím dojde k reorganizaci oblastí na disku, o kterém se ví, že je dobrý, a převede je na single (bez RAID). Toto bude trvat téměř den, v závislosti na rychlosti vašeho disku a velikosti vašeho pole. (Ten můj měl ~700 GiB a vyvažován rychlostí 1 1GiB za minutu) Naštěstí lze tuto operaci pozastavit a pole zůstane online, dokud k ní dojde.
  5. Jakmile to provedete, můžete vydat sudo btrfs device remove missing /mountpoint k odstranění „chybějícího“ vadného zařízení.
  6. Začněte druhou rebalanci s sudo btrfs balance start -mconvert=dup /mountpoint obnovit redundanci metadat. V mém systému to trvá několik minut.
  7. Jste hotovi! Vaše pole je nyní single režimu s odstraněnou veškerou redundancí.
  8. Vyneste svůj vadný disk ven a utlučte ho kladivem.

Odstraňování problémů

  • Pomoc, btrfs se pokusil zapisovat na můj vadný disk, došlo k chybě a vynutil jej pouze pro čtení!
    • Postupovali jste podle kroku 1 a před pokračováním jste restartovali? Je pravděpodobné, že btrfs si stále myslí, že disk, který jste roztočili, je přítomen. Restartování způsobí, že btrfs zapomene na všechny chyby a umožní vám pokračovat.

Děkuji za příspěvek. Měl jsem nápad, že bych mohl vyzkoušet raid, vytáhnout disk z mé hotswap pozice, použít jiný disk a pak zasunout raid disk zpět. Zpětně to byl špatný nápad a teď potřebuji svou hotswap pozici.

Zde je to, co jsem našel. Jako root:

# sudo btrfs fi show
Label: 'disk'  uuid: 12817aeb-d303-4815-8bba-a3440e36c62c
Total devices 2 FS bytes used 803.10GiB
    devid    1 size 931.51GiB used 805.03GiB path /dev/sda1
    devid    2 size 931.51GiB used 805.03GiB path /dev/sdb1

Poznamenejte si rozdělení uvedené pro každý disk. Man for brtrfs balance mě přivedl k možnosti devid, párkrát se pokusil zjistit, jak filtry fungují (zpočátku zkoušel devid=/dev/sdb1). Takže váš první pokus bude vypadat nějak takto.

# btrfs balance start -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt

Což mi způsobilo chybu.

ERROR: error during balancing '/media/.media': Invalid argument
There may be more info in syslog - try dmesg | tail    

Zde je chyba z dmesg:

BTRFS error (device sdb1): balance will reduce metadata integrity, use force if you want this

Takže toto je finále, které se povedlo:

# btrfs balance start -f -dconvert=single,devid=2 -mconvert=single,devid=2 /mnt

Snad to pomůže někomu dalšímu.


Linux
  1. Rozdělte disk na Linuxu pomocí GNU Parted

  2. Převádějte zvukové soubory pomocí tohoto všestranného příkazu Linux

  3. Jak aktualizovat Kali Linux jediným příkazem

  1. Přepsat pevný disk nulami v systému Linux:Rychlé a snadné!

  2. Swapon se nezdařil:Neplatný argument v systému Linux se souborovým systémem Btrfs

  3. Dual boot Windows + Linux se šifrováním

  1. Převádějte zvuk v dávkách na Linuxu pomocí SoundConverter

  2. Chraňte externí úložiště pomocí tohoto šifrovacího systému Linux

  3. Obnovte svůj systém pomocí režimu jednoho uživatele v Linux Mint / Linux Mint 12