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[btrfs](unix)

Martin Hope
Eugen Konkov
Asked: 2025-02-18 01:24:19 +0800 CST

É possível criar o raid1 a partir de discos de 8 TB e 4 TB+4 TB, por exemplo, stripe 4+4 + mirror 8?

  • 5

Tenho um disco de 8 TB e dois de 4 TB. Estou curioso para saber se consigo criar um raid de 8 TB a partir de discos 8+4+4?

Tentei isso sudo mkfs.btrfs -f -m raid1 -d raid1 /dev/sdc1 /dev/sdd1 /dev/cdb1, mas só cria um RAID de 4 TB.

Do meu ponto de vista, deveria ser tecnicamente possível criar uma faixa de 8 TB a partir de dois discos de 4 TB e então criar um espelho de 8 TB. Isso é possível de ser alcançado com btrfsferramentas?

btrfs
  • 2 respostas
  • 56 Views
Martin Hope
Max Power
Asked: 2025-02-08 05:43:56 +0800 CST

O BTRFS "dup" usa uma partição ou duas?

  • 5

btrfs.readthedocs.io descreve o perfil "dup" como duplicação de dados em um único "dispositivo". A descrição, em vários locais naquele site, não esclarece se eles querem dizer uma unidade física com duas partições espelhadas ou uma partição com a duplicação oculta dentro.

Algumas descrições de "dup" sugerem que se trata de um raid1 especial ajustado para funcionar em um único dispositivo com duas partições, mas outras fontes parecem pensar que ele adiciona duplicação dentro de uma única partição. (É claro que o uso real do disco será o mesmo de qualquer maneira.) Parece-me que "dup" pode ser compatível com uma única partição, mas sem duplicação real, ou duas partições podem forçar um desempenho não ideal.

Isto é para HDD giratório usado para backup, não para acesso primário ("dup", protegendo contra bitrot. Outras cópias fora do local com hashes e somas de verificação). Estou ciente de que muitos SDD podem desduplicar internamente.

Alguém sabe o comportamento do perfil "dup" com certeza? Não sou habilidoso o suficiente em ler C para vasculhar os arquivos de origem do kernel.

btrfs
  • 1 respostas
  • 21 Views
Martin Hope
Blursed
Asked: 2024-11-14 01:36:22 +0800 CST

Não é possível ler Superbloco - btrfs

  • 5
Esta pergunta foi migrada do Server Fault porque pode ser respondida no Unix & Linux Stack Exchange. Migrada há 2 dias .

Socorro! Não consigo ler o Superbloco

Estava usando meu pc (arch) normalmente com o Android Studio rodando, de repente ele foi corrompido e pediu para reiniciar o IDE, pois o sistema de arquivos se tornou somente leitura, reiniciei o pc inteiro e agora não consigo montar o sistema btrfs. Usando o kernel LTS mais recente.

Sou novato nisso, usei o btrfs porque ele está se tornando o novo padrão.

Como eu conserto isso, por favor me ajude! Até agora eu tentei:

liveuser@localhost-live:~$ sudo btrfs rescue super-recover /dev/sdb3
All supers are valid, no need to recover

liveuser@localhost-live:~$ sudo btrfs rescue zero-log /dev/sdb3
parent transid verify failed on 711704576 wanted 368940 found 368652
parent transid verify failed on 711704576 wanted 368940 found 368652
WARNING: could not setup csum tree, skipping it
parent transid verify failed on 711655424 wanted 368940 found 368652
parent transid verify failed on 711655424 wanted 368940 found 368652
ERROR: could not open ctree

liveuser@localhost-live:~$ sudo btrfs scrub start /dev/sdb3
ERROR: '/dev/sdb3' is not a mounted btrfs device

liveuser@localhost-live:~$ sudo btrfs scrub status /dev/sdb3
ERROR: '/dev/sdb3' is not a mounted btrfs device

