Windows.  Virus.  Anteckningsböcker.  Internet.  kontor.  Verktyg.  Förare

Ingen av oss är immun från misstag. Ibland leder syndromet med krokiga händer till mycket sorgliga konsekvenser. Ibland är det väldigt svårt att motstå och att inte genomföra "antivetenskapliga" experiment med systemet eller köra ett skript/applikation som laddats ner från en overifierad källa. Och här kommer olika verktyg för att köra applikationer i en isolerad miljö och utökade filsystemsmöjligheter till undsättning.

Introduktion

*nix-system har alltid varit relativt resistenta mot dåligt skrivna applikationer (förutsatt att de inte kördes som root). Men ibland finns det en önskan att experimentera med systemet - att leka med konfigurationer, av vilka några kan vara viktiga, köra ett misstänkt skript, installera ett program som erhållits från en opålitlig källa ... Annars övervinner paranoian helt enkelt, och jag vill att bygga så många barriärer som möjligt för att skydda mot potentiell skadlig programvara. Artikeln kommer att beskriva några sätt att undvika konsekvenserna av optvingade fel genom att rulla tillbaka till en tidigare skapad returpunkt (Btrfs-ögonblicksbilder), köra ett misstänkt program i en begränsad miljö och roa din paranoia (Arkose och chroot).

chroot

Chroot har varit känt sedan länge. Den har en enorm fördel gentemot andra verktyg - den fungerar överallt, även på mycket gamla distributioner. Alla dessa nymodiga sandlådor är inget annat än dess vidareutveckling. Men det finns också nackdelar. Till exempel finns det inget sätt att begränsa nätverk, root kan komma ur det med viss ansträngning, och viktigast av allt, det är ganska svårt att konfigurera det. Trots detta är det idealiskt för vissa ändamål, som att installera paket från källan.

Det finns minst tre sätt att skapa en chroot-miljö:

  1. Du definierar alla applikationer och bibliotek som behövs för att arbetet med det lanserade programmet ska fungera. Detta är det mest flexibla sättet, men också det mest förvirrande.
  2. Chrootmiljön bildas dynamiskt. En gång fanns det Isolate-projektet som gjorde detta, men nu har det av okänd anledning sjunkit i glömska.
  3. Att distribuera bassystemet i den angivna katalogen och rota till det - jag kommer att beskriva det.

grub och btrfs

Troligtvis, när du startar från Btrfs-partitionen, kommer Grub att svära på att glesa filer inte är tillåtna och ber dig att trycka på valfri tangent. För att förhindra att det här meddelandet dyker upp, öppna det i din favorit textredigerare fil /etc/grub.d/00.header och kommentera följande rad där:

Om [ -n "\$(have_grubenv)" ]; sedan om [ -z "\$(boot_once)" ]; sedan save_env recordfail; fi; fi

Egentligen är variabeln recordfail nödvändig för att förhindra en cyklisk omstart, för vilken den spärras vid start, och sedan, i händelse av lyckad laddning, sätts den till 0. Även om det är oönskat att kommentera koden som är ansvarig för denna procedur, Jag tror att på ett stationärt system är det ganska du kan klara dig utan det.

Ognelis i sandlådan – så här står det i rubriken

Låt oss först installera paketet debootstrap, som används just för detta ändamål.

$ sudo apt-get install debootstrap

Sedan kommer vi att skapa en katalog där chrooten kommer att finnas och distribuera det kvantala bassystemet i den. I allmänhet kan den skapas var som helst, men dess traditionella plats är /var/chroot. Eftersom de flesta av följande kommandon kräver root-behörigheter, är det vettigt att byta till superanvändarkontot:

$ sudo su - # mkdir /var/chroot && cd /var/chroot # debootstrap quantal ./quantal-chr1 http://mirror.yandex.ru/ubuntu

Låt oss ta en titt på det sista kommandot. Den distribuerar Quantal Ubuntu-utgåvan i en separat quantal-chr1-katalog (man vet aldrig, du behöver plötsligt en annan chroot) från närmaste spegel. När distributionen är klar måste du mappa procfs, sysfs-filsystemen och (om tillämpligt) /dev-katalogen till detta underträd. Om chroot endast kommer att användas för textapplikationer tills en omstart, bör följande kommandon räcka:

# mount --bind /proc /var/chroot/quantal-chr1/proc # mount --bind /sys /var/chroot/quantal-chr1/sys # mount --bind /dev /var/chroot/quantal-chr1/ dev

Om du vill att det här underträdet ska fungera efter en omstart, lägg till lämpliga rader i /etc/fstab. Tja, för vissas arbete grafiska applikationer katalogerna /tmp och /var/run/dbus bör också visas. Efter det kan du redan ange följande kommando, som faktiskt gör chroot:

# chroot /var/chroot/quantal-chr1/

Och du är redan låst i det. För att inte förväxla chroot med ett riktigt system rekommenderar jag att du ändrar skalprompten. Låt oss till exempel installera och köra Skype i chroot. För att göra detta måste du installera schroot-paketet på värdsystemet, vilket gör det enklare att köra program i en chroot-miljö:


Distribuera till bassystemet chroot med debootstrap # apt-get install schroot

Sedan lägger vi till en post i filen /etc/schroot/schroot.conf. I mitt fall lade jag till följande:

/etc/schroot/schroot.conf description=Quantal Skype-katalog=/var/chroot/quantal-chr1 priority=3 users=rom groups=rom root-groups=root,rom

Vi vidarebefordrar /dev, /proc, /sys, /tmp och /var/run/dbus - se ovan för hur du gör detta. Lägg till en skype-användare och grupp till chroot - det är önskvärt att uid och gid matchar uid / gid för huvudanvändaren av det verkliga systemet (i mitt fall, rom), för vilken vi skriver följande kommandon:

# schroot -c quantal-skype -u root # addgroup --gid 1000 skype # adduser --disabled-password --force --uid 1000 --gid 1000 skype

Efter det lägger vi nyladdade Skype - igen i chroot - och tillfredsställer dess beroenden:

# dpkg --force-all -i skype-ubuntu-precise_4.1.0.20-1_i386.deb # apt-get -f install # exit

På huvudsystemet tillåter vi anslutningar till X-servern från localhost och anger chroot som en normal användare:

$ xhost +localhost $ cd / && schroot -c quantal-skype -u rom /bin/bash

Ställ in DISPLAY-variabeln (som du behöver titta på i huvudsystemet) och starta Skype:

$ export DISPLAY=":0.0" $ skype --dbpath=/home/skype/.Skype &

Skype installerades och lanserades framgångsrikt i en chroot-miljö.

