【サーバー】外付けHDDをLinuxにexFATでマウントする方法

この記事は 2 分で読めます。
概要

Linux サーバーにUSBの①外付けHDDを取り付け、②「exFAT」フォーマットのディスクをマウント、③ファイルにアクセスする一連の方法を解説します。

管理人

本記事の読者層は以下の方を想定しています。

本記事の読者層
  • UbuntuでexFATのマウント方法を知りたい方
  • サーバー機の外付けのHDDをmacOS, Windowsユーザーのためにネットワーク共有したい方
目次

Linuxで外付けHDDを取り付ける方法

Windows OSと異なり、Linuxの場合はUSB端子にUSB HDDを接続しただけではHDD/SSDの中身をLinuxから確認できません。それではどうしたら良いのでしょうか?

外付けUSB-HDDをLinuxマシンへ接続後、マウントと呼ばれる操作をして初めてHDDの中身をみることができます。

この際に「/mnt」ディレクトリを作成して、にHDDの情報をマウント操作でディレクトリにHDDの情報を接続して中身を確認します。

ここでは、Linuxのコンソール画面から外付けUSB-HDDの中身をLinux serverに認識・マウントさせる方法をもう少し詳しく解説します。

必要なLinux用コマンドは以下の3つです。

ポイント

USB接続時の4つの手順

  • マウントディレクトリを作成
  • lsusb: 接続されているUSBリストを確認
  • lsblk: 接続されたHDDのマウント情報を確認
  • mount: 起動時に自動でマウントするのに使います。

コマンドを使って該当のUSB HDDを確定していきます。

ファイルシステムのマウント方法を確認

Ubuntuのフォーマット形式

最初にHDDのフォーマット構造を見て行きましょう。

Linuxでマウントできるフォーマット形式には以下のものがあります。

ポイント

Linuxでマウントできるフォーマット

  • NTFS (NT File System)
  • FAT32 (File Allocation Table 32)
  • eXFAT (Extended File Allocation Table)
  • APFS (apple File System)
  • XFS (eXtents File System)

これらは、「ファイルシステム」と呼ばれLinuxで対応可能です。以下にそれぞれの特徴と利用出来るディストリビューションもしくはOSを示します。

ファルシステム 特徴ディストリビューション
EXT4,EXT3Linuxの伝統的なファイルシステムLinux用
Ubuntu
XFSハイエンドファイルシステムLinux用
Red Hat Enterprise Linux
BTRFS「スナップショット」、「コピーオンライト」などの機能を持つ多機能なファイルシステムLinux用
NTFSWindowsファイルシステムWindows2000以降
exFAT, VFAT着脱式ドライブで利用されるファイルシステムWindowsXP以降
mac対応
APFSMac専用macOS10.12以降
FAT32最大32GBまで(最大4GB/File)Windows98以降
mac対応
FAT16最大4.3GBまで(最大2047MB/File)Windows95以降
Linuxの主なファイルシステム

この中で、WindowsでもmacOSでもLinuxでも読み書きできる便利なeXFATのマウント方法を解説します。

exFATとは?
exFATは、大容量のデータをサポートするだけでなく、フラッシュメモリーや外部記憶装置など、異なるデバイス間でデータを共有するための効率的なファイルシステムとしても知られています。また、FAT32よりも効率的なディスク利用を可能にするため、小さなクラスターサイズを持っています。

USBデバイス接続の確認

サーバー機などのLinux環境であれば、より転送速度の速いUSB3.0の拡張ボードを機器に取り付けて置きます。

たとえば、PCI-USBなどがオススメです。

最近では、大抵のパソコンで、取り付けによりドライバーを改めてインストールせずとも認識できます。

取り付け後。ハードディスクをUSBコードでPC側と繋いでおくとよいでしょう。

STEP1 :外付けHDDが認識されているか確認

Ubuntu 18.04LTSの環境で以下確認して行きたいと思います。

①USBデバイスの一覧と詳細情報:lsusbコマンド

lsusbコマンド

lsusbコマンドを入力すると目的のハードディスク名「BUFFALO INC. (formerly MelCo., Inc.)」が現れていればOKです。

$lsusb
Bus 002 Device 004: ID 099a:6330 Zippy Technology Corp.
Bus 002 Device 003: ID 0000:0000
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 004: ID 0411:023f BUFFALO INC. (formerly MelCo., Inc.)
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

チェック✔

②HDDのパティション情報を確認:lsblkコマンド

lsblkコマンド

次に、Linuxの構造を見てみます。するとHDDの階層構造が見られます。

$lsblk
NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                8:0    0 256.2G  0 disk
 ├─ sda1             8:1    0   243M  0 part
 ├─ sda2             8:2    0     1K  0 part
 ├─ sda5             8:5    0 232.7G  0 part
  ├─ Ibuki-root   252:0    0 230.7G  0 lvm
  └─mqIbuki-swap_1 252:1    0     2G  0 lvm
sdb                8:16   0 238.5G  0 disk
├─sdb1             8:17   0 232.5G  0 part /
├─sdb2             8:18   0     1K  0 part
├─sdb5             8:21   0     6G  0 part [SWAP]
sdd                8:48   0 931.5G  0 disk
└─sdd1             8:49   0 931.5G  0 part
sr0               11:0    1  1024M  0 rom