liveuser@localhost-live:~$ sudo mount -o usebackuproot /dev/sdb3 /mnt
mount: /mnt: fsconfig system call failed: File exists.
       dmesg(1) may have more information after failed mount system call.

liveuser@localhost-live:~$ sudo btrfs check /dev/sdb3
Opening filesystem to check...
parent transid verify failed on 711704576 wanted 368940 found 368652
parent transid verify failed on 711704576 wanted 368940 found 368652
parent transid verify failed on 711704576 wanted 368940 found 368652
Ignoring transid failure
ERROR: root [7 0] level 0 does not match 2

ERROR: could not setup csum tree
ERROR: cannot open file system

Também corri resgate

liveuser@localhost-live:~$ sudo btrfs rescue chunk-recover /dev/sdb3
Scanning: DONE in dev0                        
corrupt leaf: root=1 block=713392128 slot=0, unexpected item end, have 16283 expect 0
leaf free space ret -3574, leaf data size 0, used 3574 nritems 11
leaf 713392128 items 11 free space -3574 generation 368940 owner ROOT_TREE
leaf 713392128 flags 0x1(WRITTEN) backref revision 1
fs uuid 6d8d36ba-d266-4b34-88ad-4f81c383a521
chunk uuid 52ed2048-4a76-4a75-bb75-e1a118ec8118
ERROR: leaf 713392128 slot 0 pointer invalid, offset 15844 size 439 leaf data limit 0
ERROR: skip remaining slots
corrupt leaf: root=1 block=713392128 slot=0, unexpected item end, have 16283 expect 0
leaf free space ret -3574, leaf data size 0, used 3574 nritems 11
leaf 713392128 items 11 free space -3574 generation 368940 owner ROOT_TREE
leaf 713392128 flags 0x1(WRITTEN) backref revision 1
fs uuid 6d8d36ba-d266-4b34-88ad-4f81c383a521
chunk uuid 52ed2048-4a76-4a75-bb75-e1a118ec8118
ERROR: leaf 713392128 slot 0 pointer invalid, offset 15844 size 439 leaf data limit 0
ERROR: skip remaining slots
Couldn't read tree root
open with broken chunk error

e restaurar após o resgate

liveuser@localhost-live:~$ sudo btrfs restore /dev/sdb3 /dev/sda5
parent transid verify failed on 711704576 wanted 368940 found 368652
parent transid verify failed on 711704576 wanted 368940 found 368652
parent transid verify failed on 711704576 wanted 368940 found 368652
Ignoring transid failure
ERROR: root [7 0] level 0 does not match 2

WARNING: could not setup csum tree, skipping it
parent transid verify failed on 711655424 wanted 368940 found 368652
parent transid verify failed on 711655424 wanted 368940 found 368652
parent transid verify failed on 711655424 wanted 368940 found 368652
Ignoring transid failure
ERROR: root [5 0] level 0 does not match 2

Could not open root, trying backup super
parent transid verify failed on 711704576 wanted 368940 found 368652
parent transid verify failed on 711704576 wanted 368940 found 368652
parent transid verify failed on 711704576 wanted 368940 found 368652
Ignoring transid failure
ERROR: root [7 0] level 0 does not match 2

WARNING: could not setup csum tree, skipping it
parent transid verify failed on 711655424 wanted 368940 found 368652
parent transid verify failed on 711655424 wanted 368940 found 368652
parent transid verify failed on 711655424 wanted 368940 found 368652
Ignoring transid failure
ERROR: root [5 0] level 0 does not match 2

Could not open root, trying backup super
ERROR: superblock bytenr 274877906944 is larger than device size 209715200000
Could not open root, trying backup super

O disco rígido está saudável conforme smartctl. Nenhum setor realocado, e outras partições ntfs/ext4 estão funcionando bem.

Pelo menos se for possível recuperar os dados. Obrigado!