Det skulle vara möjligt att skriva ett manus för att underlätta lanseringen, men du kan göra det själv.


Använder Arkose

Arkose fungerar på ett liknande sätt som Windows-sandlådor, som Sandboxie. I praktiken är detta ett bekvämt omslag för LXC-behållare. Men som du vet är bekvämlighet och flexibilitet ibland oförenliga - att finjustera de skapade behållarna är svårt. Av plusen noterar jag ett intuitivt gränssnitt (detta är om du använder GUI - dock startar från kommandoradär också väldigt enkelt), men från nackdelarna - som standard kräver det ganska mycket ledigt utrymme på hårddisken och det finns några möjliga sätt gå förbi; men om du använder Arkose som ett extra omslag för potentiella sätt att introducera skadlig programvara (webbläsare) eller till och med bara för att experimentera med vissa intressant applikation, det kommer inte att skada.

seccomp och seccomp-bpf

Seccomp är en föga känd mekanism som introduceras i 2.6.12-kärnan som tillåter en process att göra en enkelriktad övergång till ett "säkert" tillstånd, där endast fyra systemanrop är tillgängliga för den - exit(), sigreturn(), read() och write(), och de två sista är endast tillgängliga för redan öppna filer. Om processen försöker anropa någon annan syscall, kommer den att dödas omedelbart.

Uppenbarligen är denna lösning inte särskilt flexibel. I detta avseende dök seccomp-bpf upp i 3.5-kärnan, som låter dig finjustera, med hjälp av BPF-regler, vilka systemanrop (och deras argument) som är tillåtna och vilka inte. Seccomp-bpf används i Google Chrome, Chrome OS och backporterad till Ubuntu 12.04.

Innan du använder Arkose måste den installeras. Proceduren är standard:

$ sudo apt-get installera arkose-gui

Både GUI (arkose-gui) och kommandoradsverktyget (arkose) kommer att installeras. Det grafiska gränssnittet är så enkelt att jag inte ser poängen med att beskriva det, det är bättre att genast gå vidare till praktiken.


Manuellt skapande
skrivskyddad ögonblicksbild-
ta i btrfs

Kommandoradsalternativ kommer att överväga:

  • -n (ingen, direkt, filtrerad) - mappa nätverket till sandlådan. Alternativen ingen och direkt är självförklarande, filtrerad skapar sitt eget gränssnitt för varje sandlåda. I praktiken är det bättre att använda antingen ingen eller direkt, eftersom filtrering tar lång tid att ställa in.
  • -d (inget,system,session,båda) - tillgång till D-Bus bussar från sandlådan.
  • -s storlek - ställer in lagringsstorleken i megabyte. Standard är 2000 MB för ext4, eller halva minnet för tmpfs. Efter att programmet som körs i sandlådan har avslutats, förstörs förvaret.
  • -t - typ av lagringsfilsystem. Standard är ext4.
  • --root katalog - Anger katalogen som är mappad till sandlådan som rot.
  • --root-type (ko, bind) - exakt hur man visar roten. Om du använder ko kommer alla ändringar efter att du har stängt sandlådan att gå förlorade, och om du binder kommer de att sparas.
  • --base-path - anger platsen där sandlådan är lagrad. Standard är ~/.arkose.
  • --bind katalog och --cow katalog - visar en katalog antingen i koläge eller direkt. Naturligtvis beror användningen av ett eller annat alternativ på typen av rotmappning - det är ingen mening att använda alternativet --cow på en katalog som redan är kopiera-på-skriva.
  • -h - använd riktig hemkatalog. Liknar --bind $HOME.
  • -p - tillåter användning av PulseAudio.

Låt oss starta Firefox som ett exempel:

$ sudo arkose -n direkt -p firefox

Detta kommando kommer att starta Firefox med webbåtkomst och PulseAudio. Eftersom varje nyskapad behållare har sin egen hemkatalog som standard, kommer firelis-profilen också att vara ny, utan installerade tillägg, om du har några.

"Men vänta! Varför sudo? - en rimlig fråga kan uppstå. Faktum är att vissa förberedande operationer endast är tillgängliga från under roten. Men jag skyndar mig att försäkra dig - det lanserade programmet kommer att fungera med rättigheterna för den nuvarande användaren.


Lägga till en användare för att köra Skype i chroot

Kort om BTRFS

Det händer att systemet kollapsar efter installation av uppdateringar. Verktyg som liknar komponenten Windows Systemåterställning skulle vara användbara här. Jag är stolt över att kunna säga att vi har dem! Och ett av dessa verktyg är Btrfs. Av fördelarna med det nya filsystemet från Oracle är det värt att notera följande:

  • Copy-on-Write. Denna teknik används för att skapa ögonblicksbilder - ögonblicksbilder av systemtillståndet. När du skapar en ögonblicksbild kopierar FS-drivrutinen metadata till den och börjar övervaka den faktiska inspelningen. Om det hittas placeras de ursprungliga datablocken i ögonblicksbilden och nya skrivs i deras ställe.
  • Dynamisk allokering av inoder. Till skillnad från den gamla generationen FS har Btrfs ingen begränsning på antalet filer.
  • Filkomprimering.
  • Möjlighet att hosta ett filsystem på flera fysiska medier. I själva verket är detta samma RAID, bara en högre nivå. I skrivande stund stöds RAID 0, RAID 1 och RAID 10, medan stöd för RAID 5 är i de tidiga utvecklingsstadierna.

Skapa och ta bort ögonblicksbilder

För att utföra operationer på en ny generations filsystem, som att skapa ögonblicksbilder, defragmentera en volym och många andra, används kommandot btrfs. Dess syntax är i allmänhet följande:

btrfs<команда> <аргументы>

Vilken typ av operationer kan utföras på Btrfs? Nedan är de kommandon som jag tyckte var intressanta.

  • btrfs subvol skapa [<путь>/]<имя>- skapar en undervolym (se sidofältet). Om ingen sökväg anges skapas den i den aktuella katalogen.
  • btrfs subvol radera<имя>- tar bort undervolymen.
  • btrfs subvol hitta-ny<путь> <поколение>- lista över senast ändrade filer i den angivna sökvägen, med början från den angivna generationen. Tyvärr är det ännu inte möjligt på ett enkelt sätt ta reda på den aktuella generationen av en viss fil, så användningen av detta kommando kan åtföljas av dans med en tamburin.
  • btrfs subvol ögonblicksbild [-r]<подтом> <путь к снапшоту>- programmets höjdpunkt. Skapar en ögonblicksbild av den angivna undervolymen med den angivna sökvägen till den. Alternativet -r inaktiverar skrivning till ögonblicksbilder.
  • btrfs subvol lista<путь>- visar en lista över undervolymer och ögonblicksbilder i den angivna sökvägen.
  • btrfs filesys df - utrymmesanvändning för den angivna monteringspunkten.
  • btrfs filesys ändra storlek [+/-]<новый размер> <путь>- ja, ja, Btrfs har förmågan att ändra storlek på ett "live"-system, och inte bara öka, utan också minska! Med argumenten tycker jag att allt är mer eller mindre tydligt, men förutom att specificera storleken kan du använda max-argumentet, vilket utökar filsystemet till största möjliga storlek.

