Izifinyezo ze-Btrfs nge-Snapper: Buyisela Isistimu Yakho Nedatha ku-Linux

Isibuyekezo sokugcina: 25/06/2025
Author: Isaka
  • I-Btrfs ne-Snapper zinikeza izifinyezo ezisheshayo kanye nesistimu ephumelelayo nokubuyisela ifayela.
  • Ukwakheka kwevolumu engaphansi efanele kusiza izipele ezikhethiwe kanye nokutholwa okusheshayo.
  • I-Snapper yenza ngokuzenzakalelayo izifinyezo ezisekelwe kumcimbi, ilawule ukuhlanzwa, futhi inike amandla ukuqhathanisa okunembile nokubuyisela emuva.

btrfs

I-Btrfs izisungule eminyakeni yamuva nje njengenye yezinhlelo zamafayela ezithuthuke kakhulu nezivumelana nezimo ku-ecosystem. Linux. Ikhono layo lokudala izifinyezo eziphumelelayo kanye nezici zayo zokuzilawula zikwenze kwaba yintandokazi yokusabalalisa okufana ne-openSUSE, i-Siduction, ne-Arch Linux. Kodwa-ke, amandla ayo ayaphindaphindeka uma ehlanganiswa ne-Snapper, ithuluzi elikhethekile lokuphatha izifinyezo, ukubuyisela, nokwenza imisebenzi yokusekelayo ngokuzenzakalelayo ngesikhathi sangempela.

Lesi sihloko sihlose ukuhlukanisa ngokucophelela nangokoqobo ukuthi izifinyezo zisebenza kanjani kuma-Btrfs nokuthi ungathola kanjani okuningi kuzo nge-Snapper. Sizofaka yonke into kusukela emiqondweni eyisisekelo kuya ekucushweni okuthuthukile, izibonelo zokuphinda uthole, okuzenzakalelayo, amathiphu, tricks kanye nezincomo zokusebenza. Konke ngeSpanishi kanye nesilulumagama esijwayelekile, okubonisa kokubili izinzuzo nezingibe ezingaba khona ongase uhlangane nazo lapho usebenzisa lesi sixazululo ohlelweni lwakho lwe-Linux noma iseva.

Iyini i-Btrfs futhi kungani ibalulekile ngezifinyezo?

I-Btrfs, emfishane ye-B-Tree File System, iwuhlelo lwesimanje lwamafayela elethula ifilosofi yokukopisha-on-write (CoW) ekulawuleni idatha ku-Linux. Okukhanga okuyinhloko kubasebenzisi abathuthukile nabaphathi kusekhonweni layo lokudala amavolumu amancane nezifinyezo cishe ngokushesha nangokusebenzisa isikhala esincane.

Ngokungafani nezinhlelo eziningi zefayela lendabuko njenge-ext4, i-Btrfs iyasebenza:

  • Amavolumu angaphansi: Iziqondiso eziziphatha njengezingxenye zangaphakathi ezinengqondo, ezivumela izindawo ezithile zesistimu yefayela ukuthi zihlukaniswe futhi ziphathwe ngokuzimela.
  • Izifinyezo: Amakhophi angena ngesikhathi evolumu engaphansi, okuthi, ngenxa ye-CoW, athathe isikhala kuphela lapho amafayela elungiswa ngokuqhathaniswa neyokuqala. Lokhu kubenza balungele Buyisa izimo zesistimu yangaphambilini, yenza izipele eziphumelelayo, noma vikela kumaphutha okubuyekeza.

Isakhiwo se-Btrfs sivumela ivolumu engaphansi ngayinye ukuthi ibe nesigaba sefayela nokuhlelwa kwayo, okuvela kumsebenzisi njengezinhlu ezijwayelekile kodwa ngokuphathwa okukhethekile kwangaphakathi.

Kungani uSnapper engumngane ophelele wama-Btrfs?

I-Snapper iyithuluzi lenkanyezi lokuthola okuningi kuzifinyezo ze-Btrfs. Ayikuvumeli kuphela ukuthi udale futhi ususe izifinyezo, kodwa futhi yenza ngokuzenzakalelayo ukuthatha izifinyezo ngezikhathi ezibucayi (ezifana nezibuyekezo zesistimu), iqhathanise umehluko phakathi kwezifunda, futhi kusiza kokubili ifayela ngalinye kanye nokubuyiselwa kohlelo olubanzi lwesistimu. Iphinde isekele izikhathi ezizenzakalelayo kanye nokuhlanza okuhleliwe ukuze kugwenywe ukugcwalisa idiski.

Phakathi kwezizathu zokuthi kungani i-Snapper icishe ibaluleke kakhulu uma usebenzisa ama-Btrfs yilezi:

  • Ukuzenzakalela izifinyezo emicimbini ebalulekile (ukufakwa kwephakheji, izibuyekezo, izinguquko zokuphatha…)
  • Ikhono lokuqhathanisa nokuhlehlisa izinguquko phakathi kwamaphuzu amabili ku el tiempo. Ilungele ukuthola ukuthi yini ephukile ngemva kokubuyekezwa, noma ukuthi yimaphi amafayela athintwe ngephutha.
  • Ukubuyiselwa kwe-Granular, kokubili ezingeni lefayela elithile kanye nalo lonke uhlelo lokusebenza uma kwenzeka kuba nenhlekelele.
  • Ukusekela ukuhlanza okuzenzakalelayo kuye ngemikhawulo yesikhala, ubudala noma inombolo yezifinyezo.
  • I-interface ye-CLI namamojula wesithombe (ngokwesibonelo, i-yast2-snapper noma i-btrfs-assistant yabasebenzisi abakhetha ukungasebenzisi imiyalo).

Imiqondo eyisisekelo: ama-subvolumes nezifinyezo kuma-Btrfs

Ukuze uqonde ngokugcwele ukuthi uSnapper uziphatha kanjani izifinyezo, kufanele uqale ucacise ukuthi i-Btrfs ihlela kanjani isigaba sayo sangaphakathi.

Ivolumu engaphansi ku-Btrfs

I-subvolume wuhlobo lokuhlukanisa okunengqondo ngaphakathi kwe-Btrfs. Ibonakala njengohla lwemibhalo oluvamile, kodwa ingafakwa ngokuzimela, inendawo yayo yegama, futhi iphathwa ngokuhlukana kumazinga wesithombe-sithombe kanye nesabelo.

  Umhlahlandlela ophelele wokwenza izindawo nge-WSL2 + Docker + VS Code

Ngokuzenzakalelayo, ama-distros amaningi (openSUSE, siduction, Arch…) asetha ama-subvolumes njengalokhu:

  • @ ukuze izimpande (/)
  • @ekhaya ukuze / ekhaya
  • @izifinyezo ifolda /.izifinyezo
  • @var_log ukuze / var / log

Ngenxa yalokhu ungathatha izifinyezo zesistimu kuphela, ushiye idatha yomsebenzisi noma izingodo ngaphandle uma uthanda. Uma ululama, ngokwesibonelo, isistimu yakho yokusebenza ngemva kokubuyekezwa okuhlulekile, ungashiya amafayela akho siqu eqinile futhi uvele ubuyisele impande.

Siyini isifinyezo ku-Btrfs?

Kumongo we-Btrfs, isifinyezo siyivolumu engaphansi ekhethekile egcina isimo esiqondile senye ingxenye encane endaweni ethile ngesikhathi. Kodwa-ke, ngenxa yemodeli ye-CoW, kuthatha isikhala kuphela njengoba amafayela ashintsha ngokuhlobene nasekuqaleni.

Lokhu kusho ukuthi ungaba nenqwaba yezifinyezo zomlando ezithatha ingxenye encane kuphela yesikhala esiphelele, futhi ubuyisele noma yisiphi sazo cishe ngokushesha.

Izifinyezo aziphindi: zithwebula kuphela okuqukethwe kwaleyo volumu engaphansi, hhayi noma yimaphi amavolumu angaphansi esidleke. Kungakho kubalulekile ukuhlela ukwakheka kwevolumu yakho encane kahle ukuze uhlukanise idatha ebalulekile ongeke ufune ukukulahlekela (ngokwesibonelo, amafolda akho omuntu siqu noma izingodo zesistimu).

Izinhlobo Zezifinyezo: Zadalwa Nini Futhi Kanjani?

I-Snapper ikuvumela ukuthi uhlukanise phakathi kwezinhlobo ezimbalwa zezifinyezo, nakuba ngaphakathi kuma-Btrfs, zonke ziyefana ngokobuchwepheshe. I-Snapper ibeka umehluko wezinjongo zokuphatha, ukuqhathanisa, nokuhlanza:

  • Phambili: Isifinyezo esithathwe ngaphambi koshintsho olukhulu (isibonelo, ngaphambi kokufaka izibuyekezo ezinkulu).
  • Thumela: Isifinyezo ngokushesha ngemva koshintsho olufanayo. Ngale ndlela ungakwazi ukuqhathanisa kalula lokho okushintshile.
  • Single: Izifinyezo ezenziwa mathupha, izifinyezo zomugqa wesikhathi ozenzakalelayo, nanoma yiziphi ezinye izifinyezo ezingahlotshaniswa nomcimbi othile wangaphambi/nokuthunyelwa.

Ukusabalalisa okuningi okuhlanganisa i-Snapper kunika amandla ukudalwa kwesifinyezo sangaphambi/ kokuthunyelwe ngokuzenzakalelayo ngezenzo zokuphatha noma ukufakwa kwephakheji. Isibonelo, i-openSUSE idala izifinyezo ngaphambi nangemuva kwesibuyekezo ngasinye nge-YaST. I-Siduction yenza okufanayo ekusebenzeni ngakunye kwe-APT. Ngale ndlela, ungakwazi ukubuyela esimweni sangaphambilini uma kukhona okungahambi kahle.

Izifinyezo zomugqa wesikhathi

Esinye isici esibalulekile umugqa wesikhathi wesifinyezo othomathikhi. Ungakwazi ukumisa i-Snapper ukuze udale izifinyezo njalo ngehora, usuku, isonto, inyanga, noma unyaka, njalo ugcine kuphela inombolo ecacisiwe yezifinyezo futhi ususa ezindala ngokusekelwe emithethweni yokuhlanza.

Ngokuzenzakalelayo, ivamise ukuvunyelwa kumasistimu anesikhala esanele samahhala, futhi ungakwazi ukukulungisa kalula kufayela elihambisanayo lokumisa.

Ungayifaka kanjani futhi uyilungiselele kanjani i-Snapper kusistimu yakho ye-Btrfs

Ukufakwa kuyahluka kancane kuye ngokusabalalisa kwakho, kodwa kumasistimu amaningi asekelwe ku-RPM (openSUSE, RHEL, Siduction, Fedora, njll.) kulula njengokusebenza:

  • vulaSUSE/SLE: zypper install snapper (ngokuzithandela i-yast2-snapper kanye ne-snapper-zypp-plugin ukuze kuhlanganiswe ngokugcwele).
  • I-Arch Linux / Manjaro: pacman -S snapper futhi, nge-graphical interface, yay -S btrfs-assistant snapper-gui-git
  • I-Debian/siduction: apt install snapper

Uma isifakiwe, isinyathelo esilandelayo ukudala ukucushwa kwe-subvolume noma ukwahlukanisa ofuna ukukuvikela. Ngokuvamile, ohlelweni lwempande:

# snapper -c impande dala-config /

Lokhu kwenza izenzo ezimbalwa ezizenzakalelayo:

  • Dala ifayela lokucushwa le-Snapper in /etc/snapper/configs/root.
  • Lungiselela ifolda /.snapshots ngaphakathi kwevolumu engezansi ehambisanayo yokugcina izifinyezo.
  • Buyekeza okuguquguqukayo SNAPPER_CONFIGS kufayela lezilungiselelo zomhlaba jikelele.

Uma ufuna ukuphatha / ekhaya (noma yimuphi omunye umqulu), vele uphinde inqubo:

# snapper -c ekhaya dala-config /home

Khumbula ukuthi ukuba nesakhiwo sevolumu engaphansi esifanele kubalulekile ekuvikeleni kuphela lokho okukhathalelayo—uma uthanda kuphela ukuvikela isistimu, hlukanisa amafolda omsebenzisi nawedatha kumavolumu amancane ahlukene ukuze ugweme ukuwabuyisela ngephutha ngesikhathi sokuhlehlisa.

