チュートリアル:ループファイルシステム

ループファイルシステムとは何ですか?

Gnu / Linux(および大多数のUNIXシステム)には、ファイル(以前はフォーマット済み)をハードディスクであるかのように、通常はパーティションテーブルなしでマウントできるメカニズムがあります。 このくだらない図(私が作成したもの)は、このメカニズムがどのように機能するかを説明しています。

GNU / linuxでのループファイルの操作を(大まかに)説明するフローチャート。

**実際の操作を完全に表すものではありません。

ループファイルの使用

1-Mount.isoファイル

CDおよびDVDの標準的な卓越性である.isoファイルは、ファイルシステムが可能であるループファイルにすぎません。 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/

すべてが正しいことを確認した後、元のファイルを削除するか、ファイルをバックアップとして残すことができます。

OSの起動時にマウントする場合は、このスタイルの行を/ 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は次の場所でも使用されます。

  • Livecd
  • 組み込みシステム
  • サーバー
  • 一般に、読み取り専用システム

3-«緊急スワップ»

何らかの理由(休止状態、大規模なコンパイルなど)で、追加のスワップが必要であると想像してください。 ここでループファイルが機能します。最初のステップは、特定のサイズ、特定のブロックサイズの空のファイルを作成することです。これは、次のコマンドで行います。 dd:

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

間違った手にあるddは、ショットガンを持ったサルよりも悪いです。 Enterキーを押す前に考えてください

この場合、ブロックは512 MiBで、ファイルサイズはXNUMXMiBです。 このようにする必要はありません。

このコマンドでスワップを作成してアクティブ化します

mkswap loop && swapon loop

ループファイルのパフォーマンスは、実際の物理ファイルのパフォーマンスよりも常にいくらか低いことに注意してください。

4-やりたいことをする

これらは最も特徴的な例のほんの一部です。chroot、暗号化システム、ネストされたループを自由に試してみてください…あなたの可能性は無限です。 ただし、実行するコマンドには注意してください。 Enterキーを押す前によく考えてください.

関心のあるリンク


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   イルッキ

    グッドポストチェ!! 私はそこにいくつかの巨大なバックアップを持っています、そしてそれらを圧縮することは私には決して起こりませんでした。 これを使用します。ちなみに、外部のものを暗号化して入力すると、暗号化することを思い出しました🙁

  2.   ジーク84

    スカッシュフのことを試すのは面白い

  3.   マヌエルR

    良いチュートリアルです。ddを使用してimgファイルを作成してマウントする方法を読みましたが、Squashfsの使用とその圧縮については知りませんでした。 コンテンツの変更は許可されていませんが、コメントするような状況で使用すると便利です。 共有してくれてありがとう、挨拶。

  4.   デモ

    ヒントをありがとう、知っておくと非常に良いです。

  5.   ホアキン

    あなたはいつも何か新しいことを学びます。 優秀な!

  6.   ブルックリンからではない

    おかしいです。squashfsとその目的はわかっていましたが、画像を圧縮することは一度もありませんでした。 ヒントをありがとう。

  7.   HO2ギ

    印象的です、何が起きているか見てみましょう、非常に良いヒント

  8.   Robert Winsloe

    素晴らしいツト!!! =)…とても良いヒント!!!

  9.   恐ろしい

    こんにちはローダー。 非常に興味深い記事、共有してくれてありがとう。

  10.   エッサウ

    Gentooでは、コンパイルする前にカーネルでSquashFSサポートを有効にする必要があります。テストして、どのように機能するかを確認します。 ありがとうございました。

    1.    エッサウ

      Gentooでテストされ、カーネルをコンパイルして優れています。
      小さなタイプミス、roaderを修正するだけです。

      例では:

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

      「-bs」(ブロックサイズを決定する)のsをスペアすると、次のようになります。

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