Tutorial: Mag-loop ng Mga System ng File

Ano ang isang loop filesystem?

Ang Gnu / Linux (at ang karamihan ng mga unix system) ay may mekanismo na pinapayagan ang pag-mount ng isang file (dating nai-format) na para bang ito ay isang hard disk, karaniwang walang isang table ng pagkahati. Ang crappy diagram na ito (ginawa ko) ay nagpapaliwanag kung paano gumagana ang mekanismong ito.

Flow chart na nagpapaliwanag (halos) ang pagpapatakbo ng mga loop file sa GNU / linux.

** Hindi ganap na kumakatawan sa aktwal na operasyon.

Gumagamit ng mga loop file

1- Mga file ng Mount.iso

Ang .iso na mga file, ang pamantayang kahusayan ng par sa mga CD at DVD, ay hindi hihigit sa isang loop file na ang file system ay maaaring ISO 9960 (mas karaniwan sa mga CD) o UDF (pinakakaraniwan sa mga DVD). Upang mai-mount ito, gagamitin namin ang utos ng mount.

mkdir iso # nilikha namin ang direktoryo chmod -R 666 iso # binibigyan namin ang lahat ng mga gumagamit ng basahin ang pahintulot na mai-mount ang imahe.iso iso / # i-mount namin ang ISO na imahe (nangangailangan ng ugat)

Ang limitasyon na mayroon ka ay na, para sa halatang mga kadahilanan, ang parehong mga file system ay read-only.

2- read-only squashfs

Ipagpalagay na mayroon kaming isang folder ng mga imahe at / o mga video na naayos ayon sa taon kung saan ito nakuha. Malinaw na, malamang na hindi natin nais na baguhin ang data na nilalaman sa mga folder mula sa mga nakaraang taon. Diyan pumapasok ang Squashfs. Ang Squashfs ay isang read-only compressed filesystem, kaya't kapag nagawa ang imahe, hindi namin mababago ang data sa loob.

Kaya, hindi lamang makatipid kami ng malaking halaga ng puwang, ngunit magkakaroon din ng kakaibang epekto na ang pagbasa ng mga file ay magiging mas mabilis, sa pamamagitan ng pagkakaroon ng pagbabasa ng mas maliliit na mga file, dahil sa kasalukuyan ang pag-decompress ng isang file ay isang minimum na pagsisikap para sa karamihan sa mga CPU.

Pag-iwan sa mga paunang salita, upang likhain ang imahe ng squashfs dapat naming gamitin ang utos ng mksquashfs, na ang syntax ay simple:

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

At narito ang isang praktikal na halimbawa:

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

Kaya, ang napiling algorithm ay xz dahil ito ang isa mas mataas na ratio ng compression mga alok (ng mga magagamit), habang ang napiling laki ng block ay ang maximum. Ano ay nagbibigay-daan para sa mas mahusay na mga resulta ng compression (bilang default ang mga ito ay 64KiB).

Ngayon ay dapat nating mai-mount ito sa isang simpleng;

mount fotos_2009-2013.sqsfs fotos_2009-2013/

Matapos suriin na ang lahat ay tama, maaari nating tanggalin ang mga orihinal na file o iwanan ang file bilang isang backup.

Kung sakaling nais naming mai-mount ito kapag nagsimula ang OS, dapat kaming magdagdag ng isang linya ng istilong ito sa / etc / fstab:

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

Ang pagpasok ng maling data sa / etc / fstab file ay magiging sanhi ng paghinto ng system ng pag-boot. Upang matiyak na gumagana ang lahat nang tama, maaari naming gamitin ang utos bundok -a

Ngayon, ano ang mangyayari kapag nais naming magdagdag o magtanggal ng mga file, o kunin lamang ang mga snapshot na ito? Sa gayon, mayroon tayong utos na utos unsquashfs.

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

Bilang default gagamitin nito ang "squashfs-root" bilang direktoryo ng pagkuha. maaaring mapalitan ng -d pagpipilian

Bukod sa halimbawang ito, ginagamit din ang mga kalabasa sa:

  • Mga Livecd
  • Mga naka-embed na system
  • Mga server
  • Sa pangkalahatan, anumang read-only system