De återstående kommandona, även om de är intressanta, är relaterade till ämnet för artikeln endast i den mån, och vi kommer inte att överväga dem. Så för att skapa en ögonblicksbild av en undervolym med det aktuella datumet, till exempel rotkatalogen, skriver vi följande kommando:

$ sudo btrfs subvol snap -r / /snapshot-2013-01-16

$ sudo btrfs subvol del /snapshot-2013-01-16

Btrfs undervolym

En Btrfs-undervolym kan agera på två sätt: som en katalog och som ett VFS-objekt - något som kan monteras. Till exempel, när du installerar Ubuntu skapas två undervolymer - @ och @home. Den första innehåller systemfiler, den andra är användardata. Detta liknar att partitionera en disk, bara om tidigare en partition kunde innehålla, som regel, bara ett VFS-objekt, nu kan det finnas flera objekt på en partition samtidigt, och de kan kapslas.

Automatisering

Jag ser ingen mening med att skapa ögonblicksbilder manuellt - du kan helt enkelt glömma att göra detta. Tre automatiseringsscenarier kommer att tänka på:

  • skriv ett manus och lägg det i rc.local;
  • skriv ett manus och lägg det i cron;
  • använd kommandot btrfs autosnap.

Tyvärr, i Ubuntu 12.10 är den sista metoden inte tillgänglig av någon anledning, så det finns praktiskt taget inget val som sådan. Personligen föredrog jag att skriva ett cron-skript, men låt oss först skapa en undervolym där våra ögonblicksbilder kommer att lagras. För vad? Åtminstone för att inte skräpa ner rotmappen.

# mkdir /mnt/sda11 # montera /dev/sda11 /mnt/sda11 # btrfs subvol skapa /mnt/sda11/@snapshots # umount /mnt/sda11

Låt oss se vad dessa kommandon gör. Eftersom den faktiska roten av FS i det här ögonblicket otillgänglig (i ubuntu används subvolym @ som rot istället), vi måste montera den manuellt. I mitt fall är det på /dev/sda11. Med det tredje kommandot skapar vi undervolymen @snapshots - så om vi inte monterar den eller den verkliga roten kommer dess innehåll att vara otillgängligt. Och nu själva manuset:

Autosnap.sh #!/bin/bash set -e VOLUME=/dev/sda11 TMP_PATH=/tmp/snapshots MOUNT_OPTS=" [e-postskyddad]" # Aktuellt datum och tid - behövs för att namnge ögonblicksbildsmappar NOW="$(date +%Y%m%d%H%M)" NOW_SEC="$(date +%s)" if [ $# -ne 1 ] ; sedan # Om skriptet körs utan argument, ställ in standard till för en dag sedan OLDER_SEC="$(datum --datum "1 dag sedan" +%s)" annars # Om vi ​​har ett argument, antar vi att detta är ett datum i vilket format som helst som datumkommandot förstår, med alla konsekvenser OLDER_SEC="$(datum --datum "$1" +%s)" fi # Subtrahera önskat datum från det aktuella datumet och konvertera det till minuter OLDER=$ (($NOW_SEC-$ OLDER_SEC)) OLDER_MIN=$(($OLDER/60)) [ ! -d "$(TMP_PATH)/" ] && mkdir "$(TMP_PATH)/" [ -z "`grep "$( TMP_PATH)" /proc/ mounts`" ] && montera "$(VOLUME)" "$(TMP_PATH)/" -o "$(MOUNT_OPTS)" && ( # Montera mkdir "$(TMP_PATH)/$(NU)/" # Skapa ögonblicksbilder btrfs subvol snap / "$(TMP_PATH)/$(NOW)/rootsnap" > /dev/null 2>&1 btrfs subvol snap /home "$(TMP_PATH)/$(NU)/homesnap" > /dev/ null 2>&1 ) && ( # Leta efter mappar med ögonblicksbilder äldre än det angivna datumet för f i `hitta "$(TMP_PATH)" -mindepth 1 -maxdepth 1 -typ d -cmin +"$OLDER_MIN" -print0 |xargs - 0`; gör btrfs subvol del "$(f)/rootsnap" > /dev/null 2>&1 && btrfs subvol del "$(f)/homesnap" > /dev/null 2>&1 && # och ta bort ögonblicksbilder och mappar som innehåller dem rmdir "$f" klar ) umount -l "$(TMP_PATH)" && rmdir "$(TMP_PATH)"

Det här skriptet kan placeras där det är bekvämt (jag personligen föredrar att placera sådana saker i /usr/local/bin, men detta är en smaksak), och köra det antingen från cron eller från rc.local. Som standard roterar skriptet ögonblicksbilder som är äldre än en dag, men du kan ange vilket nummer som helst i formatet för datumkommandot - viktigast av allt, glöm inte att omsluta citattecken.

Använda en ISO-bild

För att inte dra skivan med den inspelade ubunten varje gång när några viktiga filer skadas, är det möjligt att lägga till startobjektet från ISO-bilden i Grub-menyn, vilket jag föreslår att göra. För att göra detta behöver du en icke-Btrfs-partition (eftersom av okända anledningar, standardinitramfs för Ubuntu ISO vill inte se bilden om den finns på partitionen med den beskrivna FS) och direkta händer. Lägg till följande rader i filen /etc/grub.d/40_custom:

Menypost "Ubuntu 12.10 i386 iso" ( insmod part_msdos insmod fat # Installera roten där vi får ISO-uppsättningen root="hd0,msdos7" # Sökväg till bilden i förhållande till ovanstående rotuppsättning isofile=/ubuntu-12.10-desktop- i386.iso # Montera som en loopback-enhet direkt i Grub loopback loop $isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt -- initrd (loop)/casper/initrd.lz )

och kör kommandot för att uppdatera huvudkonfigurationen för Grub:

$ sudo update grub

Nu, även vid allvarlig skada på systemet - såvida inte starthanteraren och dess filer påverkas, kan du alltid starta från en ISO-avbild och ändra skadade filer eller återgå till ett tidigare systemtillstånd.


INFO

Om du arbetar i en chroot-miljö som root, så finns det en möjlighet att fly därifrån. Ett sätt är att använda systemanropet mknod() och sedan montera den riktiga roten. Att installera grsecurity patchset löser detta problem.

Btrfs-kommandon har standard- och förkortade former. Till exempel kan kommandot "btrfs undervolym ögonblicksbild" skrivas som "btrfs su sn".

Så låt oss säga att du tappade systemet och du måste återställa det från en Btrfs-ögonblicksbild. För att göra detta, starta från denna ISO-avbild, montera partitionen som du tappade systemet på - exakt partitionen, inte undervolymen! - och skriv in följande kommandon (naturligtvis justerat för dina ögonblicksbilder och partitioner):

# cd /mnt/sda11 # mv @ @_badroot # mv @snapshots/201302011434/rootsnap @

Detsamma, om nödvändigt, gör vi med @home och startar om. Om allt gick bra kan du ta bort @_badroot:

$ sudo btrfs subvol del @_badroot

Slutsats

På *nix-system finns det många sätt att skydda dig mot eller mildra dåliga experiment. Jag har recenserat några av dem. Det är dock värt att notera att alla dessa metoder är främst avsedda för experimenterande som gillar att gräva djupare in i systemet. De är inte lämpliga för att fånga skadlig programvara – de är lätta nog att upptäcka, även om de säkerligen ger en viss nivå av säkerhet.

btrfs(ibland uttalas smör fs) är ett nytt gratis filsystem som utvecklas med stöd av Oracle. Distribueras under GPL-licensen. Trots att utvecklingen fortfarande är långt ifrån klar, den 9 januari 2009, integrerades filsystemet i Linux kärna, och är tillgänglig i Debian Squueze.

Även om Btrfs inkluderades i 2.6.29-kärnan, säger utvecklarna att "med början från 2.6.31-kärnan planerar vi bara att göra diskändringsformatet kompatibelt hädanefter." Utvecklarna vill fortfarande förbättra användar-/hanteringsverktygen för att göra dem mer användarvänliga. För att få ytterligare information om Btrfs, på länken i avsnitt.

Ext2/3/4 kan omvandlas till Btrfs (men inte vice versa).

Status

Debian Squeeze och nyare versioner stöder Btrfs.

FAQ

Vilket paket innehåller verktyg för btrfs?

btrfs-tools (i DebianSqueeze och högre)

Se även: Btrfs wiki FAQ

Exempelkommandon för att arbeta med btrfs

Skapa ett filsystem:

mkfs.btrfs

Hantera volymer, delvolymer, ögonblicksbilder; kontrollera filsystemets integritet:

btrfsctl

Skanna efter btrfs filsystem:

btrfsctl -a btrfsctl -A /dev/sda2

Skapa ögonblicksbilder och undervolymer:

montera -t btrfs -o subvol=. /dev/sda2 /mnt btrfsctl -s new_subvol_name /mnt btrfsctl -s snapshot_of_default /mnt/default btrfsctl -s ögonblicksbild_av_ny_subvol /mnt/new_subvol_namn btrfsctl_of_new_snapshot_ofn_s_snapshot_ofn_s_snapshot subvol ls /mnt

Kontrollera filsystemets omfattningsträd:

btrfsck

Mata ut metadata i textform:

debug-tree debug-tree /dev/sda2 >& big_output_file

Visa btrfs-filsystem på hårddisken:

btrfs-show /dev/sda*

Defragmentera (krävs inte som standard):

# btrfs filsystem defragmentera /mnt eller # btrfs filsystem defragmentera /mnt/file.iso

Konvertera ett ext3-filsystem till btrfs

Ext3-filsystemet kan omvandlas till btrfs och arbeta vidare med det som ett nytt filsystem. Dessutom kommer tillståndet för det ursprungliga ext3-filsystemet att bli tillgängligt senare.

# Kör alltid fsck först %# fsck.ext3 -f /dev/xxx # Konvertera från Ext3->Btrfs %# btrfs-convert /dev/xxx # Montera det resulterande Btrfs-filsystemet %# mount -t btrfs /dev/xxx /btrfs # Montera ext3-ögonblicksbilden %# mount -t btrfs -o subvol=ext2_saved /dev/xxx /ext2_saved # Loopback-montera bildfilen %# mount -t ext3 -o loop,ro /ext2_saved/image /ext3

Katalogen /ext3 visar nu tillståndet för det ursprungliga filsystemet.

Avmontering sker i omvänd ordning:

% # umount /ext3 % # umount /ext2_saved % # umount /btrfs

Du kan återgå till ett ext3-filsystem och förlora dina ändringar:

% # btrfs-convert -r /dev/xxx

Eller så kan du stanna på btrfs och ta bort den sparade ext3 filsystembilden:

% # rm /ext2_saved/image

Notera: det nya filsystemet har ibland en mycket stor metadatastorlek efter konvertering.

Visa metadatastorlek:

# btrfs filsystem df /mnt/data1tb/

Normalisera deras storlek:

btrfs fi balans /mnt/btrfs

Läs mer: Konvertering från ext3 (engelska) och Konvertering av ext3fs till btrfs (ryska)

Ändra storlek på filsystemet och partitionerna

För btrfs, online (i farten) storleksändring av filsystemet är tillgänglig. Först måste du montera önskat avsnitt:

# mount -t btrfs /dev/xxx /mnt

Lägger till 2 GB:

# btrfs filsystem ändra storlek +2G /mnt eller # btrfsctl -r +2g /mnt

Minska med 4 GB:

# btrfs filsystem ändra storlek -4g /mnt eller # btrfsctl -r -4g /mnt

Ställ in storleken på 20 GB filsystem:

# btrfsctl -r 20g /mnt eller # btrfs filsystem ändra storlek 20g /mnt

Använder allt ledigt utrymme:

# btrfs filsystem ändra storlek max /mnt eller # btrfsctl -r max /mnt

Ovanstående kommandon är endast giltiga för filsystemet. För att ändra storlek på en partition måste du använda andra verktyg som fdisk. Tänk på ett exempel för att minska en partition med 4 GB. Montera och reducera partitionen:

# mount -t btrfs /dev/xxx /mnt # btrfsctl -r -4g /mnt

Avmontera nu partitionen och använd fdisk:

# umount /mnt fdisk /dev/xxx # där dev/xxx är HDD med den sektion vi behöver

Original: Hur man skapar och använder BTRFS ögonblicksbilder - Handledning
Författare: Igor Ljubuncic
Publiceringsdatum: 25 februari 2012
Översättning: A. Krivoshey
Överföringsdatum: april 2012

BTRFS är ett relativt nytt filsystem baserat på Suns ZFS, som förde mest innovation till Unix under de senaste 25 åren innan det togs över av Oracle. BTRFS anses fortfarande vara instabilt och därför inte lämpligt för produktionsapplikationer. Det här filsystemet har dock många användbara funktioner som är värda att utforska. En av dem är skapandet av ögonblicksbilder av systemet.
Låt mig förtydliga. Ögonblicksbilder är ögonblicksbilder av ett systems tillstånd. På sätt och vis, om du kopierar en fil och gör en säkerhetskopia, tar du en ögonblicksbild av den vid tidpunkten för kopieringen. Detta kan göras var som helst och när som helst. Tänk på ett filsystem som faktiskt kan hantera flera kopior av dina filer inom sin struktur, och låter dig använda dem hur du vill. Låter intressant, låt oss undersöka.

BTRFS introduktion

Innan vi börjar gräva djupare vill jag kort beskriva funktionerna i detta filsystem. BTRFS bör hantera alla systemoperationer relaterade till diskar och filhantering, som vanligtvis kräver ytterligare verktyg. BTRFS tillhandahåller defragmentering, lastbalansering, krympning, växande, hot swapping, RAID, ögonblicksbilder, komprimering, kloning och mer, allt inbyggt i filsystemdrivrutinen. Med andra filsystem kommer du sannolikt att behöva en mängd andra drivrutiner och användarverktyg för att hantera alla dessa typer av operationer, såsom en filsystemsdefragmenterare, RAID- och LVM-drivrutiner och så vidare.
Inbyggd funktionalitet betyder prestanda och användarvänlighet. Men för närvarande är BTRFS ännu inte fullt användbar på grund av instabilitet och prestandaförsämring jämfört med andra filsystem som Ext4. Men den har en enorm potential, så den kan inte ignoreras, utan måste studeras.
I den här guiden kommer jag att visa dig hur du hanterar ögonblicksbilder. Detta är en superrelevant funktion som gör att du kan skapa säkerhetskopior viktiga filer innan du gör några ändringar i dem och återställ dem vid behov. På ett sätt är det som Windows Systemåterställning plus en återställningsdrivrutin på filsystemnivå. Förresten, förutom ögonblicksbilder, i den här artikeln kan du också hitta några användbar information om det dagliga arbetet med filsystemet BTRFS. Testning gjordes på ett Fedora 16 Verne-system med ett KDE-skrivbord.

Hur man hanterar BTRFS

Du kan använda BTRFS för rotfilsystemet, med undantag för /boot, som måste formateras med ett traditionellt journalfilsystem. För enkelhetens skull kommer vi i den här guiden att arbeta med en separat enhet /dev/sdb1 formaterad i BTRFS och använd vid behov. I praktiken kan detta vara /home eller /data, eller vad som helst.

Vad ska vi göra?

Vi tar /dev/sdb1 och monterar den. Sedan kommer vi att skapa några underavdelningar. Tänk på undersektioner som virtuella rotade träd, eftersom var och en av dem är en separat, oberoende träddatastruktur, även om data är densamma.
Nedan är sekvensen av kommandon som krävs för detta. Var inte rädd, vi ska förklara hur de fungerar.

$ btrfs undervolym skapa /mnt/data $ btrfs undervolym skapa /mnt/data/orig $ echo "Dedoimedo är l33t" > /mnt/data/orig/fil $ btrfs undervolym ögonblicksbild /mnt/data/orig /mnt/data/backup

/dev/sdb1 är monterad på /mnt. Vi skapar en undernyckel som heter data. Inuti den skapar vi ett annat underavsnitt som heter orig. Och redan inuti den kommer våra filer att skapas. Ur användarens synvinkel ser undersektioner ut som vanliga kataloger. Data och data/orig är med andra ord kataloger.
Därefter skapar vi en textfil i ursprunget som kallas fil som innehåller lite text. Slutligen skapar vi en ögonblicksbild av den ursprungliga undernyckeln och kallar den backup. Vi har nu en identisk kopia av det ursprungliga underavsnittet. Här är beviset:

Dessutom använder vi kommandot för att kontrollera btrfs undervolymlista för att se alla underavsnitt:

$ btrfs undervolymlista

Observera att varje underavdelning har sitt eget ID-nummer. Som vi snart kommer att se är detta viktigt.

Standardläget

För närvarande visar /mnt både original och backup som standard (allt i data). Vi kan ändra det. Kommer du ihåg att jag tidigare nämnde virtuella rotträdstrukturer? BTRFS låter dig ändra den virtuella rotkatalogen till någon av undernycklarna.
Att använda undersektioner och ögonblicksbilder innebär alltså helt enkelt att växla mellan olika datahierarkier. Du behöver inte ta bort, skriva över filer eller göra något annat. Du byter bara till en annan underavdelning. Vi ska nu se hur detta går till.
Team btrfs undervolym set-standard IDär allt vi behöver. Vi kommer att ställa in standardvyn till en annan partition, sedan avmontera enheten och montera den igen. Det är viktigt!
Nu, om du arbetar på ett filsystem som inte kan avmonteras eftersom det används, såsom /usr eller /etc, måste du starta om datorn för att ändringarna ska träda i kraft. Nu kommer ytterligare ett underavsnitt att visas i det givna katalogträdet. Användaren kommer inte att märka skillnaden, men data i katalogerna kommer att ändras.
För att verkligen se hur detta fungerar kommer vi att redigera filfilen i säkerhetskopian. Byt ut texten Dedoimedo är l33t med Dedoimedo är INTE l33t.

$ echo "Dedoimedo är INTE l33t" > /mnt/data/backup/file

Okej, vi känner till ID för alla underavdelningar. Därför kommer vi att montera ID:t som standardvy. Det betyder att så snart du monterar om /mnt kommer vi att se en fil med detta innehåll här.

$ btrfs undervolym set-default 257 /mnt $ umount /mnt $ mount /dev/sdb1 /mnt

Låt oss nu lägga tillbaka allt:

Detta kan göras så många gånger som behövs:

Ovan ändrade vi vyn mellan 257 och 260, det vill säga mellan ursprung och säkerhetskopiering, som ett resultat av detta kunde vi se innehållet i den modifierade filen. Vi visade helt enkelt användaren olika underavdelningar.
Som ett resultat, om vi vill se både ursprung och säkerhetskopia i datakatalogen, måste vi återställa standardvyn för undersektionen på översta nivån, det vill säga data. Observera att all data visas i /mnt-katalogen, eftersom vi valde den som monteringspunkt. Du kan dock använda vilken annan katalog som helst istället.

Slutsats

Snapshot-funktionen i BTRFS är implementerad ganska snyggt, och dess användning är inte svår. Naturligtvis måste du vara noga med att använda rätt dataträd och inte blanda ihop saker. Men nu känner du redan till de grundläggande BTRFS-kommandona och kan agera mer självsäkert. I framtiden kommer vi att testa Snapper, ett BTRFS-gränssnitt tillgängligt från openSUSE som gör att samma funktionalitet kan implementeras via ett grafiskt användargränssnitt för de som inte gillar kommandoraden.

Som en nörd har jag fortfarande för vana att ständigt experimentera med systemet: bygga om, installera icke-stabila RC-kärnor, inklusive experimentella uppdateringsgrenar. Ofta skulle jag till och med säga att jag bryter systemet för ofta (mitt personbästa, 2 veckor utan att installera om).

Vad betyder bryta? När något fungerar extremt dåligt, till exempel LibreOffice och Compiz som ofta kraschar och gillar att frysa, försöker jag antingen konfigurera om systemet, men det här är ganska långt och trist.

Exakt vad jag menar.

Om någon, som jag, gillar att experimentera med systemet och är trött på att återställa det varje gång, så här är ett alternativ för dig hur jag löste det här problemet för mig själv. Jag kommer att gå under katten.

How-to eller vanlig cykel.

Punkt 1: LiveCD

Post factum utgår vi från det faktum att disken är uppdelad i 2 partitioner: /boot formaterad i ext4 och / formaterad i btrfs.
Grub 2 skrivs i skivans MBR.
Följaktligen, första stycket:
Från personliga vanor och överväganden är det mycket lättare att återställa systemet från det grafiska gränssnittet än att beundra den svarta skärmen och ibland utan tillgång till Internet, komma ihåg och ordinera kommandon. Nej, jag tycker inte att konsolen är ond, jag älskar konsolen, men hur som helst, den är trevligare från det grafiska gränssnittet.
Akt ett
Idén är inte ny, jag erkänner att den dök upp någonstans på Habré, men jag hittade inte länken, så jag ber om ursäkt till källan till publiceringen.
Kopiera bilden av önskad Live-distro till mappen /boot
sudo cp /media/timofey/boot/grub/ISO/Linux/Ubuntu/ubuntu-12.10-desktop-amd64.iso /boot/ubuntu-12.10-desktop-amd64.iso
/boot flyttas till en separat partition, inte för att det är bättre, utan för att LiveCD-skivor skrivna till btrfs från under grub 2 inte laddas av orsaker som är okända för mig.
Nu fixar vi grub-inställningar 2 som standard, så att när du uppdaterar grub "a, förlora inte bilden.
sudo nano /etc/grub.d/40_custom

Och klistra in något sånt här efter kommentarerna:
menypost "Ubuntu 12.10 amd64" (set isofile=/ubuntu-12.10-desktop-amd64.iso loopback loop $isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofil noeject noprompt -- initrd (loop )/casper/initrd.lz )

Egentligen konfigurerades det i bilden och likheten (officiell ubuntu-wiki):
/Grub2/ISOBoot
Nu "nästan" det viktigaste, vi återskapar konfigurationen:

sudo update-grub

Allt, nu efter omstarten, genom att hålla nere shift-tangenten, kan vi starta minisystemet med Internet och GUI, oavsett tillståndet i det underliggande systemet.

Punkt 2: Bilder

Jag tror att varje person som har varit bekant med Linux under lång tid åtminstone har hört talas om btrfs, kanske till och med att han redan har bildat sig en egen uppfattning. På installerar ubuntu på en partition med btrfs som standard görs det mycket klokt, underpartitionsmekanismen används och 2 undersektioner skapas, dessa är @ och home (som jag ersätter / och / home) respektive när jag installerar om systemet korrekt kommer vi inte att förlora konfigurationerna. Men nu handlar det inte om det. Hur använder man denna oro för slutanvändare? Väldigt enkelt.

Lite bakgrund:
Det var ursprungligen planerat att köra skriptet genom rc.local, men det kördes inte, sedan implementerades det genom dagliga cron, senare besegrade jag rc.local och stängde av ögonblicksbilder åt helvete i cron.

Skriptkod:

#!/bin/bash #Detta skript för att automatiskt skapa ögonblicksbild vid start #Version 1.2.9 set -e DATA="$(datum +%g%m%d%k%M%S)" VOLUME=/dev/sda1 [ ! -d "/tmp/$DATA/" ] && sudo mkdir "/tmp/$DATA/" montera $VOLUME "/tmp/$DATA/" && ( [ ! -d "/tmp/$DATA/snapshots/" ] && sudo mkdir "/tmp/$DATA/snapshots/" mkdir "/tmp/$DATA/snapshots/$DATA/" && cd "/tmp/$DATA/" btrfs undervolym ögonblicksbild ./@ ."/snapshots/$DATA /@_$(DATA)/" btrfs undervolym ögonblicksbild ./@home ."/snapshots/$DATA/@home_$(DATA)/" [ ! -f ./snapshots/snapshots.log ] && peka på ./snapshots/ snapshots.log chmod 777 ./snapshots/snapshots.log echo on_startup_$(datum +%X_%x) >> ./snapshots/snapshots.log umount -l "/tmp/$DATA/" && sudo rmdir "/tmp/ $DATA/" )

Den finns på /etc/btrfs_snapshot_onstartup
Lägg till den i /etc/rc.local och ge körrättigheter till båda filerna via sudo chmod +x "filsökväg"
Körningsloggningen till filen ./snapshots/snapshots.log kanske inte fungerar, då måste du skapa den manuellt under roträttigheter. Efter omstarten kommer han själv att få de nödvändiga rättigheterna.

Vi kan när som helst se status för systemögonblicksbilder genom att skriva:
cat /var/log/snapshots.log

Alla ögonblicksbilder läggs till partitionen med systemet i mappen ögonblicksbilder, där en mapp skapas för varje lyckad systemstart.
Vissa kanske säger att det inte lönar sig att ta ögonblicksbilder vid start. Inte alls, det motiverar, på en dag kan jag göra en massa ändringar i systemet och starta om det hundra gånger, och i alternativa fall kommer jag inte att kunna återvända till ögonblicket för en lyckad lansering (faktisk), men bara en dag sedan.

Möjlighet att starta manuellt:
#!/bin/bash #Detta skript för att automatiskt skapa ögonblicksbild #Version 1.2.8 set -e DATA=$(datum +%g%m%d%k%M%S) ########### ######################## [ ! -d /tmp/$DATA/ ] && sudo mkdir /tmp/$DATA/ sudo mount /dev/sda2 /tmp/$DATA/ && ( ################## ############################################### # [ ! -d /tmp/$DATA/snapshots/ ] && mkdir /tmp/$DATA/snapshots/ mkdir /tmp/$DATA/snapshots/$DATA/ cd /tmp/$DATA/ sudo btrfs undervolym ögonblicksbild ./@ . /snapshots/$DATA/@_$(DATA)/ sudo btrfs undervolym ögonblicksbild ./@home ./snapshots/$DATA/@home_$(DATA)/ ############## # ############################################### ## ### sudo chmod 777 ./snapshots/snapshots.log sudo echo this.hands_$(datum +%X_%x) >> ./snapshots/snapshots.log sudo cat ./snapshots/snapshots.log sov 1 sudo umount - l /tmp/$DATA/ && sudo rmdir /tmp/$DATA/ ############################## # ############################### sudo btrfs filsystem df / #information om fs ) read exit 0

Punkt 3: Återhämtning

Det var det de försökte, de dödade systemet, vad ska man göra?
Starta från LiveCD, montera systempartition, till en mapp som är lämplig för oss.
Sedan, om det behövs, dölj eller ta bort standardundervolymerna @ och hem.
och ersätt den saknade med den nödvändiga ögonblicksbilden.
I de flesta fall räcker det att ersätta @.
nazarpc
Också, ögonblicksbilder tillåter inte bara att rulla tillbaka till ett visst tillstånd av systemet, utan också att extrahera den nödvändiga filen eller konfigurationen från den, vilket också ger en viss frihet när du tar bort filer av okänt ursprung.

Punkt 4: Städning

Ögonblicksbilder tar inte mycket plats, men med tiden kan en stor mängd skräp samlas på skivan på grund av dem. Här är ett skript för att automatiskt rensa upp ögonblicksbildsmappar. Detta tar bort alla ögonblicksbilder av systemet

#!/bin/bash #Version 0.0.9 set -e DATA=$(datum +%g%m%d%k%M%S) [ ! -d "/tmp/$DATA" ] && sudo mkdir "/tmp/$DATA" sudo mount /dev/sda1 "/tmp/$DATA" && ( cd "/tmp/$DATA/snapshots/" för i in * /* do sudo btrfs undervolym radera "$i" gjort för i in * do sudo rmdir -v "$i" klar echo cleanup_$(datum +%g%m%d%k%M%S) > "./snapshots .log" sudo cp "./snapshots.log" "/var/log/snapshots.log" sudo umount -l "/tmp/$DATA" && sudo rmdir "/tmp/$DATA" ) read exit 0

Resultat

Vi har gjort det relativt feltolerant system, där vi har möjlighet att snabbt återställa systemet efter ett fel. Samtidigt, spendera ett minimum av tid och ansträngning på att bygga ett skyddssystem.
Mina egna tankar om detta
Jag tror att en sådan lösning är osannolikt att vara användbar i stora IT-strukturer, men för små hemmabruk borde den vara idealisk.

Det skulle också vara coolt att avsluta rengöringsskriptet så att det rensar upp alla ögonblicksbilder som är äldre än till exempel veckor, och inte alla tillgängliga, jag försökte ärligt talat, men det fungerade inte för mig. Sedan skulle den också kunna köras till exempel in i cron som standard, att köras en gång om dagen, och sedan inkluderas i det officiella btrfs installationsskriptet, jag tror med mindre modifieringar, detta är en ganska universell lösning, baserat på standardfunktioner btrfs.

Ja, jag vet lvm, men jag behöver inte ett extra lager av abstraktion från hårdvara och att sätta bilder på ett separat avsnitt är inte heller comme il faut.

UPD 1:
Tack vare användarna

Att flytta till ett nytt filsystem är alltid en svår uppgift. Vi litar redan på det gamla, beprövade filsystemet. Det kan till och med ha vissa begränsningar i funktionalitet och prestanda, men det har aldrig svikit oss. De nya filsystemen erbjuder mycket Ett stort antal funktioner, men frågan uppstår, kan man lita på dem?

Ett sådant filsystem är Btrfs. Detta är ett relativt nytt filsystem som dök upp 2007 och utvecklades av Oracle. Det erbjuder ett mycket brett utbud av nya funktioner och är därför av stort intresse för användare, men det finns fortfarande rykten på nätet om att detta filsystem ännu inte är lämpligt för permanent användning. I den här artikeln kommer vi att försöka ta reda på vilka möjligheter Btrfs ger oss, och även om det redan kan användas.

Btrfs utvecklades som sagt av Oracle 2007. Det finns ingen enskild avkodning av namnet, vissa säger att det betyder B-träd FS, andra Bättre Fs. Precis som i andra filsystem lagras all data på disken på specifika adresser. Dessa adresser lagras i metadata. Och det är här skillnaderna börjar. All metadata är organiserad som b-träd. Detta ger bättre prestanda när du arbetar med filsystemet, och låter dig även lägga till ett obegränsat antal filer.

Men inte ens det är allt. När du skriver över en fil skrivs inte data över, utan bara den modifierade delen kopieras till den nya platsen, sedan uppdateras metadatan helt enkelt. Detta gör att du kan skapa ögonblicksbilder av filsystemet som inte tar upp diskutrymme förrän många ändringar har gjorts. Om det gamla blocket inte längre behövs eftersom det inte är en del av någon ögonblicksbild, så raderas det automatiskt.

Btrfs har på grund av sin struktur en hel del möjligheter, till exempel kan den hantera dagens mycket stora lagringsmedia. Den maximala filsystemets storlek är 16 exabyte. Allt detta är möjligt tack vare korrekt användning av diskutrymme. Andra filsystem använder hela hårddisken, från början till slut, för att registrera sin struktur.

Btrfs gör saker annorlunda. Varje disk, oavsett dess storlek, är uppdelad i block om 1 GB för data och 256 MB för metadata. Dessa block sätts sedan ihop i grupper som var och en kan lagras på olika enheter, kan antalet sådana block i en grupp bero på RAID-nivå för gruppen. Volymhanteraren är redan integrerad i filsystemet, så ingen ytterligare programvara behöver användas.

Dataskydd och komprimering stöds även på filsystemsnivå, så här behöver du inte heller ytterligare program. Filsystemet btrfs stöder även dataspegling över flera medier. Här är andra funktioner i btrfs som kan nämnas:

  • Stöd för ögonblicksbilder av filsystemet, skrivskyddat eller skrivskyddat;
  • Kontrollsummor för data och metadata med hjälp av crc32-algoritmen. På så sätt kan eventuella skador på blocket fastställas mycket snabbt;
  • Kompression med Zlib och Lzo;
  • Optimerat för att arbeta med SSD, filsystemet känner automatiskt av ssd och börjar bete sig annorlunda;
  • Bakgrundsprocess för feldetektering och korrigering, samt realtidsdefragmentering och deduplicering;
  • Stöder konvertering från ext4 och ext3 och vice versa.

Allt detta är mycket bra, men är det möjligt att använda det här filsystemet redan? Låt oss försöka hantera detta.

Är btrfs redo att användas?

Det finns fortfarande många missuppfattningar kring Btrfs. Många av dem härrör från verkliga problem som var i början av utvecklingen av filsystemet. Men folk som tittar på denna information tittar inte på dess datum. Ja Btrfs var verkligen instabil och instabil. Det fanns många problem med dataförlust och många användare skrev om det, men det var redan 2010.

Den viktigaste delen av ett filsystem är dess lagringsformat på disk. Men formatet på Btrfs-filsystemet är redan fixat, det hände redan 2012 och det ändras inte längre om det inte är absolut nödvändigt. Bara detta är tillräckligt för att känna igen stabiliteten hos btrfs.

Men varför anses Btrfs av många vara instabila? Det finns flera anledningar till detta. För det första är det användarnas rädsla för ny teknik. Detta var inte bara i Linux, utan också i Microsoft, med deras övergång till NTFS, och i Apple. Men det finns en paradox här, XFS-filsystemet har gått igenom 20 år av stabil utveckling, men det mest stabila filsystemet är ext4, som utvecklades från en gaffel av ext3 2006. Faktum är att den är ett år äldre än Btrfs.

Det andra skälet är i aktiv utveckling, även om datalagringsformatet är fruset, är huvudkodbasen fortfarande aktivt utvecklad och det finns fortfarande mycket utrymme för prestandaförbättringar och nya funktioner.

Men det finns redan många bekräftelser på att filsystemet är klart. Detta filsystem används på Facebooks servrar, där företaget lagrar sin känsliga data. Och det i sig är en viktig faktor. Företag som Facebook, SuSE, RedHat, Oracle, Intel och andra arbetar med att förbättra filsystemet. Detta filsystem har använts som standard i SUSE Linux Enterprise sedan release 12. Alla dessa faktorer tillsammans bevisar att filsystemet är ganska klart att använda. Och med tanke på funktionaliteten och funktionerna hos btrfs kan den redan användas.

Btrfs-användning

Varför det är värt att använda Btrfs och om det är värt det alls, kom på det. Nu skulle jag vilja visa lite övning så att du kan utvärdera detta filsystem i aktion. Jag kommer att ge exempel baserade på Ubuntu. Installera först filsystemhanteringsverktygen:

sudo apt installera btrfs-tools

Skapa ett btrfs-filsystem

Först måste du skapa ett filsystem. Låt oss säga att vi har två hårddiskar/dev/sdb och /dev/sdc vill vi skapa ett enda filsystem på dem med dataspegling. För att göra detta, gör bara:

sudo mkfs.btrfs /dev/sdb /dev/sdc

Standard är RAID0 för data (ingen redundans och RAID1 för metadata (duplicera till en enda disk). När du använder en enda disk dupliceras även metadata, om du vill inaktivera detta beteende kan du använda -m singeln alternativ:

sudo mkfs.btrfs -m singel /dev/sdb

Men genom att göra detta ökar du risken för dataförlust, för om metadatan går förlorad så är även datan det.

Du kan visa information om det nyskapade filsystemet med kommandot:

sudo btrfs filsystem visa /dev/sdb

Eller om alla monterade filsystem:

sudo btrfs filsystem show

btrfs-fäste

För att montera, använd det vanliga kommandot:

sudo mount /dev/sdb /mnt

Du kan montera vilken som helst av enheterna, det kommer att ha samma effekt. Raden i /etc/fstab kommer att se ut så här:

/dev/sdb /mnt btrfs standardvärden 0 1

Nu tittar vi på information om upptaget diskutrymme:

sudo btrfs filsystem df /mnt

Kompression i btrfs

För att aktivera komprimering, lägg bara till komprimeringsalternativet vid montering. Du kan skicka lzo- eller zlib-algoritmen till den:

sudo mount -o compress=lzo /dev/sdb /mnt
$ sudo mount -o compress=zlib /dev/sdb /mnt

Återställer btrfs

För att återställa en skadad Btrfs, använd alternativet för återställningsmontering:

sudo mount -o återställning /dev/sdb /mnt

Ändring av storlek

Du kan ändra storlek på en volym i realtid med kommandot resize:

sudo btrfs filsystem ändra storlek -2g /mnt

Minska storleken med 2 gigabyte. Öka sedan med 1 gigabyte:

sudo btrfs filsystem ändra storlek +1g /mnt

Skapa delvolymer

Du kan skapa logiska partitioner, undervolymer inuti huvudpartitionen med Btrfs. De kan monteras inuti huvudpartitionen:

sudo btrfs undervolym skapa /mnt/sv1
$ sudo btrfs undervolym skapa /mnt/sv2
$ sudo btrfs undervolymlista /mnt

Montering av undervolymer

Du kan montera undervolymen med det id du fick med det senaste kommandot:

sudo umount /dev/sdb

sudo mount -o subvolid=258 /dev/sdb /mnt

Eller så kan du använda namnet:

sudo mount -o subvol=sv1 /dev/sdb /mnt

Ta bort undervolymer

Montera först btrfs-roten istället för undervolymen:

sudo umount /mnt

sudo mount /dev/sdb /mnt/

För att ta bort en undervolym kan du använda monteringsvägen, till exempel:

sudo btrfs undervolym radera /mnt/sv1/

Ta ögonblicksbilder

Filsystem Btrfs låter dig skapa ögonblicksbilder av ändringar. Snapshot-kommandot används för detta. Låt oss till exempel skapa en fil och sedan ta en ögonblicksbild:

tryck på /mnt/sv1/test1 /mnt/sv1/test2

Skapa en ögonblicksbild:

sudo btrfs undervolym ögonblicksbild /mnt/sv1 /mnt/sv1_snapshot

Om du upptäcker ett fel, välj en textbit och tryck på Ctrl + Retur
DELA MED SIG: