SAMBAの共有ディレクトリの容量表示問題(解決)

これまでD80で撮りためた写真(24,000枚くらいでした)や、今D750で撮影した写真のデータは全てローカル接続のUSBハードディスク(1TB)に保存しているのですが、ちょっと別用でこのハードディスクを使わなければならなくなり、中の写真データを移動することになりました。
そこで暫定的な解決として、SAMBAで共有している宅内サーバのディレクトリに移動させることにしました。これなら追加の投資なしで行えますから・・・(^ ^;;

なお、SAMBAの共有ディレクトリ(より正確にはユーザのHOMEディレクトリですが)は小容量のSSD内にあり、ここにデータを移動させるのは不可能。
ですがサーバマシンに物理接続された外付けUSBハードディスク(2TB)を同ユーザのホームディレクトリ内にシンボリックリンクさせ、アクセス権を与えた状態になっているので、こちらのシンボリックリンク先にデータを移します。
実際のところ、通常のファイルのやり取りはこれで問題なく行えていたので、今回の写真データもその感覚で5k iMacからドラッグ&ドロップでいけるはず。

ちなみに、最初にコピーしようとしたD80の写真ライブラリ(5k iMac上では一つのファイルのように扱われていますが、実際はフォルダ構造になっていました)のサイズは大体135GB程度。

そこそこの容量ですが、コピー先のハードディスクは前述の通り2TBで、使用しているのはそのうちの1TB程度ですから、容量的に全く問題ありません。問題があるとしたら、結構な時間を要するだろうことくらいです。

さて、それではレッツドラッグ&ドロップ!

え?そんなバカな。だってまだ容量は1TB近く残っているぜよ??
で、よくよく確認してみると、コピー先のSAMBAディレクトリ(シンボリックリンクされているUSBハードディスク)の容量表記が、なぜか110GB程度になっています。

おかしい、そんなはずはありません。
そこで少し調べてみると・・・。

結構な量の情報がヒットしますが、例えばこちらによると「これはSambaが共有設定されている ディレクトリのあるディスクの空き容量を返してしまい、 設定されているディレクトリ以下にどんなに大きな空き容量のあるディスクをマウントしても、Sambaはこれらを合計して空き容量とはしてくれないため」に発生する問題なんだそうです。
ヒットするどのサイトでも同様の説明がされているので間違いなさそう。
つまり上記画像の空き容量110GBとはつまり、シンボリックリンクが置かれているユーザのホームディレクトリの空き容量というわけですね。
その容量が110GBしかないから、135GBのD80ライブラリはコピーできない、と返されてしまったわけです。

この問題を解決するには、パーティション容量の補正を行う必要があるそう。
それにはsambaのdfreeコマンドを使うそうなのですが、正直なところこんなに大きなファイル(フォルダ)を動かすのは今回が最初で最後っぽいので、あまり大掛かりな修正作業は行いたくありません(面倒くさい・・・^ ^;;)。

そこで別の方法を模索したところ、scpコマンドを使うという方法にたどり着きました。

scpコマンドを使用するにはSSHサーバが稼働している必要がありますが、うちのサーバはもちろんSSHサーバも稼働中なので全く問題なしです。ナイス!(笑)
ファイルだけでなく、ディレクトリコピーもポート番号指定にもオプションで対応可能ですからこれを使わない手はありません。

そこで早速テスト用の小さなファイルを作ってコマンドを試してみたところ、問題なくファイルコピーができました(当たり前かもですが)。

$ scp -P 1234 hoge.txt username@server.domain:/home/username
Enter passphrase for key ‘/Users/username/.ssh/id_rsa’: 

hoge.txt                                     100%  619   167.1KB/s   00:00  

さて、次なる問題は5k iMacにローカル接続されているUSBハードディスクまでのパスがどのようになっているか、です。
scpコマンドではコピー元ファイルの場所を指定しなくてはならず、その場所が上記ハードディスクの中なのですから・・・。
Linuxならそのファイルまでのパスを調べるのなんて簡単ですが(そもそも自分でマウント先を決められますし)、Macではどうすればいいのでしょう?

ということでこちらも調べてみたところ、なんてことはない、普通にターミナルのコマンドから調べられる模様。

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         250.8 GB   disk0s2
/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme –                      +250.8 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD – Data     177.1 GB   disk1s1
   2:                APFS Volume Preboot                 82.5 MB    disk1s2
   3:                APFS Volume Recovery                526.6 MB   disk1s3
   4:                APFS Volume VM                      3.2 GB     disk1s4
   5:                APFS Volume Macintosh HD            11.0 GB    disk1s5
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                 Apple_APFS Container disk3         1000.0 GB  disk2s2
/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme –                      +1000.0 GB  disk3
                                 Physical Store disk2s2
   1:                APFS Volume ボリューム              216.3 GB   disk3s

これで外付けハードディスクがどのdiskなのか確認できました。
というのも、外付けUSBハードディスクをつないだときにデスクトップに表示されるデバイスが「ボリューム」だから。

そして名称がボリュームになっているものをですから、つまり/dev/disk3がそれ、ボリュームと名付けられたハードディスクであることが分かります。
続いて、これがどこにマウントされているかを確認します。

$ mount
/dev/disk1s5 on / (apfs, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk1s1 on /System/Volumes/Data (apfs, local, journaled, nobrowse)
/dev/disk1s4 on /private/var/vm (apfs, local, journaled, nobrowse)
map auto_home on /System/Volumes/Data/home (autofs, automounted, nobrowse)
//username@192.168.xxx.xxx/username on /Volumes/username (smbfs, nodev, nosuid, mounted by username)
/dev/disk3s1 on /Volumes/ボリューム (apfs, local, nodev, nosuid, journaled, noowners)

ここから、目的のハードディスクは/Volumes/ボリュームにマウントされていることが分かりました。
最後に、念のため/Volumes/ボリュームの中身を確認してみます。

$ ls /volumes/ボリューム
D750.photoslibrary D80.photoslibrary

間違いないですね。
これでコピー元のファイル(正確にはディレクトリ)へのパスがわかりましたので、これをサーバ上の外付けUSBハードディスクへscpします。

$ scp -r -P 1234 /Volumes/ボリューム/D750.photoslibrary/ server@boota.mydns.jp:/home/server/movlink
Enter passphrase for key ‘/Users/boota/.ssh/id_rsa’: 
.Photos.sqlite-conch                          100%  176     5.7KB/s   00:00    
Photos.sqlite.lock                            100%  455   160.0KB/s   00:00    
Photos.sqlite                                 100%   43MB  16.0MB/s   00:02    
photos.db                                     100%   48KB   2.4MB/s   00:00    
graphDataProgress.plist                       100%  261    15.1KB/s   00:00    
zeroKeywords.data                             100% 5154   301.1KB/s   00:00    
psi.sqlite-shm                                100%   32KB   1.4MB/s   00:00    
.psi.sqlite-conch                             100%  180    10.6KB/s   00:00    
psi.sqlite-wal                                100%    0     0.0KB/s   00:00    
searchSystemInfo.plist                        100%  405    52.8KB/s   00:00    
searchMetadata.plist                          100% 5954   560.5KB/s   00:00    
searchProgress.plist                          100%  540   227.8KB/s   00:00    
synonymsProcess.plist                         100%  887   424.0KB/s   00:00    
psi.sqlite                                    100% 3100KB  13.6MB/s   00:00    
protection                                    100%    0     0.0KB/s   00:00    
.metaSchema.db-conch                          100%  185    83.7KB/s   00:00    
.photos.db-conch                              100%  181    86.2KB/s   00:00    
Photos.sqlite-wal                             100% 6828KB  15.8MB/s   00:00    
DataModelVersion.plist                        100%  298    36.5KB/s   00:00    
Photos.sqlite-shm                             100%   32KB   5.0MB/s   00:00    
metaSchema.db                                 100%   48KB   2.7MB/s   00:00    
907C8101-FA32-42A0-90A0-77DDA97E92A8.plist    100%  926    55.8KB/s   00:00    
9A7E4220-0834-419C-83BC-BDA93492704C_1_201_a. 100% 1612KB  10.0MB/s   00:00    
90EC8C01-5F09-43CB-B4C1-030FA83CA9BD_1_201_a. 100% 1568KB  11.7MB/s   00:00    
907C8101-FA32-42A0-90A0-77DDA97E92A8_1_201_a. 100% 1642KB  11.3MB/s   00:00    
963A2835-3747-4023-B93D-FB7830E35868.plist    100%  926    39.0KB/s   00:00    
9A7E4220-0834-419C-83BC-BDA93492704C.plist    100%  926   122.6KB/s   00:00    
93F0A132-A2D4-4389-85DC-7BB29D1E125B_1_201_a. 100% 4004KB  15.6MB/s   00:00    
963A2835-3747-4023-B93D-FB7830E35868_1_201_a. 100% 2855KB  13.0MB/s   00:00    
90EC8C01-5F09-43CB-B4C1-030FA83CA9BD.plist    100%  926    51.8KB/s   00:00    
93F0A132-A2D4-4389-85DC-7BB29D1E125B.plist    100%  926   148.6KB/s   00:00    
0788D9ED-1DEA-495B-B1AA-F881C2571958_1_201_a. 100% 2846KB  13.3MB/s   00:00    
   ・
   ・
   ・    

-rはコピー対象がディレクトリであることを示す、そして-Pはポート番号を指定するオプションです。

適切なパスワードを入力すれば(SSH接続するのと同じですね)、こんなふうにファイルが一つずつコピーされていきます。
コピーが途中で中断されないように、念のため5k iMacの省電力機能を無効(ディスプレイのみ消灯する)にしておけば、大量のファイルでも途中でエラーを起こすことなくコピーが完了します(時間はそれなりにかかりますが)。
ちなみにD80のライブラリは24,000近いファイル(JPEG)と30個程度の動画ファイルでしたが、滞りなくコピーが完了しました。

あとは同様の手順でD750のライブラリもコピーをして写真データの移動は完了となります。
プロパティ等で移動先と移動元の容量等が同じであることを確認したら、5k iMacにローカル接続されているUSBハードディスクをアンマウントし、電源を落として物理的に切断。
これで今回のミッションは全て完了!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)