Imingcele eyinhloko nokuhlela ukuhlela

Umlingo we-Snapper ukumafayela awo okucushwa, atholakala ku /etc/snapper/configs/Ezinye izilungiselelo eziyinhloko ongakwazi ukuzenza ngezifiso izidingo zakho nesikhala esitholakalayo:

  • TIMELINE_CREATE: "Yebo noma cha". Inika amandla noma ikhubaze umugqa wesikhathi wesifinyezo othomathikhi.
  • TIMELINE_LIMIT_HOURLY/DAILY/WEEKLY/MONTHLY/YEARLY: Inombolo enkulu yezifinyezo okufanele zigcinwe zohlobo ngalunye.
  • NUMBER_CLEANUP, NUMBER_LIMIT, NUMBER_MIN_AGE: Balawula ukuhlanzwa kwezifinyezo ezenziwa ngesandla noma ezinezinombolo.
  • FREE_LIMIT kanye ne-SPACE_LIMIT: Ichaza ubuncane bendawo ekhululekile kanye nesikhala esiphezulu ebekelwe izifinyezo.
  • ALLOW_USERS kanye ALLOW_GROUPS: Uhlu lwabasebenzisi noma amaqembu angaphatha izifinyezo zalokho kulungiselelwa.
  • SYNC_ACL: Uma "yebo", i-Snapper ivumelanisa ngokuzenzakalelayo izimvume ze-ACL zohla lwemibhalo .snapshots ngokuya ngabasebenzisi/amaqembu avunyelwe.
  Imiyalo yokuphatha izimfanelo zefayela ku-Linux

Ukuze uthole izinguquko ezisheshayo zomngcele noma ukuguqula umugqa wesikhathi uvule/uvale, ungahlela ifayela ngokuqondile noma usebenzise umyalo:

# snapper -c impande set-config TIMELINE_CREATE=yebo NUMBER_LIMIT=20

Kodwa-ke, kumasistimu amaningi wesimanje ukuhlanza izifinyezo kulawulwa yi-systemd nge-timers (snapper-timeline.timer y snapper-cleanup.timer), nakuba kumasistimu amadala usengasebenzisa i-cron.

Zigcinwa futhi zifinyelelwe kanjani izifinyezo

Isifinyezo ngasinye esithathwa ngu-Snapper empeleni siyi-subvolume yengane ngaphakathi kwefolda /.snapshots yevolumu engezansi ehambisanayo. Isibonelo, izifinyezo zesistimu yempande zizongena /.snapshots/X/snapshot/, lapho u-X kuyinombolo yesifinyezo.

Ungaziphequlula njengezinhla zemibhalo zokufunda kuphela. Uma udinga ukuphinda uthole ifayela elithile, mane ulikopishe kusuka kusifinyezo esifanele uye endaweni yalo yangempela.

# cp /.snapshots/16/snapshot/etc/hosts /etc/hosts

Uma udinga ukulungisa isifinyezo (akunconyiwe ngaphandle kwasezimweni ezikhethekile), ungakwazi ukuhlela kabusha okwesikhashana ivolumu encane yesifinyezo njengoba ibhalwa usebenzisa:

# btrfs isethi yendawo /.snapshots/ /isifinyezo ro amanga

Qiniseka ukuthi uyayibuyisela ekufundeni kuphela ngemva kokulungiswa ukuze ugweme ukungahambisani.

Ukudalwa kwesifinyezo nokuphatha: okwenziwa ngesandla, okuzenzakalelayo, nokusekelwe kumcimbi

Izifinyezo ezenziwe ngezandla

Ungakha isifinyezo nganoma yisiphi isikhathi nge:

# snapper -c impande dala --incazelo "isithombe sami sesandla" --cleanup-algorithm inombolo

Jo Ojo! Uma ungayicacisi i-algorithm yokuhlanza (--cleanup-algorithm), isifinyezo sizohlala unomphela uze usisuse ngesandla, esingagcwalisa idiski uma sihlukunyezwa.

Izifinyezo zomugqa wesikhathi ezizenzakalelayo

Uma isici somugqa wesikhathi sinikwe amandla, uSnapper udala izifinyezo ngezikhathi ezithile (isb., ngehora, nsuku zonke, maviki onke, njll.). Imikhawulo kanye nemvamisa kulawulwa kuzilungiselelo (TIMELINE_LIMIT_*).

Imvamisa ilawulwa izibali sikhathi ze-systemd (bona Uyishintsha kanjani isikhathi sokuvala semenyu yokuqalisa). Ungahlela izibali sikhathi ukuze wandise noma wehlise imvamisa ngokushintsha inkambu OnCalendar.

Izifinyezo zangaphambi/ngokuthunyelwe nokugoqa okwenziwayo

U-Snapper uyakwazi ukugoqa noma yisiphi isenzo esibalulekile (njengesibuyekezo sephakheji) ngesifinyezo sangaphambili nangemuva. Ngale ndlela ungakwazi njalo ukuqhathanisa okushintshile bese ubuyela uma kukhona okungahambanga kahle.

Isibonelo, ku-openSUSE ne-SUSE lokhu kuhlanganiswa ngokuzenzakalelayo lapho usebenzisa i-YaST noma i-Zypper. Ku-Arch Linux kukhona amaphakheji afana snap-pac, grub-btrfs noma amathuluzi afana refind-btrfs ukwengeza lokhu kusebenza.

Kuzinhlelo ezisekelwe ku-APT, ezifana nokukhohlisa, izenzo ezifanelekile zingagoqa imisebenzi ngezifinyezo zangaphambi/kokuthunyelwe (sibonga ukuhlanganiswa okuzenzakalelayo).

Buyisela futhi ubuyisele emuva: indlela yokubuyisela isistimu yakho noma ifayela esimweni sangaphambilini

Buyisela ifayela noma ifolda ethile

Uma ufuna kuphela ukuhlehlisa izinguquko kufayela elithile, ungasebenzisa i-Snapper ukuze uyiqhathanise futhi uyibuyisele:

# snapper isimo 42..45 /etc/hosts

Lokhu kuzokubonisa ukuthi yini eshintshile phakathi kwezifinyezo ezingu-42 nezingu-45. Uma unquma ukubuyisela ifayela:

# snapper diff 42..45 /etc/hosts
# snapper hlehlisa ukushintsha 42..45 /etc/hosts

Umyalo undochange ibuyisela kuphela lelo fayela, ngaphandle kokuthinta lonke uhlelo. Uma udinga ukuqhathanisa ngokubuka amafayela, izinhlelo ezifana Meld ingakusiza ubone ngeso lengqondo futhi ukhethe kuphela izinguquko ozithandayo.

Buyisela yonke impande yesistimu kusifinyezo sangaphambilini (ukubuyisela emuva)

Esimeni senhlekelele ephelele kulandela isibuyekezo esiyinkinga noma isenzo esishiye isistimu ingazinzile, ungakwazi ukuhlehlisa ngokuphelele isimo sesistimu ngesici sokuhlehlisa.

  Amafayela ku-iPad: Umhlahlandlela ophelele wokuthola, ukonga, nokuhlela

Inqubo evamile yile:

  1. Qalisa kabusha isistimu futhi ufinyelele imenyu ibhuthini ukuqala kusuka kusifinyezo osifunayo (amathuluzi afana I-Dual boot Windows ne-Linux yenza kube lula kakhulu).
  2. Qinisekisa ukuthi isistimu iqala kahle ngemodi yokufunda kuphela. Uma konke kulungile, qala ukubuyisela okugcwele:
    # snapper --ambit rollback yakudala
  3. U-Snapper uzodala isifinyezo esisha sokulondoloza, akopishele isimo esifiswayo kuvolumu encane entsha, futhi asisethe njengesizenzakalelayo esisha.
  4. Qalisa kabusha isistimu: Izoqala ngokuqondile kusimo esibuyiselwe.

Okubalulekile! Uma usebenzisa i-subvolume structure (isibonelo, @home ngokwehlukana), uhlelo kuphela oluzobuyiselwa, amafayela akho omuntu siqu azohlala enjalo.

Ukuhlanganiswa kwe-Bootloader nezifinyezo njengenketho yokuqalisa

