Handledning: Loop File Systems

Vad är ett loop-filsystem?

Gnu/Linux (och de allra flesta unix-system) har en mekanism som tillåter montering av en fil (tidigare formaterad) som om den vore en hårddisk, vanligtvis utan partitionstabell. Det här taskiga diagrammet (gjord av mig) förklarar hur den här mekanismen fungerar.

Flödesschema som förklarar (grosso modo) driften av loops-filer i GNU/linux.

**Representerar inte helt den faktiska driften.

Användning av loop-filer

1- Montera .iso-filer

.iso-filerna, den grundläggande standarden på CD- och DVD-skivor, är inget annat än en loop-fil vars filsystem kan ISO 9960 (vanligare på CD-skivor) eller UDF (vanligare på DVD-skivor). För att montera den använder vi kommandot mount.

mkdir iso # skapa katalogen chmod -R 666 iso # ge alla användare läsbehörighet montera image.iso iso/ # montera iso-bilden (kräver root)

Begränsningen du har är att båda filsystemen av uppenbara skäl är skrivskyddade.

2- Skrivskyddade squashfs

Anta att vi har en mapp med bilder och/eller videor som är organiserad efter vilket år den togs. Uppenbarligen är det ganska osannolikt att vi vill ändra data som finns i mappar från tidigare år. Det är där Squashfs kommer in i bilden. Squashfs är ett skrivskyddat komprimerat filsystem, så när bilden är gjord, Vi kommer inte att kunna ändra data inuti.

Så inte ensam vi kommer att spara enorma mängder utrymme, men den märkliga effekten kommer också att inträffa att läsa filerna går snabbare, genom att behöva läsa mindre filer, eftersom att dekomprimera en fil numera är en minimal ansträngning för de flesta processorer.

Om vi ​​lämnar ingressen åt sidan, för att skapa squashfs-bilden måste vi använda kommandot mksquashfs, vars syntax är enkel:

mksquashfs directorio 1 [directorio 2 directorio 3...] imagen.sqsfs -comp [algoritmo de compresión] -b [tamaño del bloque ]

Och här ett praktiskt exempel:

mksquashfs fotos-2009 fotos-2010 fotos-2011 fotos-2012 fotos-2013 fotos_2009-2013.sqsfs -comp xz -bs 1M

Tja, den valda algoritmen är xz eftersom det är den som högre kompressionsförhållande erbjudanden (av de tillgängliga), medan den valda blockstorleken är den maximala. som möjliggör bättre kompressionsresultat (standard är 64KiB).

Nu borde vi kunna montera den med en enkel ;

mount fotos_2009-2013.sqsfs fotos_2009-2013/

Efter att ha kontrollerat att allt är korrekt kan vi ta bort originalfilerna eller lämna filen som en säkerhetskopia.

Om vi ​​vill att det ska monteras när operativsystemet startas, måste vi lägga till en rad så här till /etc/fstab:

/dir/loop.sqsh /dir/mountdir squashfs ro,defaults 0 0

Om du anger felaktiga data i filen /etc/fstab kommer systemet att sluta starta. För att se till att allt fungerar korrekt kan vi använda kommandot mount -a

Nu, vad händer när vi vill lägga till eller ta bort filer, eller helt enkelt extrahera dessa ögonblicksbilder? Tja, vi har kommandot kommandot unsquashfs.

unsquashfs [opciones] snapshot.sqfs [Directorios o archivos que extraer]

Som standard kommer den att använda squashfs-root som extraktionskatalog. kan ändras med alternativet -d

Förutom detta exempel används squashfs också i:

  • live-cd
  • inbyggda system
  • servrar
  • I allmänhet alla skrivskyddade system

3-"Nödbyte"

Föreställ dig att du av någon anledning (dvala, massiva sammanställningar...) behöver extra byte. Det är här loopfilen kommer in i spelet, första steget är att göra en tom fil av en viss storlek, med en viss blockstorlek, det gör vi med kommandot dd:

dd if=/dev/zero of=loop bs=1M count=512

dd i fel händer är värre än en apa med ett hagelgevär. tänk efter innan du trycker på enter

I det här fallet är blocket en MiB och filstorleken är 512 MiB. Det behöver inte vara så här.

Vi skapar och aktiverar bytet med detta kommando

mkswap loop && swapon loop

Tänk på att prestandan för en loopfil alltid är något lägre än en riktig fysisk.

4-Gör vad du vill

Detta är bara några av de mest karakteristiska exemplen, experimentera gärna med chroots, krypterade system, kapslade loopsystem... Dess möjligheter är obegränsade. Men var försiktig med kommandona du kör, tänk efter innan du trycker på enter.

Länkar av intresse


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   illukki sade

    Bra inlägg che!! Jag har några gigantiska säkerhetskopior liggandes och det föll mig aldrig in att komprimera dem. Jag ska använda den här och kryptera min externa för att fylla i den och sedan kom jag ihåg att jag skulle kryptera den 🙁

  2.   sieg84 sade

    Intressant att prova squashfs

  3.   Manuel R. sade

    Bra handledning, jag hade läst hur man skapar img-filer med dd och monterar dem, men jag kände inte till användningen av Squashfs och dess komprimering; Även om det inte tillåter dig att ändra dess innehåll, kan det vara användbart i situationer som de du nämner. Tack för att du delar med dig, hälsningar.

  4.   demo sade

    Mycket bra att veta, tack för tipset.

  5.   Joaquin sade

    Man lär sig alltid något nytt. Excellent!

  6.   inte från Brooklyn sade

    Det är roligt, jag visste squashfs och vad det är till för, men det hade aldrig fallit mig in att komprimera mina bilder. Tack för tipset.

  7.   HO2Gi sade

    Imponerande, låt oss prova och se vad som händer. Mycket bra tips

  8.   Robert sade

    utmärkt tutorial!!! =) …mycket bra tips!!!

  9.   hemskt sade

    Hej roader. Mycket intressant artikel, tack för att du delar med dig.

  10.   Essau sade

    i Gentoo behöver du aktivera stöd för SquashFS i kärnan innan du kompilerar den, jag ska prova det och se hur det fungerar. Tack.

    1.    Essau sade

      testade på Gentoo och kompilerade kärnan för det och utmärkt.
      Rätta bara ett litet stavfel, roader.

      I exemplet:

      mksquashfs photos-2009 photos-2010 photos-2011 photos-2012 photos-2013 photos_2009-2013.sqsfs -comp xz -bs 1M

      spara s för "-bs" (som bestämmer storleken på blocket), bör det se ut så här:

      mksquashfs photos-2009 photos-2010 photos-2011 photos-2012 photos-2013 photos_2009-2013.sqsfs -comp xz -b 1M