NTFSは、RHEL 8 / CentOS 8ではデフォルトでサポートされていません。この独自のファイルシステムでフォーマットされたブロックデバイスをシステムで読み書きできるようにするには、ntfs-3g
をインストールする必要があります。 ソフトウェア。通常、Epel
などのサードパーティリポジトリによって提供されます。 。ただし、執筆時点では、Rhel8用のこのソフトウェアソースのバージョンはまだ存在しないため、いくつかの簡単な手順でソースからインストールする方法を説明します。
このチュートリアルでは、次のことを学びます。
- ソースからntfs-3gを構築する方法
- ntfs-3gのインストール方法
- ntfs-3gでフォーマットされたブロックデバイスをマウントする方法
- ntfsファイルシステムを使用してブロックデバイスをフォーマットする方法
- ntfsfixを使用してntfsファイルシステムの整合性をチェックする方法
Rhel8のntfs-3gのマンページ
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
RHEL 8 / CentOS 8 | |
「開発ツール」パッケージグループ | |
ntfs-3gをインストールするためのroot権限 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
ntfs-3gとは何ですか?
ntfs-3g
オープンソースソフトウェアは、プロプライエタリntfs
の完全なサポート(読み取りと書き込み)を実装します Microsoftによって作成され、Windowsオペレーティングシステムの最近のすべてのバージョンで使用されているファイルシステム。ほとんどのLinuxディストリビューションのリポジトリにはntfs-3gパッケージが含まれていますが、これはRed Hat EnterpriseLinux8には当てはまりません。
このディストリビューションでは、パッケージは通常、Epel(Enterprise Linux用の追加パッケージ)などのサードパーティリポジトリによって提供されます。ただし、執筆時点では、このソフトウェアソースのRhel8固有のバージョンはまだ利用できません。別の解決策として、ntfs-3g
をコンパイルしてインストールできます。 ソースから。このチュートリアルでその方法を学びます。
ビルド依存関係のインストール
ntfs-3gをコンパイルしてインストールできるようにするには、システムにいくつかの依存関係をインストールする必要があります。通常、必要なものはすべて開発ツールパッケージグループに含まれています。パッケージグループの概念に慣れていない方は、grousパッケージを「メタパッケージ」と考えることができます。これにより、1つのコマンドで多くの関連パッケージをインストールできます。 「開発ツール」パッケージグループをインストールするには、次のコマンドを実行できます。
$ sudo dnf groupinstall "Development Tools"
最小バージョンのRhel8をインストールした場合、ntfs-3gソースtarballを解凍できるようにするには、tar
もインストールする必要があります。 これは(驚くべきことに)このタイプのインストールのパッケージのセットにデフォルトで含まれていません:
$ sudo dnf install tar
ソースコードのダウンロードとコンパイル
必要な依存関係をすべてインストールしたので、さらに進んでntfs-3gソースコードをダウンロードできます。ソースtarballはこのアドレスで入手できます。 curl
を組み合わせることができます およびtar
たった1つのステップでダウンロードして抽出するコマンド:
$ curl https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz | tar -xvpz
このコマンドを実行すると、ntfs-3g_ntfsprogs-2017.3.23
が見つかります。 フォルダが作成されました:
$ ls ntfs-3g_ntfsprogs-2017.3.23
次のステップは、このディレクトリに入り、configure
を実行することです。 スクリプト。実際のコンパイル用のソースコードを準備します。
$ cd ntfs-3g_ntfsprogs-2017.3.23 && ./configure --prefix=/usr/local --disable-static
configure
を実行する場合 スクリプトソフトウェアのインストール方法に影響を与えるいくつかのオプションを提供できます。最も重要なものの1つはprefix
です および--exec-prefix
。前者は、アーキテクチャに依存しないファイルをファイルシステムのどこにインストールするかを設定するために使用されます(/usr/local
をdefaltすることにより) ディレクトリ)。後者は同じ機能を持ちますが、アーキテクチャに依存しないファイル用です。デフォルトでは、PREFIX
と同じ値を想定するように設定されています。 。
デフォルトでは、すべてのファイルは/usr/local
の下にインストールされます 、適切なディレクトリ内:バイナリは/usr/local/bin
の下に配置されます 、/usr/local/lib
の下のライブラリ など。きめ細かい制御を実現するために、--libdir
のオプションを使用して、ファイルの各グループの宛先パスを指定できます。 または--bindir
。 「configure」スクリプトを実行するときに使用できるすべての可能なスイッチを読み取るために、-h
を使用してランチを作成できます。 オプション(–helpの略)。
上記の例では、とにかくデフォルト値を使用したため、プレフィックスの指定を省略できましたが、別のオプション--disable-static
を使用しました。 、これは、プログラムに必要なライブラリの静的バージョンの使用を無効にするために必要です。つまり、static
の場合 有効(デフォルト)の場合、実行可能ファイルが依存するライブラリは、コンパイル時にプログラムに「マージ」されます。このセットアップには長所がありますが、より大きな実行可能ファイルが生成されます。代わりに、必要なのは、それらを必要とするすべてのプログラムで共有される同じライブラリです。
上記のコマンドを起動し、終了するまで待ちます。次のステップは、実行中のソースコードを実際にコンパイルすることです:
$ make
コンパイルが開始され、画面に多くのメッセージが表示されます。タスクが完了すると、コンパイルされたファイルを続行してインストールできます。 --prefix
で指定された宛先以降 、アクションを実行するにはroot権限が必要です:
$ sudo make install
このコマンドは、コンパイルされたファイルを宛先ディレクトリにコピーします。たとえば、バイナリとシステムバイナリ(正しく実行するにはスーパーユーザー権限が必要なバイナリ)は、それぞれ/usr/local/bin
の下に配置されます。 および/usr/local/sbin
:
$ ls /usr/local/bin ntfs-3g.probe ntfscat ntfscluster ntfscmp ntfsfix ntfsinfo ntfsls $ ls /usr/local/sbin mkntfs ntfsclone ntfscp ntfslabel ntfsresize ntfsundelete
このコマンドは、いくつかの追加手順も実行します。一部のファイルは/ binディレクトリーに作成され、/ usr / binにシンボリックリンクされます:/bin/ntfs-3g
/sbin/mount.ntfs-3g
としてリンクされます および/bin/lowntfs-3g
/sbin/mount.lowntfs-3g
へ 。最後に、/usr/local/sbin/mkntfs
へのシンボリックリンク /sbin/mkfs.ntfs
として作成されます 。デフォルトでは/sbin
のみであるため、ファイルシステム全体の場所を指定せずに相対プログラムをrootが呼び出すには、このリンクの一部が必要です。 、/bin
、/usr/sbin
および/usr/bin
ディレクトリはそのPATH
に含まれています 。
ファイルシステム操作
ntfs-3gがインストールされたので、これを使用して、ファイルシステムのマウントやチェック、ブロックデバイスのフォーマットなどの一般的な操作を実行する方法を確認できます。
ntfsファイルシステムでフォーマットされたブロックデバイスをマウントします
/dev/sdb1
があるとします。 ntfsファイルシステムでフォーマットされたデバイスで、/mnt/data
にマウントします 。実行する必要のあるコマンドは次のとおりです。
$ sudo mount /dev/sdb1 -t ntfs-3g /mnt/data
-t
の使用方法に注目してください スイッチを押してファイルシステムタイプ(ntfs-3g)を指定します。起動時にファイルシステムを自動的にマウントする場合は、そのエントリを/etc/fstab
に追加する必要があります。 、この場合:
/dev/sdb1 /mnt/data ntfs-3g defaults 0 0
/dev/sdb1
の場所 ファイルシステムをホストするブロックデバイス、/mnt/data
使用するマウントポイントであり、ntfs-3g
ファイルシステムタイプです。この場合、デフォルトのマウントオプションを使用しましたが、もちろん、必要なものを使用できます。
ntfsファイルシステムを使用してブロックデバイスをフォーマットします
実行したいもう1つの操作は、既存のブロックデバイスをntfsファイルシステムでフォーマットすることです。タスクを実行するために実行するコマンドは次のとおりです。
$ sudo mkfs.ntfs /dev/sdb1
ここでも、/dev/sdb1
はntfsファイルシステムでフォーマットされるブロックデバイスであり、操作を成功させるにはマウントを解除する必要があります。
ntfsファイルシステムの整合性を確認します
ファイルシステムの整合性をチェックすることは非常に重要な操作であり、ファイルシステムがマウントされていないときにも実行する必要があります。この場合でも、実行するコマンドは非常に単純です(rootユーザーのPATHにユーティリティへのリンクが存在しないため、ここではユーティリティのフルパスを指定する必要があります):
$ sudo /usr/local/bin/ntfsfix /dev/sdb1
その他のユーティリティ
Ntfs-3gは、ntfsファイルシステムで特定の操作を実行するための他の非常に便利なユーティリティも提供します。とりわけ:ntfsundelete
これは、ntfsファイルシステムntfsresize
から削除されたファイルを回復するために使用されます これにより、データを失うことなくntfsファイルシステムのサイズを変更できます。ntfsclone
これは、ntfsファイルシステムのクローン作成、イメージ作成、および復元に使用されます。
ntfs-3gのアンインストール
ソースコードからntfs-3gをインストールしたため、ディストリビューションパッケージマネージャーを使用してアンインストールすることはできません。システムからファイルを削除するには、最初にアプリケーションをコンパイルしたフォルダーに戻る必要があります。このフォルダーには、Makefile
も含まれています。 実行:
$ sudo make uninstall
以前に作成されたすべてのファイルとリンクがファイルシステムから削除されます。
結論
Ntfs-3gは、プロプライエタリntfsファイルシステムと完全に対話するために使用されるユーティリティとライブラリのオープンソースセットです。RHEL8/ CentOS 8のデフォルトリポジトリには含まれていません。通常、Epelなどのサードパーティソースからインストールされます。これを書いている時点では後者はまだ利用できないので、このチュートリアルでは、いくつかの簡単な手順でソースコードからntfs-3gをインストールする方法を見ました。また、このファイルシステムで最も一般的な操作(マウント、フォーマット、整合性のチェック)を実行する方法も確認しました。