WindowsからUbuntu移行に伴うNTFSのディスクマウント

WindowsのWSL2環境からUbuntu 22.04 LTS環境に変更しました。

Windows がインストールされたディスクを取り外し、新規のディスクと交換、Ubuntuをインストールして利用しています。

OS入りディスクのみ入れ替えなのでマザーボードやCPU、メモリ、その他ディスクの構成は同じです。

環境切替のノウハウについて記事にします。

WSL2環境からUbuntuに移行した理由

パフォーマンスの問題からです。

私の場合、メモリ不足とディスクアクセスの問題がありました。

WSL2のメモリ要件は、「Windowsの合計メモリの50%または8GBのどちらか少ない方」の値が利用されます。

ハードウェアのスペックを100%活用することができません。

ディスクアクセスは単体なら問題ないですが、5台以上のディスクにアクセスを試みると動作が不安定になる事象に悩まされていました。

こちらはmountの問題だと推測しますが、解決方法を見つけられませんでした。

ネイティブなUbuntu環境に移行することで、これらの問題は解決されます。

Ubuntu上でNTFSファイルシステムのマウント

前提

Ubuntuは物理マシンに最小構成でインストールしています。

OSの媒体は以下にある22.04 LTSを利用しました。

Ubuntu Desktop 日本語 Remixのダウンロード | Ubuntu Japanese Team (ubuntulinux.jp)

OS以外のディスクは、Windows環境で利用していた状態から物理構成を変更していません。

ディスク一覧の確認

Ubuntu上でディスクの一覧を確認する場合は、blkidコマンドを使います。

以下のような出力を得られます。

ymiya@ubu:~$ sudo blkid
/dev/sdf1: LABEL="ZCT2FC36" BLOCK_SIZE="512" UUID="BADC6449DC63FE4F" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="b80610b1-9a96-445e-b171-521f65a8a091"
/dev/nvme0n1p2: LABEL="cache2" BLOCK_SIZE="512" UUID="7A1E6ACE1E6A82CD" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="3f2d557c-074a-4f36-a3cb-f3ff78aec437"

マウント

まず、マウント先のディレクトリを作成します。

ymiya@ubu:~$ sudo mkdir /mnt/ZCT2FC36

次にmountコマンドでディスクをマウントします。

読み取り専用の場合はmount.ntfsコマンド、読み書きさせる場合はmount.ntfs-3gコマンドを使います。

ymiya@ubu:~$ sudo mount.ntfs-3g /dev/sdf1 /mnt/ZCT2FC36

【トラブルシュート】読み取り専用になってしまう場合の対処法

以下のエラーが発生した場合の対処法を記載します。

ymiya@ubu:~$ sudo mount.ntfs-3g /dev/sdf1 /mnt/ZCT2FC36
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)

ます、アンマウントして元の状態に戻します。

ymiya@ubu:~$ sudo umount /mnt/ZCT2FC36

次にntfsfixコマンドで修正をします。

ymiya@ubu:~$ sudo ntfsfix /dev/sdf1
Mounting volume... The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
FAILED
Attempting to correct errors... 
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdf1 was processed successfully.

もう1度マウントしてみてください。

問題なく読み書きできる状態になるはずです。

ymiya@ubu:~$ sudo mount.ntfs-3g /dev/sdf1 /mnt/ZCT2FC36

おわりに

以上、NTFSファイルシステムをUbuntuでマウントする方法でした。

なお、OS起動時にマウントさせたい場合は、/etc/fstabファイルを編集します。

簡単に編集する方法としては、mountコマンド実行後の/etc/mtabの内容を/etc/fstabに追記することです。

ただ、OSの起動が遅くなるので私は利用していません。*1

試行錯誤した結果、OS起動後にマウントする方法で落ち着きました。

環境によって対応方法は変わります。

少しでも参考になれば幸いです。

*1:私の環境は、複数のSATA PCIEカードとPMP(ポートマルチプライヤ)を使い数十台のディスクを接続しています。

執筆担当者プロフィール
宮久保 良彦

宮久保 良彦(日本ビジネスシステムズ株式会社)

モダンワークプレイス部に所属。 Azureに関連する提案、設計、構築を担当しています。 自作PCのカスタマイズが趣味です。

担当記事一覧