Zelfstudie: Loop File Systems

Wat is een loop-bestandssysteem?

Gnu / Linux (en de overgrote meerderheid van Unix-systemen) heeft een mechanisme dat het mogelijk maakt om een ​​bestand (eerder geformatteerd) te mounten alsof het een harde schijf is, meestal zonder partitietabel. Dit waardeloze diagram (gemaakt door mij) legt uit hoe dit mechanisme werkt.

Stroomschema dat (ruwweg) de werking van loops-bestanden in GNU / linux uitlegt.

** Geeft niet volledig de werkelijke werking weer.

Maakt gebruik van loop-bestanden

1- Mount.iso-bestanden

De .iso-bestanden, de standaard bij uitstek op cd's en dvd's, is niets meer dan een lusbestand waarvan het bestandssysteem kan worden ISO 9960 (vaker voor op cd's) of UDF (meest gebruikelijk op dvd's). Om het te mounten, zullen we het mount commando gebruiken.

mkdir iso # maak de directory chmod -R 666 iso # geef alle gebruikers toestemming om te lezen mount image. iso iso / # mount de iso image (root vereist)

De beperking die u heeft, is dat, om voor de hand liggende redenen, beide bestandssystemen alleen-lezen zijn.

2- alleen-lezen squashfs

Stel dat we een map met afbeeldingen en / of video's hebben die is geordend op het jaar waarin deze is gemaakt. Het is duidelijk dat het vrij onwaarschijnlijk is dat we de gegevens in mappen van voorgaande jaren willen wijzigen. Dat is waar Squashfs binnenkomt. Squashfs is een alleen-lezen gecomprimeerd bestandssysteem, dus zodra de afbeelding is gemaakt, we kunnen de gegevens binnenin niet wijzigen.

Dus niet alleen we besparen enorm veel ruimte, maar ook het merkwaardige effect dat het lezen van de bestanden gaat sneller, door kleinere bestanden te moeten lezen, aangezien het decomprimeren van een bestand tegenwoordig een minimale inspanning is voor de meeste CPU's.

Om de squashfs-afbeelding te maken, moeten we de opdracht mksquashfs gebruiken, waarvan de syntaxis eenvoudig is:

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

En hier is een praktisch voorbeeld:

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

Welnu, het gekozen algoritme is xz omdat het degene is die hogere compressieverhouding aanbiedingen (van degene die beschikbaar zijn), terwijl de gekozen blokgrootte het maximum is. wat zorgt voor betere compressieresultaten (standaard zijn ze 64KiB).

Nu zouden we het moeten kunnen monteren met een simpele;

mount fotos_2009-2013.sqsfs fotos_2009-2013/

Nadat we hebben gecontroleerd of alles correct is, kunnen we de originele bestanden verwijderen of het bestand als back-up achterlaten.

In het geval dat we willen dat het wordt aangekoppeld wanneer het besturingssysteem start, moeten we een regel van deze stijl toevoegen aan / etc / fstab:

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

Als u onjuiste gegevens invoert in het bestand / etc / fstab, zal het systeem stoppen met opstarten. Om ervoor te zorgen dat alles correct werkt, kunnen we de opdracht gebruiken mount -a

Wat gebeurt er nu als we bestanden willen toevoegen of verwijderen, of deze snapshots gewoon willen extraheren? We hebben het commando het commando unsquashfs.

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

Standaard gebruikt het "squashfs-root" als de extractiemap. kan worden gewijzigd met -d optie

Afgezien van dit voorbeeld wordt squashfs ook gebruikt in:

  • Livecd's
  • Embedded systemen
  • servers
  • Over het algemeen elk alleen-lezen systeem

3- «Emergency swap»

Stel je voor dat je om welke reden dan ook (winterslaap, enorme compilaties ...) een extra ruil nodig hebt. Dit is waar het loop-bestand in het spel komt, de eerste stap is om een ​​leeg bestand van een bepaalde grootte te maken, met een bepaalde blokgrootte, dit doen we met het commando dd:

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

dd in de verkeerde handen is erger dan een aap met een jachtgeweer. Denk na voordat u op enter drukt

In dit geval is het blok één MiB en is de bestandsgrootte 512MiB. Het hoeft niet zo te zijn.

We maken en activeren de swap met dit commando

mkswap loop && swapon loop

Houd er rekening mee dat de prestatie van een lusbestand altijd iets lager is dan die van een echt fysiek bestand.

4-doe wat je wilt

Dit zijn slechts enkele van de meest karakteristieke voorbeelden, voel je vrij om te experimenteren met chroots, encryptiesystemen, geneste loops… Je mogelijkheden zijn eindeloos. Maar wees voorzichtig met de opdrachten die u uitvoert, denk goed na voordat u op enter drukt.

Links van belang


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   illukki zei

    Goede post che !! Ik heb een paar gigantische back-ups en het kwam nooit bij me op om ze te comprimeren. Ik ga dit gebruiken en trouwens, ik codeer mijn externe om het in te vullen en toen herinnerde ik me dat ik het ging coderen 🙁

  2.   sieg84 zei

    Interessant om het squashfs-ding te proberen

  3.   Manuel R. zei

    Goede tutorial, ik had gelezen hoe je img-bestanden met dd kon maken en mounten, maar kende het gebruik van Squashfs en de compressie ervan niet; Hoewel het niet toestaat om de inhoud te wijzigen, kan het gebruik ervan nuttig zijn in situaties zoals die waarin u commentaar geeft. Bedankt voor het delen, groeten.

  4.   demonstratie zei

    Heel goed om te weten, bedankt voor de tip.

  5.   Joaquin zei

    Je leert altijd iets nieuws. Uitstekend!

  6.   niet vanbrooklyn zei

    Het is grappig, ik kende squashfs en waar ze voor zijn, maar het was nooit bij me opgekomen om mijn afbeeldingen te comprimeren. Bedankt voor de tip.

  7.   HO2Gi zei

    Indrukwekkend, om te zien wat er aan de hand is. Zeer goede tip

  8.   Robert zei

    uitstekende tuto !!! =)… Zeer goede tip !!!

  9.   verschrikkelijk zei

    Hallo roader. Zeer interessant artikel, bedankt voor het delen.

  10.   Essau zei

    In Gentoo moet je SquashFS-ondersteuning in de kernel inschakelen voordat je het compileert, ik zal het testen om te zien hoe het werkt. Dank je.

    1.    Essau zei

      getest op Gentoo om de kernel ervoor te compileren en uitstekend.
      Corrigeer gewoon een kleine typefout, roader.

      In het voorbeeld:

      Foto's van mksquashfs-foto's van 2009-foto's van 2010-foto's van 2011-foto's van 2012-foto's van 2013-foto's_2009-2013.sqsfs -comp xz -bs 1M

      spaar de s in "-bs" (wat de grootte van het blok bepaalt), het zou er als volgt uit moeten zien:

      foto's van mksquashfs-foto's van 2009-foto's van 2010-foto's van 2011-foto's van 2012-foto's van 2013-foto's_2009-2013.sqsfs -comp xz -b 1M