Amathuluzi afana grub-btrfs Bavumela isifinyezo ngasinye se-Snapper ukuthi sibonakale njengokungena ku-GRUB, okwenza kube lula ukuqalisa kusuka kunoma yisiphi isimo sohlelo lwangaphambilini ngokushesha futhi kalula. Ngale ndlela, uma uhlelo luyeka ukusebenza ngemva kokubuyekezwa, ungakhetha ngokuqondile isifinyezo sangaphambilini ku-bootloader.

Ukuze lokhu kusebenze, izifinyezo kufanele zifakwe njengamavolumu amancane kanye nohla lwemibhalo /.snapshots kumele ifundeke. Amanye amasevisi adinga isifinyezo ukuthi sigxunyekwe njengokubhaleka, noma ukusebenzisa izimbondela ukuze kulingise indawo ebhalekayo ngaphandle kokulungisa isifinyezo esiyisisekelo (esilungele ukutholwa kwesikhashana noma ukuxilonga).

Ukuphatha izimvume nokufinyelela ngabasebenzisi abangeyona izimpande

Ngokuzenzakalelayo, umsebenzisi omkhulu kuphela onelungelo lokudala, ukususa, noma kuhlu izifinyezo. Uma ufuna abanye abasebenzisi bakwazi ukuphatha izifinyezo zokucushwa okuthile, engeza amagama abo kuzo ALLOW_USERS noma amaqembu abo ukuze ALLOW_GROUPS kufayela lokumisa elihambisanayo.

Qiniseka ukuthi ulungisa izimvume zohlu lwemibhalo /.snapshots ukunikeza umsebenzisi/iqembu okungenani ukufunda nokusebenzisa (isb. shintsha iqembu labanikazi libe “abasebenzisi”).

Izincomo zesakhiwo kanye nesakhiwo sevolumu encane

Ukuhlela okunengqondo kwamavolumu amancane namaphoyinti okukhweza kuyisihluthulelo sokuphatha izifinyezo ngendlela efanele nokubuyisela kuphela lokho okudingekayo lapho kudingeka.

Isikimu esijwayelekile esinconyiwe singaba:

Ivolumu engaphansi Indawo yokufaka
@ /
@ekhaya / ekhaya
@izifinyezo /.izifinyezo
@var_log / var / log

Lokhu kukuvumela ukuthi ubuyisele isistimu ngaphandle kokuthikameza idatha yomsebenzisi noma amalogi, futhi kugcina izifinyezo zingekho kuvolumu engaphansi eyinhloko ukuze ugweme ukuncika okuyindilinga. Kunconywa ukuba ube /.snapshots njengevolumu engezansi ekhweziwe ehlukile, hhayi nje uhla lwemibhalo.

Ama-algorithms wesithombe esifinyeziwe nokuhlanza: ukugwema ukugcwaliswa kwediski

Ubuthakathaka bezinhlelo zokuthwebula ezizenzakalelayo ukugcwaliswa kancane kancane kwamadiski uma kuyekwa kungahloliwe. I-Snapper ifaka izinketho ezimbalwa zokuhlanza izifinyezo ezindala ngokusekelwe emithethweni echazwe ngaphambilini:

  • Imikhawulo yobuningi (NUMBER_LIMIT izifinyezo zangaphambili/ezokuthunyelwe nezandla).
  • Imikhawulo yobudala (NUMBER_MIN_AGE).
  • Imikhawulo yomugqa wesikhathi (TIMELINE_LIMIT_HOURLY, TIMELINE_LIMIT_DAILY...).
  • Isikhala esiphezulu esigcwele (SPACE_LIMIT).
  • Iphesenti elincane lediski lamahhala (FREE_LIMIT).

Uhlelo lokuhlanza lusebenza ngokuzenzakalelayo nsuku zonke kusetshenziswa i-systemd (Ungabuyekeza kanjani izilungiselelo ze-UEFI firmware kusuka ku-Linux), kodwa ungayilungisa noma uyiphoqe noma kunini. Isifinyezo samanje asilokothi sisuswe ngokuzenzakalelayo.

uefi bios
I-athikili ehlobene:
Ungafinyelela kanjani futhi ubuyekeze izilungiselelo ze-firmware (i-BIOS/UEFI) kusuka ku-Linux usebenzisa i-systemctl ne-systemd