3- «Emergency swap»

Isipin na para sa anumang kadahilanan (pagtulog sa panahon ng taglamig, napakalaking pagtitipon ...) kailangan mo ng dagdag na pagpapalit. Dito nag-play ang loop file, ang unang hakbang ay upang gumawa ng isang walang laman na file ng isang tiyak na laki, na may isang tiyak na laki ng block, ginagawa namin ito sa utos DD:

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

Ang dd sa mga maling kamay ay mas masahol kaysa sa isang unggoy na may shotgun. Mag-isip bago pindutin ang enter

Sa kasong ito, ang bloke ay isang MiB at ang laki ng file ay 512MiB. Hindi ito dapat ganito.

Lumilikha kami at nagpapagana ng pagpapalit gamit ang utos na ito

mkswap loop && swapon loop

Tandaan na ang pagganap ng isang loop file ay laging mas mababa kaysa sa isang tunay na pisikal.

4-gawin ang gusto mo

Ito ay ilan lamang sa mga pinaka-katangian na halimbawa, huwag mag-atubiling mag-eksperimento sa mga chroot, system ng pag-encrypt, naka-pugad na mga loop ... Ang iyong mga posibilidad ay walang hanggan. Ngunit, mag-ingat sa mga utos na iyong pinapatakbo, magisip ng mabuti bago pindutin ang enter.

Mga link ng interes


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   illukki dijo

    Magandang post che !! Mayroon akong ilang mga naglalakihang pag-backup doon, at hindi kailanman nangyari sa akin na i-compress ang mga ito. Gagamitin ko ito at sa pamamagitan ng pag-encrypt ko sa aking panlabas upang punan ito at pagkatapos ay naalala ko na i-encrypt ko ito 🙁

  2.   pagkubkob84 dijo

    Kagiliw-giliw na subukan ang bagay na squashfs

  3.   Si Manuel R dijo

    Magandang tutorial, nabasa ko kung paano lumikha ng mga img file na may dd at mai-mount ang mga ito, ngunit hindi ko alam ang paggamit ng Squashfs at ang compression nito; Bagaman hindi pinapayagan ang pagbabago ng nilalaman nito, ang paggamit nito ay maaaring maging kapaki-pakinabang sa mga sitwasyong tulad ng iyong binibigyan ng puna. Salamat sa pagbabahagi, pagbati.

  4.   demo dijo

    Napakagandang malaman, salamat sa Tip.

  5.   Joaquin dijo

    Palaging may natututunan kang bago. Napakahusay!

  6.   hindi mula sabrooklyn dijo

    Nakakatawa, alam ko ang mga squashf at kung para saan ang mga ito, ngunit hindi kailanman nangyari sa akin na i-compress ang aking mga imahe. Salamat sa tip.

  7.   HO2Gi dijo

    Kahanga-hanga, upang subukan ito upang makita kung ano ang nasa itaas. Napakahusay na tip

  8.   Robert dijo

    mahusay tuto !!! =)… Napakagandang tip !!!

  9.   Mapangmata dijo

    Kamusta roader. Napakainteresyong artikulo, salamat sa pagbabahagi.

  10.   Essau dijo

    Sa Gentoo kailangan mong paganahin ang suporta ng SquashFS sa kernel bago ito isulat, susubukan ko ito upang makita kung paano ito gumagana. Salamat.

    1.    Essau dijo

      nasubukan sa Gentoo sa pag-iipon ng kernel para dito at mahusay.
      Itama lang ang isang maliit na typo, roader.

      Sa halimbawa:

      mksquashfs mga larawan-2009 mga larawan-2010 mga larawan-2011 mga larawan-2012 mga larawan-2013 mga larawan_2009-2013.sqsfs -comp xz -bs 1M

      itabi ang s sa "-bs" (na tumutukoy sa laki ng bloke), dapat ganito ang hitsura:

      mksquashfs mga larawan-2009 mga larawan-2010 mga larawan-2011 mga larawan-2012 mga larawan-2013 mga larawan_2009-2013.sqsfs -comp xz -b 1M