Portál AbcLinuxu, 17. května 2024 13:59


Dotaz: BTRFS subvolume

22.12.2023 01:03 Pepan35
BTRFS subvolume
Přečteno: 1059×
Odpovědět | Admin
Zdravím, nějak mě zradil btrfs filesystem. SSD disk mám rozdělený podle rad na abclinuxu na dvě části. Malou část na fat32-efi a zbytek / Vše fungovalo k mojí plné radosti ale asi po půl roce používání včera systém nenabootoval s tím že Failed subvol=/@home Fstab v záloze původní je naprosto stejný: UUID=d9b300b2-3c17-42dc-8db7-aa9cc3125caa /home btrfs subvol=/@home,defaults,noatime,compress=zstd 0 0

Dnes jsem pomocí Clonezilly disk obnovil, ale problém je úplně stejný. Kde hledat chybu?

Data mám zazálohovaná, mohl bych systém přeinstalovat, ale mám obavu aby se to neopakovalo. Nevím si rady, napadlo mě BTRFS /home dát zvlášť na vytvořenou partici, nebo zvolit starý dobrý FS ext4.

PS Timeshift který by to mohl způsobit jsem nikdy nepoužil.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Max avatar 22.12.2023 08:24 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: BTRFS subvolume
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chtělo by to vidět nějaký skutečný výpis, proč to chcípá. Co vypíše ruční mount a dmesg?
Zdar Max
Měl jsem sen ... :(
22.12.2023 14:28
Rozbalit Rozbalit vše Re: BTRFS subvolume
Odpovědět | | Sbalit | Link | Blokovat | Admin
Používám btrfs už pár let, ale z dotazu jsem voľaký zmätený.

Zkus přesně popsat problém. Je možné, že pokud to uděláš pořádně, tak odhalíš řešení sám.
22.12.2023 20:10 Pepan35
Rozbalit Rozbalit vše Re: BTRFS subvolume
Vždyť jsem to popsal. Při startu systému se objeví: Failed subvol=/@home a po zadání hesla se dostanu do terminálu. Tam jsem zjistil že oproti funkčnímu systému není žádná změna. Proto úprava fstab nedává smysl. Někde jsem četl že může být problém v systemd s btrfs. Bohužel jako obyčejný uživatel tomu nerozumím. Asi systém přeinstaluji s ext4 které mě nikdy nezklamalo. Jak jsem psal PC jsem neaktualizoval večer vypnul a druhý den nenaběhl :-(
Max avatar 22.12.2023 20:52 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: BTRFS subvolume
Tak znovu, viz výše. Ruční "mount" a napsat "dmesg" by jsi zvládnout mohl, ne?
Zdar Max
Měl jsem sen ... :(
23.12.2023 09:22
Rozbalit Rozbalit vše Re: BTRFS subvolume
Někde jsem četl, že linuxy mají logy.
23.12.2023 11:34 LarryL | skóre: 27
Rozbalit Rozbalit vše Re: BTRFS subvolume
Asi systém přeinstaluji s ext4 které mě nikdy nezklamalo
Kdyby tu byl BTRFS guru Andrej, tak by ti napsal, že je lepší když ti BTRFS zahlásí ztrátu dat, což se ti možná stalo, než když přijdeš o data tiše s ext4. A měl by pravdu.
Tam jsem zjistil že oproti funkčnímu systému není žádná změna.
Skutečně jsi zkontroloval celý disk bit po bitu?

Jak ti psali ostatní, chtělo by to logy.
23.12.2023 12:23 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: BTRFS subvolume

Je opravdu tak těžké pochopit, že čekáme až sem dá nějaký screenshot, nebo něco podobného, na základě čeho by se dalo říct kde je problém? Kdyby použil tag pre, taky by ho neubylo. U té Clonezilly taky není jasné jestli to obnovil komplet, nebo jenom nějakou patition. Spousta lidí se domnívá, že hovoří jasně, ale není tomu tak. Pro někoho je totiž "celý disk", jenom partition s linuxem a pro jiného zas celé blokové zařízení.

Jestliže se mu to normálně namountuje, bude nejspíš problém zcela banální. Nenapsal ani co používá za distribuci. Bohatě by stačilo, kdyby sem nakopíroval co mu vypíše ~$ sudo btrfs subvolume list /. Hned bychom byli doma.

Osobně se domnívám, že žádné subvolume @home co se snaží namountovat vytvořeno nemá. Proto mu to zahlásí chybu a data se zapisují do normálního adresáře /home kořenového subvolume, kde má nainstalovaný celý systém. To je celé.

23.12.2023 14:01 Pepan35
Rozbalit Rozbalit vše Re: BTRFS subvolume
U clonezilly jsem obnovil partišnu efi s fat32 a druhou s BTRFS sudo btrfs subvolume list /. :
ID 256 gen 4279 top level 5 path @
ID 257 gen 4280 top level 5 path @home
ID 258 gen 4251 top level 5 path @cache
ID 259 gen 4280 top level 5 path @log
ID 260 gen 24 top level 256 path var/lib/portables
ID 261 gen 25 top level 256 path var/lib/machines
23.12.2023 14:55 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: BTRFS subvolume

Ok. Díky. Vidím že subvolume vytvořeno máš. Víš co by ještě mohlo poskytnout víc informací? Zapnutí kvót. Zjistíš kolik dat každé volume obsahuje. Nejdřív ale na to vypusť scrub. Až dojede a zjistíš kolik máš v každém subvolume dat, můžeš ty kvóty klidně vypnout. Tady máš pro ilustraci jak to vypadá u mne. Jen pro info. Zabráno mám 86%, je to Btrfs v raid1, celkový objem dat 1,53TiB takže než dojede scrub, tak to chvíli bude trvat. Už to nechám dojet, není to na škodu ale kdybys to chtěl stopnout máš uvedeno jak. Doporučuji během toho co jede scrub sledovat dmesg. Pokud se během toho než to dojede objeví nějaké chyby, tak je uvidíš.

 ~$ sudo btrfs quota enable /
 ~$ sudo btrfs scrub start /
 ~$ sudo btrfs scrub status /
 ~$ sudo btrfs scrub status /
 UUID:             8d567f20-2ab3-436e-a52f-c7ed7e1c8879
 Scrub started:    Sat Dec 23 14:20:17 2023
 Status:           running
 Duration:         0:08:20
 Time left:        2:37:04
 ETA:              Sat Dec 23 17:05:42 2023
 Total to scrub:   1.53TiB
 Bytes scrubbed:   79.05GiB  (5.04%)
 Rate:             161.90MiB/s
 Error summary:    no errors found
 ~$ sudo btrfs fi df /
 Data, RAID1: total=836.00GiB, used=780.71GiB
 System, RAID1: total=32.00MiB, used=132.00KiB
 Metadata, RAID1: total=7.00GiB, used=3.86GiB
 GlobalReserve, single: total=512.00MiB, used=0.0
 ~$ sudo btrfs device usage /
 /dev/sda1, ID: 10
    Device size:           915.75GiB
    Device slack:              0.00B
    Data,RAID1:            836.00GiB
    Metadata,RAID1:          7.00GiB
    System,RAID1:           32.00MiB
    Unallocated:            72.72GiB

 /dev/sdb1, ID: 11
    Device size:           915.75GiB
    Device slack:              0.00B
    Data,RAID1:            836.00GiB
    Metadata,RAID1:          7.00GiB
    System,RAID1:           32.00MiB
    Unallocated:            72.72GiB
 ~$ sudo dmesg -we
 ...
 ~$ sudo btrfs qgroup show /
 WARNING: rescan is running, qgroup data may be incorrect
 Qgroupid    Referenced    Exclusive   Path 
 --------    ----------    ---------   ---- 
 0/5              0.00B        0.00B   <toplevel>
 0/256        129.54GiB    129.54GiB   btrfs-root
 0/585          7.86GiB      7.86GiB   btrfs-root/home/user/.PlayOnLinux
 0/586            0.00B        0.00B   btrfs-root/var/lib/machines
 0/1532           0.00B        0.00B   btrfs-root/var/lib/portables
 ~$ sudo btrfs scrub cancel /
 ~$ sudo btrfs quota disable /
23.12.2023 15:17 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: BTRFS subvolume

Jen na vysvětlenou. Ten údaj o tom množství dat v subvolume se ti bude postupně měnit, dokud nedojede ten scrub do konce. Tohle je kupř. můj aktuální stav:

~$ sudo btrfs scrub status /
UUID:             8d567f20-2ab3-436e-a52f-c7ed7e1c8879
Scrub started:    Sat Dec 23 14:20:17 2023
Status:           running
Duration:         0:55:34
Time left:        1:21:33
ETA:              Sat Dec 23 16:37:27 2023
Total to scrub:   1.53TiB
Bytes scrubbed:   635.84GiB  (40.52%)
Rate:             195.29MiB/s
Error summary:    no errors found
~$ sudo btrfs qgroup show /
WARNING: rescan is running, qgroup data may be incorrect
Qgroupid    Referenced    Exclusive   Path 
--------    ----------    ---------   ---- 
0/5            4.00KiB      4.00KiB   <toplevel>
0/256        168.63GiB    168.63GiB   btrfs-root
0/585         18.07GiB     18.07GiB   btrfs-root/home/user/.PlayOnLinux
0/586          4.00KiB      4.00KiB   btrfs-root/var/lib/machines
0/1532         4.00KiB      4.00KiB   btrfs-root/var/lib/portables
23.12.2023 16:18 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: BTRFS subvolume

Jo a zapnuté kvóty mají něco do sebe. Umožňují předcházet situaci, kdy si zaplácneš celý disk. Btrfs sice má vždy skulinu kterou lze takovou situaci řešit, ale ten kdo to nezná z toho může být dost vydivočený.

Když máš totiž zaplácnutý disk, neuvolníš místo tím že něco smažeš. Je to COW systém, tzn. že i smazání souboru vyžaduje nějaké volné místo. Jednou možností je odpojení a nové přimountování, jelikož si Btrfs vždy nechává nějakou volnou rezervu, umožní ti pak něco menšího smazat. V případě velkých souborů to ale nemusí stačit a když zaplácneš subvolume, tak to snad ani nelze. A v takovém případě ti může vytrhnout paty příkaz truncate. Smrskneš soubor na 1 bajt a pak už smazat půjde.

23.12.2023 17:05 LarryL | skóre: 27
Rozbalit Rozbalit vše Re: BTRFS subvolume
Je opravdu tak těžké pochopit, že čekáme až sem dá nějaký screenshot, nebo něco podobného, na základě čeho by se dalo říct kde je problém?
Není to těžké pochopit. Všichni to chápeme. Právě proto jsem se mu snažil naznačit, že by bylo chybou kdyby místo detailnějšího popisu problému BTRFS utekl k ext4.
23.12.2023 16:11 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: BTRFS subvolume
Odpovědět | | Sbalit | Link | Blokovat | Admin

Jinak k tomu pojmenování tvých subvolume. Použití zavináče je zastaralá věc, kterou se svého času někteří snažili aplikovat jako konvenci k odlišení subvolumes od normálních adresářů, než se ukázalo, že je to spíš komplikace než přínos. Je totiž mnohem efektivnější použít btrfs subvolume show nějaká_cesta a odchytit chybu, než parsovat cestu a spoléhat na to, že někdo dodržel tuhle pseudokonvenci.

Což mne přivedlo na pravděpodobnou chybu kterou máš v tom svém /etc/fstab a dost mne překvapuje, že by ti ten mount vůbec někdy fungoval, protože název toho subvolume je @home a ne /@home.

Jo, a ještě mě napadla jedna věc, která by mohla dělat problém. Mountuješ to přes UUID. Mezi námi, mountovat přes LABEL je mnohem jednodušší a nemusíš v případě potřeby hledat nějaké UUID.

23.12.2023 18:19 xxl | skóre: 25
Rozbalit Rozbalit vše Re: BTRFS subvolume
Což mne přivedlo na pravděpodobnou chybu kterou máš v tom svém /etc/fstab a dost mne překvapuje, že by ti ten mount vůbec někdy fungoval, protože název toho subvolume je @home a ne /@home.
V tomhle chyba není. @home je vytvořený v nejvyšší btrfs úrovni. Když ho mountneš na /home a dáš mount, tak se subvol takhle (/@home) vypisuje.
# btrfs subvolume list / | grep @home
ID 746 gen 1364277 top level 5 path @home

# cat /etc/fstab | grep @home
UUID=6ed846b8-423b-40e8-beef-74f5e6181c2b /home               btrfs defaults,noatime,compress=lzo,subvol=@home 0 0

# mount -t btrfs | grep @home
/dev/mapper/sda2_crypt on /home type btrfs (rw,noatime,compress=lzo,ssd,discard=async,space_cache=v2,subvolid=746,subvol=/@home)
23.12.2023 18:36 Pepan35
Rozbalit Rozbalit vše Re: BTRFS subvolume
Můj fstab se kterým to čas fungovalo a nyní nezměněný a nefunkční

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#

UUID=B3E0-51AD                            /efi           vfat    defaults,noatime 0 2
UUID=d9b300b2-3c17-42dc-8db7-aa9cc3125caa /              btrfs   subvol=/@,defaults,noatime,compress=zstd 0 0
UUID=d9b300b2-3c17-42dc-8db7-aa9cc3125caa /home          btrfs   subvol=/@home,defaults,noatime,compress=zstd 0 0
UUID=d9b300b2-3c17-42dc-8db7-aa9cc3125caa /var/cache     btrfs   subvol=/@cache,defaults,noatime,compress=zstd 0 0
UUID=d9b300b2-3c17-42dc-8db7-aa9cc3125caa /var/log       btrfs   subvol=/@log,defaults,noatime,compress=zstd 0 0
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0
23.12.2023 18:53 xxl | skóre: 25
Rozbalit Rozbalit vše Re: BTRFS subvolume
fstab dobrý. Ale měl by ses zaměřit na to, jestli nemáš v logu hlášené chyby.
23.12.2023 19:14 Want
Rozbalit Rozbalit vše Re: BTRFS subvolume
A jsi si opravdu jistý, jestli to lomítko v názvu subvolume nevadí?
23.12.2023 19:24 xxl | skóre: 25
Rozbalit Rozbalit vše Re: BTRFS subvolume
Jsem si úplně naprosto jistý, že to lomítko rozhodně nevadí.
23.12.2023 19:18 Want
Rozbalit Rozbalit vše Re: BTRFS subvolume
Mohl bys sem vrazit co ti vypíše cat /proc/mounts?
24.12.2023 09:52 Pepan35
Rozbalit Rozbalit vše Re: BTRFS subvolume
/dev/sda2 / btrfs rw,noatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=256,subvol=/@ 0 0
devtmpfs /dev devtmpfs rw,nosuid,size=4096k,nr_inodes=4081492,mode=755,inode64 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev,inode64 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
cgroup2 /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
efivarfs /sys/firmware/efi/efivars efivarfs rw,nosuid,nodev,noexec,relatime 0 0
bpf /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime,mode=700 0 0
configfs /sys/kernel/config configfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /run tmpfs rw,nosuid,nodev,size=6536804k,nr_inodes=819200,mode=755,inode64 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=6279 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,nosuid,nodev,relatime,pagesize=2M 0 0
mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0
tracefs /sys/kernel/tracing tracefs rw,nosuid,nodev,noexec,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,nosuid,nodev,noexec,relatime 0 0
/dev/sda2 /home btrfs rw,noatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=257,subvol=/@home 0 0
tmpfs /tmp tmpfs rw,noatime,inode64 0 0
/dev/sda2 /var/cache btrfs rw,noatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=258,subvol=/@cache 0 0
/dev/sda2 /var/log btrfs rw,noatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=259,subvol=/@log 0 0
/dev/sda3 /mnt/statwine btrfs rw,noatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=5,subvol=/ 0 0
/dev/sda1 /efi vfat rw,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/sdb1 /mnt/sdb1 btrfs rw,noatime,compress=zstd:3,space_cache=v2,subvolid=5,subvol=/ 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=3268400k,nr_inodes=817100,mode=700,uid=1000,gid=1001,inode64 0 0
24.12.2023 10:34 xxl | skóre: 25
Rozbalit Rozbalit vše Re: BTRFS subvolume
/dev/sda2 /home btrfs rw,noatime,compress=zstd:3,ssd,discard=async,space_cache=v2,subvolid=257,subvol=/@home 0 0
No výborně. /home je namontovaný. Takže je buď všechno v pořádku nebo se musíš soustředit na to, co se píše v logu. Něco jako
journalctl -b -p3
Kromě toho si dostal radu, abys udělal scrub, což se při problémech jaksi hodí. Takže tím můžeš pokračovat.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.