Estou devastado por ter perdido dados que foram esforços de anos. O único backup que tenho disso tem alguns meses, então muitas mudanças eu fiz depois disso. :'(

btrfs
  • 1 respostas
  • 13 Views
Martin Hope
user447274
Asked: 2024-10-18 16:34:08 +0800 CST

O teste de compressão btrfs é executado sem gravar no disco

  • 5

Estou pensando em mudar o sistema de arquivos na minha unidade de dados de ext4 para btrfs porque o btrfs pode fazer compactação e o espaço de armazenamento acabará em algum momento.

Vi que o btrfs pode fazer compressão com zlib, lzo e zstd.

https://btrfs.readthedocs.io/en/latest/Compression.html

Como posso fazer alguns testes para ver como a compressão pode ser realizada?

Existe alguma maneira de gravar os dados em /dev/null ou algo assim e contar os bytes pelos quais eles passam lá?

Como posso fazer alguns testes com os diferentes compressores (zlib, lzo e zstd) sem escrever, mas observando o quanto pode ser comprimido?

btrfs
  • 1 respostas
  • 46 Views
Martin Hope
PetaspeedBeaver
Asked: 2024-02-12 18:30:12 +0800 CST

O que é UUID_SUB?

  • 5

A saída de blkidmostra uma postagem chamada UUID_SUB em meus volumes BTRFS. O que isso significa e onde posso encontrar mais informações?

/dev/sdc: LABEL="example" UUID="e7c116be-e3ba-4097-857b-12a1f4e9f753" UUID_SUB="b263e0c0-1714-48f1-8706-f97dec03b355" BLOCK_SIZE="4096" TYPE="btrfs"
btrfs
  • 1 respostas
  • 24 Views
Martin Hope
Aubergone
Asked: 2024-01-09 03:08:14 +0800 CST

Como posso forçar a troca a usar todo o meu arquivo de troca BTRFS?

  • 5

Criei um arquivo de troca BTRFS usando o seguinte comando:

$ btrfs filesystem mkswapfile -s 8G SwapFile

No entanto, a troca usa apenas 1 GB do arquivo de troca, conforme mostrado pela seguinte sequência de comandos:

$ du -csh SwapFile ; free
8.0G    SwapFile
8.0G    total
               total        used        free      shared  buff/cache   available
Mem:        12148108     5915736     1232604      743948     6132596     6232372
Swap:        1048572       35576     1012996

Existe alguma cota ou opção semelhante que eu possa usar para forçar o mecanismo de troca do Linux a usar todo o arquivo de troca BTRFS que criei?

btrfs
  • 1 respostas
  • 35 Views
Martin Hope
Evan Carroll
Asked: 2023-07-28 03:58:04 +0800 CST

Qual é o objetivo do `equilíbrio btrfs` em um dispositivo?

  • 5

Qual é o sentido de fazer btrfs balanceem um dispositivo?

btrfs balance start /mnt

Que benefício isso dará se /mntestiver hospedado em uma única unidade?

btrfs
  • 1 respostas
  • 25 Views
Martin Hope
hba
Asked: 2023-07-05 09:17:16 +0800 CST

Como posso fazer com que o snapper reconheça um instantâneo?

  • 6

Fundo

Estou brincando com o BTRFS em uma VM.

Segui este guia para garantir que minha /home/.snapshotpasta tenha seu próprio subvolume. Tudo parece funcionar, posso tirar instantâneos, listar instantâneos, undochangesetc.

Experimentando Enviar/Receber

Passos:

  • Use enviar/receber para enviar a id de instantâneo 1 para um subvol diferente
  • Use o snapper para excluir o id do instantâneo 1
  • Use enviar/receber para trazer o id de instantâneo 1
  • O Snapper não reconhece mais o id de instantâneo 1

Detalhes:

Enviei um instantâneo existente para um subvolume diferente (dispositivo)

sudo btrfs subvolume list -t /mnt_device3
ID      gen     top level       path
--      ---     ---------       ----
256     9       5               @backup

