NixOSでNTFSファイルシステムを読み書きする

はじめに

前回の投稿でNixOSのインストールから日本語環境、GUI環境の構築までを紹介しました。今回はWindowsからLinuxに移行したら必要になると思われるNTFSファイルシステムの書き込み、つまりWindowsで使っていたディスクをLinuxで書き込みできるようにするお話です。

NTFSファイルシステムを読み書きするには

ntfs3gというパッケージをインストールする必要があります。このパッケージをインストールすることで、NixOS上でWindowsのNTFSファイルシステムをマウントして読み書きができるようになります。nix-envコマンドでインストールしましょう。

nix-env -i ntfs3g

読み込みだけでしたら、あとは設定ファイルconfiguration.nixに一行書き込むだけで、接続されているディスクがFilesアプリ上にstorageとして表示されます。

boot.supportedFilesystems = [ "ntfs" ];


ストレージをクリックすればパスワードを聞いてきますので、現在ログインしているユーザーパスワードを入力してください。読み込みできますので、Windowsのストレージからファイルをコピーして持ってこられます。書き込みもしたい、フルアクセスを目指す場合は次に進みます。


次にマウントしたいWindowsのディスクを調べます。fdiskコマンドを使って、現在接続されているディスクを表示させます。一般ユーザーの権限ではfdiskコマンドが使えないのでroot権限を取得します。

sudo -i

パスワードを聞いてきますので、現在のユーザーログインパスワードを入力します。ルートユーザーに切り替わったらfdiskコマンドで調べましょう。

[root@nixos:~]# fdisk -l
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: CSSD-M2B1TPG3VNF                        
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B3993C11-1155-40FC-9247-6DC757202C28

Device              Start        End    Sectors   Size Type
/dev/nvme0n1p1       2048     206847     204800   100M EFI System
/dev/nvme0n1p2     206848     239615      32768    16M Microsoft reserved
/dev/nvme0n1p3     239616 1952198655 1951959040 930.8G Microsoft basic data
/dev/nvme0n1p4 1952198656 1953521663    1323008   646M Windows recovery environment


Disk /dev/nvme1n1: 953.87 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: ADATA SX8200PNP                         
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A783DA0C-359E-402D-A979-9AB03D5E6458

Device         Start        End    Sectors   Size Type
/dev/nvme1n1p1    34      32767      32734    16M Microsoft reserved
/dev/nvme1n1p2 32768 2000406527 2000373760 953.9G Microsoft basic data


Disk /dev/sdb: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Seagate BarraCud
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 36174537-4F96-4D0C-9A04-3A400586E774

Device     Start        End    Sectors  Size Type
/dev/sdb1     34      32767      32734   16M Microsoft reserved
/dev/sdb2  32768 3907026943 3906994176  1.8T Microsoft basic data


Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: INTEL SSDSC2KW51
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B07066FD-E671-E04D-B646-9554C4EABEF6

Device       Start        End   Sectors   Size Type
/dev/sda1     2048    1050623   1048576   512M EFI System
/dev/sda2  1050624 1000215182 999164559 476.4G Linux filesystem

[root@nixos:~]# 

今回はデータ保存用として使用している2つのドライブ、/dev/nvme1n1と/dev/sdbをNixOSにマウントします。
マウントする場所は任意ですが、ユーザーフォルダ直下が良いと思うので、ログインしているユーザーフォルダ直下にマウントするフォルダを作成します。

mkdir Winfile1
mkdir Winfile2

今回はWinfile1とWinfile2というフォルダを作成します。この2つのフォルダにストレージをマウントします。起動時にマウントするように、configuration.nixファイルを編集します。 今回も設定ファイルの編集にはnanoを使います。

nano /etc/nixos/configuration.nix

設定を追加します。私のユーザー名はnokiyameegoなので、実際に設定するときはご自身のユーザー名を入れてください。
冒頭の一行を設定ファイルに記載した方は、その後に続けて書き込みましょう。

boot.supportedFilesystems = [ "ntfs" ];
   fileSystems."/home/nokiyameego/Winfile1" =   #ユーザー名はご自身のものを
   { device = "/dev/nvme1n1p2";
     fsType = "ntfs";
     options = [ "rw" "uid=nokiyameego" ];    #ユーザー名はご自身のものを
    };

   
   fileSystems."/home/nokiyameego/Winfile2" =  #ユーザー名はご自身のものを 
   { device = "/dev/sdb2";
     fsType = "ntfs";
     options = [ "rw" "uid=nokiyameego" ];    #ユーザー名はご自身のものを
    };

設定したファイルをリビルドします。

nixos-rebuild switch --upgrade

その後再起動すれば、登録したストレージがマウントされているはずです。

終わりに

私の環境はWindowsとNixOSのマルチブートになっていますので、これでWindowsストレージにアクセスできるようになりました。WindowsでやっていたことをLinuxでできるように環境を少しずつ構築しています。まだまだ至らない点や間違いがあると思います。ビギナー視点でわかりやすく手順を追ったつもりです。
NixOS独自の世界に興味を持っていただけたら、ぜひインストールして試してみてください。楽しいひと時を過ごせるはずです。

この記事が気に入ったらサポートをしてみませんか?