PC関連 コンピュータ サーバー

True Nas(Free Nas)で使用していたHDD(ZFS)をUbuntuでマウントする方法

2021年7月5日

True Nas(旧 Free Nas)で使用していたHDDの稼働時間が67,000時間となったので、交換することに。
True NasのHDDはどれも単体で動いていたので、True NasのHDDを交換後、別のPCからデータ移行することにしました。

ただし、True NasはZFSと呼ばれるファイルシステムを採用されており、Windows用(NTFSやFAT32など)やLinux用(ext4など)とは違うものでしたので
ZFSが利用できるUbuntuを利用してデータ抽出・移行を行おうと考えました。

なので、WindowsからVMware Workstation Playerを使ってUbuntuを起動しTrue Nasで取り出したHDDデータを抽出しました。

本記事はUbuntuのインストールから記載しておりますが、ZFSのマウントまで(nfsやsmb等の接続は省略)となっております。

必要なもの

  • VMware Workstation Player
  • Ubuntu
  • True Nas(旧Free Nas)から取り出したファイルフォーマットがZFS形式のHDD
  • HDDをPCに接続する装置(USBやらSATAにつなぐなど)
    今回は玄人志向の「KURO-DACHI/ONE」を利用しています。

事前準備

VMware Workstation PlayerとUbuntuのインストール

WindowsにVMware Workstation Playerをインストールします。

VMware Workstation Playerインストール後、ダウンロードしたUbuntuのISOをセットし、インストールします。
Ubuntuの場合、簡易インストールができるらしいので、ユーザ名とアカウントを設定するだけでサクッとできるようです。

そのままポチポチできるので割愛

 

SSHサーバの設定

Ubuntuインストール後、VMware Workstation Playerから設定・操作することも可能ですが、USキーボードになってたりとか、Windowsのコピペが使えないとか初期設定がめんどくさいので
SSHでつなぐように設定します。

Ubuntuインストール後、「端末」からコンソール画面を開き、「openssh-server」をインストールします。

​sudo apt-get install openssh-server

次に「ip addr」コマンドでUbuntuのIPアドレスを把握します。
(ifconfigで確認したい場合、net-toolsが別途インストール必要となります。)
ensxxのinet(11行目付近)がSSHで接続できるIPアドレスになります。

$ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ensxx: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:XX:XX:xx brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.0.0/24 brd 192.168.0.255 scope global dynamic noprefixroute ens33
       valid_lft 1266sec preferred_lft 1266sec
    inet6 fe80::0/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

ここまで設定できたらHDDをマウントするために一度Ubuntuをシャットダウンします。

 

HDDのDeviceID確認

VMware Workstation PlayerにHDDを直接指定する場合、HDDのDeviceIDを把握する必要があります。
そのため、PowerShellの「wmic diskdrive list brief」コマンドで接続したいHDDのDeviceIDを確認します。
SATAで接続していればHDDの型番が一覧に表示されますが、玄人志向の「KURO-DACHI/ONE」は「JMicron Generic SCSI Disk Device」と表示されておりました。

PS C:\Users\xxxx>  wmic diskdrive list brief
Caption                           DeviceID            Model                             Partitions  Size
JMicron Generic SCSI Disk Device  \\.\PHYSICALDRIVE5  JMicron Generic SCSI Disk Device  2           3000590369280

VMware Workstation PlayerにHDDをマウント

Ubuntuを起動する前にVMware Workstation Playerの「仮想マシンの設定の編集」よりHDDを追加します。
仮想ディスクタイプはSCSIでもSATAでもお好みで。
ディスクの選択で「物理ディスクを使用する」にチェックを入れます。
※「物理ディスクを使用する」を選ぶと仮想マシン起動の度に管理者権限の実行が必要となります。

次に「HDDのDeviceID確認」で確認した接続したいHDDのDeviceIDを登録します。

今回はディスク全体を使用のまま進みます。

後は通常のHDD追加と同じようにvmdkファイル名の設定を行い完了です。

HDD確認・接続

VMware Workstation PlayerでUbuntuを起動、SSHで接続したら「fdisk -l」でディスクがマウントされていることを確認します。

$ sudo fdisk -l 
~~省略~~
Disk /dev/sdb: 2.75 TiB, 3000592982016 bytes, 5860533168 sectors
Disk model: VMware Virtual S
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: 

Device       Start        End    Sectors  Size Type
/dev/sdb1      128    4194431    4194304    2G FreeBSD swap
/dev/sdb2  4194432 5860533119 5856338688  2.7T FreeBSD ZFS
~~省略~~

「zpool import」で読み取りできるZFS Poolを確認し、ZFSをマウントする。

$ sudo zpool import
   pool: strage3
     id: 4035xxx
  state: ONLINE
 status: Some supported features are not enabled on the pool.
 action: The pool can be imported using its name or numeric identifier, though
        some features will not be available without an explicit 'zpool upgrade'.
 config:

        strage3     ONLINE
          sdb       ONLINE

プール名:「strage3」が設定されていましたので、「sudo zpool import 【プール名】」でプール名を指定し、マウントします。
※zfsが他PCで正常に切り離しができていない場合、エラーが出るようです。その場合は「sudo zpool import -f 【プール名】」で強制的にマウントします。

$ sudo zpool import strage3
又は
$ sudo zpool import -f strage3

mountコマンドでどこにZFSがマウントされているか確認します。

$ mount | grep zfs
strage3 on /strage3 type zfs (rw,xattr,noacl)
strage3/jails on /strage3/jails type zfs (rw,xattr,noacl)

これでHDDの中身を見ることができます。

あとはNFSコマンド(別途インストール必要)やSMBコマンド(別途インストール必要)でファイルコピーすればOKです。

余談・雑感

最初はext4みたいに単純にマウントコマンドでHDD接続すればいいのでは?と思い、コマンド実行すると「mount: unknown filesystem type 'zfs_member'」と表示され、zfs_memberとは・・・?と少し泥沼にはまりました。

sudo zpool export strage3を行うとアンマウント処理となるため、Windows上からも切断されたと判断されるそう。
⇒「VMware Workstation Player」上でHDDが見つからなくなり、ハングアップするようなので取り外しする際は注意したほうがよさそうです。

参考

-PC関連, コンピュータ, サーバー
-, , , ,