教程:循環文件系統

什麼是循環文件系統?

Gnu / Linux(以及絕大多數的unix系統)具有一種機制,可以掛載文件(先前已格式化),就好像它是硬盤一樣,通常沒有分區表。 這個糟糕的圖表(由我製作)解釋了此機制的工作原理。

流程圖(大致)解釋了循環文件如何在GNU / Linux中工作。

**不完全代表實際操作。

循環文件的使用

1- Mount.iso文件

.iso文件是CD和DVD上的標準功能,它不過是一個循環文件,其文件系統可以是 品質政策 ISO 9960 (在CD上更常見)或 UDF (最常見於DVD)。 要安裝它,我們將使用mount命令。

mkdir iso#創建目錄chmod -R 666 iso#授予所有用戶讀取權限mount image.iso iso /#安裝iso映像(需要root)

由於明顯的原因,您的限制是兩個文件系統都是只讀的。

2個只讀squashfs

假設我們有一個圖像和/或視頻的文件夾,該文件夾是根據拍攝的年份組織的。 顯然,我們不太可能想要修改以前年份的文件夾中包含的數據。 那就是Squashfs進來的地方。 Squashfs是只讀的壓縮文件系統,因此一旦創建映像, 我們將無法修改其中的數據。

因此,不僅 我們將節省大量空間,但也有奇怪的效果 文件的讀取將更快,因為必須讀取較小的文件,所以從今天開始,解壓縮文件對於大多數CPU來說都是最小的工作。

離開序言,要創建squashfs映像,我們必須使用mksquashfs命令,該命令的語法很簡單:

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

這是一個實際的例子:

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

好吧,選擇的算法是xz,因為它是 更高的壓縮比 提供(可用的),而所選的塊大小最大。 什麼 可獲得更好的壓縮效果 (默認情況下為64KiB)。

現在,我們應該可以通過簡單的方式安裝它了;

mount fotos_2009-2013.sqsfs fotos_2009-2013/

檢查完所有內容後,我們可以刪除原始文件或將其保留為備份。

如果我們希望在操作系統啟動時將其掛載,則必須在/ etc / fstab中添加以下樣式的行:

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

在/ etc / fstab文件中輸入錯誤的數據將導致系統停止引導。 為了確保一切正常,我們可以使用以下命令 掛載-a

現在,當我們想要添加或刪除文件,或者只是提取這些快照時會發生什麼? 好,我們有命令 扁豆.

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

默認情況下,它將使用“ squashfs-root”作為提取目錄。 可以使用-d選項更改

除此示例外,squashfs還用於:

  • 直播光盤
  • 嵌入式系統
  • 伺服器
  • 通常,任何只讀系統

3-«緊急交換»

想像一下,無論出於何種原因(休眠,大量編譯...),您都需要進行額外的交換。 這是循環文件起作用的地方,第一步是製作具有特定大小,具有特定塊大小的空文件,我們使用以下命令執行此操作 dd:

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

dd用不正確的手比一隻拿著shot彈槍的猴子還糟。 按下Enter鍵之前要三思

在這種情況下,塊是一個MiB,文件大小是512MiB。 不必是這種方式。

我們使用此命令創建並激活交換

mkswap loop && swapon loop

請記住,循環文件的性能總是比實際的物理文件低一些。

4做你想要的

這些只是一些最典型的示例,隨時可以嘗試使用chroot,加密系統,嵌套循環……您的可能性是無限的。 但是,請小心您運行的命令, 在按Enter之前要仔細考慮.

感興趣的鏈接


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   伊盧基 他說:

    好後車! 我那裡有一些巨大的備份,但我從未壓縮過它們。 我將使用它,並且順便說一下,我對我的外部加密以填充它,然後我想起我將對其加密🙁

  2.   圍攻84 他說:

    有趣的嘗試南瓜

  3.   曼努埃爾·R 他說:

    很好的教程,我已經讀過如何用dd創建img文件並掛載它們,但是不知道Squashfs的使用及其壓縮方式。 儘管它不允許修改其內容,但在諸如您所評論的情況下,它的使用可能會很有用。 感謝您的分享,問候。

  4.   演示 他說:

    非常高興知道,感謝您的提示。

  5.   華金 他說:

    您總是學到新東西。 優秀的!

  6.   不是布魯克林 他說:

    這很有趣,我知道squashf及其用途,但是我從來沒有想到要壓縮圖像。 謝謝你的提示。

  7.   HO2Gi 他說:

    令人印象深刻的嘗試它是什麼。非常好的技巧

  8.   羅伯特· 他說:

    優秀的兔兔! =)…很好的小費!

  9.   可笑的 他說:

    你好,老兄。 非常有趣的文章,謝謝分享。

  10.   埃紹 他說:

    在Gentoo中,需要先在內核中啟用SquashFS支持,然後再對其進行測試,以對其進行測試。 謝謝。

    1.    埃紹 他說:

      在Gentoo上進行了測試,並為此編譯了出色的內核。
      只需糾正一個小的錯字,便民。

      在示例中:

      mksquashfs照片-2009照片-2010照片-2011照片-2012照片-2013照片_2009-2013.sqsfs -comp xz -bs 1M

      將s保留在“ -bs”(確定塊的大小)中,它應如下所示:

      mksquashfs照片-2009照片-2010照片-2011照片-2012照片-2013照片_2009-2013.sqsfs -comp xz -b 1M