sudo mkdir /backup/1
sudo btrfs send /home/.snapshots/1/snapshot | sudo btrfs receive /backup/1
sudo btrfs subvolume list -t /backup                                      
ID      gen     top level       path
--      ---     ---------       ----
256     17      5               @backup
258     18      256             1/snapshot

Em seguida, usei o snapper para excluir o instantâneo:

sudo snapper -c home delete 1

sudo snapper -c home list
 # | Type   | Pre # | Date                        | User | Cleanup | Description                                      | Userdata
---+--------+-------+-----------------------------+------+---------+--------------------------------------------------+---------
0  | single |       |                             | root |         | current                                          |         
2  | single |       | Tue 04 Jul 2023 03:20:01 PM | root |         | testing send/receive after test.txt |    

Então eu usei enviar/receber novamente para colocar o instantâneo de volta

sudo mkdir /home/.snapshots/1
sudo btrfs send /backup/1/snapshot | sudo btrfs receive /home/.snapshots/1
ls /home/.snapshots 
total 0
drwxr-xr-x 1 root root  6 Jul  4 16:30 .
drwxr-xr-x 1 root root 32 Jun 29 11:36 ..
drwxr-xr-x 1 root root 16 Jul  4 16:11 1
drwxr-xr-x 1 root root 32 Jul  4 15:20 2

#an excerpt of sudo btrfs subvolume list /home
ID 311 gen 1147 top level 272 path 2/snapshot
ID 313 gen 1214 top level 272 path 1/snapshot

Mas o snapper não reconhece o snapshot 1

sudo snapper -c home list
 # | Type   | Pre # | Date                        | User | Cleanup | Description                                      | Userdata
---+--------+-------+-----------------------------+------+---------+--------------------------------------------------+---------
0  | single |       |                             | root |         | current                                          |         
2  | single |       | Tue 04 Jul 2023 03:20:01 PM | root |         | testing send/receive after test.txt |  

Portanto, não posso mais usar o snapper para fazer nada com o instantâneo 1.

Existe uma maneira de fazer com que o snapper reconheça o instantâneo importado?

btrfs
  • 1 respostas
  • 27 Views
Martin Hope
Veles
Asked: 2023-06-30 03:49:35 +0800 CST

Estender partição BTRFS LUKS

  • 5

Há alguns anos, usei este excelente guia https://www.youtube.com/watch?v=co5V2YmFVEE para criptografar meu disco Thinkpad com LUKS e usar o BTRFS como meu sistema de arquivos.

Meu SSD naquela época tinha apenas 256 GB, agora atualizei para 1 TB e usei o Clonezilla para clonar minha unidade para o novo SSD. A única questão permanece - como posso estender com segurança minha partição criptografada LUKS e o sistema BTRFS (com 2 subvolumes - root e home) sob ela?

Meu /etc/fstab

# /dev/nvme0n1p1
UUID=6E39-1234          /boot       vfat        rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro   0 2

# /dev/mapper/cryptroot
UUID=d7cf34c3-8fb4-4cbb-b04b-96e8121e11d9   /           btrfs       rw,noatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=256,subvol=/@  0 0

# /dev/mapper/cryptroot
UUID=d7cf34c3-8fb4-4cbb-b04b-96e8121e11d9   /home       btrfs       rw,noatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=257,subvol=/@home  0 0
btrfs
  • 2 respostas
  • 33 Views
Martin Hope
OMX
Asked: 2023-02-13 03:44:36 +0800 CST

BTRFS Recupere arquivos excluídos sem instantâneo

  • 5

Apaguei todos os arquivos em um /dev/sdb1disco de 4 TB. Isso foi feito com o rsync --deletecomando.

Antes de ser interrompido, o rsync gravou cerca de 10 GB de dados.

Claro que não há instantâneo no disco.

O btrfssistema de arquivos foi montado na /home/user/Downloadspasta.

Então eu queria saber se havia uma maneira de restaurar os dados.

Até agora (depois de desmontar meu disco), tentei:

  • restauração btrfs:

btrfs restore -i /dev/sdb1 /mnt/RESTORE/

O que restaurou apenas os novos arquivos de 10 GB.

  • O script btrfs-undelete que consigo fazer funcionar: ./btrfs.sh /dev/sdb1 /home/user/Downloads/* /mnt/RESTORE/

Resultado:

[...]
Trying root 3001138823168... (1096/1103)
Trying root 853360640... (1097/1103)
Trying root 50626560... (1098/1103)
Trying root 31309824... (1099/1103)
Trying root 31129600... (1100/1103)
Trying root 30900224... (1101/1103)
Trying root 30818304... (1102/1103)
Trying root 30408704... (1103/1103)
Didn't find 'home/user/D*/*
  • Eu também tentei restaurar manualmente o arquivo com btrfs restore -t 3001556484096 /dev/sdb1 /mnt/RESTORE/:
parent transid verify failed on 3001556484096 wanted 96918 found 96231
parent transid verify failed on 3001556484096 wanted 96918 found 96231
parent transid verify failed on 3001556484096 wanted 96918 found 96231
Ignoring transid failure
ERROR: root [1 0] level 0 does not match 1

Couldn't read tree root
Could not open root, trying backup super
parent transid verify failed on 3001556484096 wanted 96918 found 96231
parent transid verify failed on 3001556484096 wanted 96918 found 96231
parent transid verify failed on 3001556484096 wanted 96918 found 96231
Ignoring transid failure
ERROR: root [1 0] level 0 does not match 1

Couldn't read tree root
Could not open root, trying backup super
parent transid verify failed on 3001556484096 wanted 96918 found 96231
parent transid verify failed on 3001556484096 wanted 96918 found 96231
parent transid verify failed on 3001556484096 wanted 96918 found 96231
Ignoring transid failure
ERROR: root [1 0] level 0 does not match 1

Couldn't read tree root
Could not open root, trying backup super
  • btrfs-find-root -a /dev/sdb1saída :
Superblock thinks the generation is 96918
Superblock thinks the level is 1
[...]
Well block 3001381945344(gen: 94646 level: 0) seems good, but generation/level doesn't match, want gen: 96918 level: 1
Well block 3001359089664(gen: 94635 level: 0) seems good, but generation/level doesn't match, want gen: 96918 level: 1
Well block 853360640(gen: 94238 level: 0) seems good, but generation/level doesn't match, want gen: 96918 level: 1
  • btrfs rescue super-recover -v /dev/sdb1saída :
All Devices:
        Device: id = 1, name = /dev/sdb1

Before Recovering:
        [All good supers]:
                device name = /dev/sdb1
                superblock bytenr = 65536

                device name = /dev/sdb1
                superblock bytenr = 67108864

                device name = /dev/sdb1
                superblock bytenr = 274877906944

        [All bad supers]:

All supers are valid, no need to recover

Então qualquer ajuda será apreciada :)

Atualização 1:

Infelizmente, consegui restaurar apenas alguns arquivos corrompidos. Aqui está o que fiz seguindo o script btrfs-undelete .

  • Obtenha cada ID para um /tmp/IDarquivo:
btrfs-find-root -a /dev/sdb1 2>&1 | grep ^Well | sed -r -e 's/Well block ([0-9]+).*/\1/' | sort -rn > /tmp/ID
  • Restaurar tudo o que puder do ID:
for i in $(cat /tmp/ID) ; do mkdir /mnt/RESTORE/"$i"; btrfs restore -o -iv -t "$i" /dev/sdb1 /mnt/RESTORE/"$i" 2>&1; done

Acho que agora a única maneira é encontrar um software de recuperação de arquivos...

btrfs
  • 1 respostas
  • 49 Views

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