ここでHDDの構造、すなわちパティション構造として以下3つが確認出来ます。

どうやら該当のハードディスクはsddのようです。

ポイント

USB接続時のHDDの構造=パティション構造

  • 「sda」
  • 「sdb」
  • 「sdd」

この構造がそれぞれ何に対応しているのか以下のコマンドで確認します。

チェック✔

③HDDのフォーマット情報を確認:blkidコマンド

blkidコマンド

$ sudo blkid
/dev/sda1: UUID="3cb3c6eb-a54d-489a-84a7-f2d3afbf4e3f" TYPE="ext2" PARTUUID="00087acc-01"
/dev/sda5: UUID="YRV4z2-5EB5-C20e-Ohl8-HULg-Gtyi-cVIVrZ" TYPE="LVM2_member" PARTUUID="00087acc-05"
/dev/sdb1: UUID="7fd76a18-33e7-49a6-984a-e1a8654f9c29" TYPE="ext4" PARTUUID="1b02c81d-01"
/dev/sdb5: UUID="42ac9a88-0895-4ad5-b234-a7607a5bd1ae" TYPE="swap" PARTUUID="1b02c81d-05"
/dev/mapper/Ibuki-root: UUID="f90ed5fc-bf24-41e8-a1d3-c24ec7849b6f" TYPE="ext4"
/dev/mapper/Ibuki-swap_1: UUID="70461492-fca0-4e04-b718-bfc8c8f1287b" TYPE="swap"
/dev/sdd1: LABEL="HD_User" UUID="4203-12D0" TYPE="exfat" PARTUUID="c6f1f053-01"
ポイント

パティション構造の確認

  • 「sda」: ext2+LVM2_number
  • 「sdb」: ext4+swap
  • 「sdd」:exfat (←該当ハードディスク)

UUID(Universally Unique Identifier)略

ここから該当の外付けディスクが「sdd」であることがわかったので、sddをマウントします。

STEP2:HDDをExfatフォーマットでマウント

ここまで終了したら実際にExfatでマウントしていきます。

マウントに際しては以下のFUSEモジュール (fuse-exfat) とユーティリティのセット (exfat-utils) を用います。

これはUnix 系システムにフル機能のexFATファイル システム実装を提供するものです。

https://github.com/relan/exfat

本記事の使用環境

サポートされているオペレーティング システム:

  • GNU/Linux
  • Mac OS X 10.5以降
  • FreeBSD

マウント(mount)コマンド

「mount」コマンドは、Linux環境で使われるシステムをアクセスできるようにしてくれます。

外付けHDDがexfatの場合、以下からExfat用マウントプログラムをダウンロードしておきます。

apt-get install exfat-fuse exfat-utils

事前にmkdirで「mnt/usb」にフォルダをつくっておいた後、以下のコマンドを入力します。

「sdd1」はlsblkコマンドで確認したパティション名です。

$sudo mount -w -t exfat-fuse -o umask=000 /dev/sdd1 /mnt/usb
FUSE exfat 1.2.3

外付けHDDがマウントできない場合の対応方法

仮にすでにマウントされているのであれば、以下のように「空じゃないよ~」といった記述が現れます。

FUSE exfat 1.2.3
fuse: mountpoint is not empty
fuse: if you are sure this is safe, use the 'nonempty' mount option

のよう標識がでる場合があります。このままでは認識しないため、

以下の「unmount」を利用して一度/mnt/usbディレクトリからマウントを解除します。

% sudo umount /mnt/usb
umount: /mnt/usb: target is busy
        (In some cases useful info about processes that
         use the device is found by lsof(8) or fuser(1).)

ここでbusyと出た場合、以下のコマンドでプロセスを確認します。

lsof /mnt/usb

このときにプロセスが走っているようであればKillコマンドでプロセスを終了させてから取り出しを再度行います。

OS起動時にマウントしておきたい場合

設定ファイル

/etc/fstab ファイルはディスクパーティションや様々なブロックデバイス、リモートファイルをどうやってファイルシステムにマウントするかを記述します。

中身は以下のように確認できます。

cat /etc/fstab
/dev/sda1               /                   xfs    defaults        1 1
/dev/sdb               /boot              xfs    defaults        1 2
ポイント

設定ファイルの中身

  • 1行目:デバイス名
  • 2行目:マウントポイント
  • 3行目:ファイルシステム (xfs, ext4などで設定しておく)
  • 4行目:マウントポイント時のオプション
  • 5行目:ファイルシステムをダンプする必要があるかないかの指定

接続したUSB外付けHDDのスピードチェック

マウントを行ってみたらUSBのスピードも念のために確認してみると良いです。

以下コマンドを記載いたします。

$ sudo hdparm -t /dev/sdc1
/dev/sdd1:
 Timing buffered disk reads: 278 MB in  3.00 seconds =  92.61 MB/sec

更に、HDDを取り出す際には、unmountコマンドを利用して接続を解除します。

まとめ

本記事のまとめ

    次回の記事をご期待下さい。どうぞよろしくお願いいたします。

    関連リンク

    よかったらシェアしてね!
    • URLをコピーしました!
    • URLをコピーしました!

    コメント

    コメントする

    目次