LinuxにUSB外付けHDDを接続する(NTFSフォーマットの場合要注意)

HOMEリナックスマスター.JP 公式ブログLinuxエラー対処法, Linux情報・技術・セキュリティ > LinuxにUSB外付けHDDを接続する(NTFSフォーマットの場合要注意)

人気セミナーリナックスマスター2日間集中セミナー【CentOS7版】


 無料進呈 CentOS7サーバー構築マニュアル無料プレゼント


LinuxにUSB外付けHDDを接続し、マウントする手順を紹介します。
その際、NTFSフォーマットのUSB外付けHDDを利用する際の注意手順も紹介します。

LinuxにUSB外付けHDDを接続

1.messagesファイルのログをリアルタイムで表示します。

# tail -f /var/log/messages


2.USB外付けHDDを接続しデバイス名が表示されるか確認します。

下記ログが表示され、カーネルにUSB外付けHDDが認識されることが分かります。
しかし、例では自動で割り当てるはずのデバイス名が割当られません。
その場合、Windows用のNTFSフォーマットが読み込めないのが原因になります。
引き続き、
「3.NTFSフォーマットHDDを読み込めるようにする」以降の作業を行ってください。

デバイス名が表示される場合は、
「8.messagesファイルのログをリアルタイムで表示しつつ、USB外付けHDDを再度接続する」
から参照してください。

Mar 3 17:45:18 Tiger kernel: usb 1-1: new high-speed USB device number 2 using ehci-pci
Mar 3 17:45:18 Tiger kernel: usb 1-1: device descriptor read/64, error 18
Mar 3 17:45:19 Tiger kernel: usb 1-1: device descriptor read/64, error 18
Mar 3 17:45:19 Tiger kernel: usb 1-1: new high-speed USB device number 3 using ehci-pci
Mar 3 17:45:19 Tiger kernel: usb 1-1: device descriptor read/64, error 18
Mar 3 17:45:20 Tiger kernel: usb 1-1: device descriptor read/64, error 18
Mar 3 17:45:20 Tiger kernel: usb usb1-port1: attempt power cycle
Mar 3 17:45:20 Tiger kernel: usb 1-1: new high-speed USB device number 4 using ehci-pci
Mar 3 17:45:20 Tiger kernel: usb 1-1: Invalid ep0 maxpacket: 9
Mar 3 17:45:20 Tiger kernel: usb 1-1: new high-speed USB device number 5 using ehci-pci
Mar 3 17:45:20 Tiger kernel: usb 1-1: Invalid ep0 maxpacket: 9
Mar 3 17:45:20 Tiger kernel: usb usb1-port1: unable to enumerate USB device


3.NTFSフォーマットHDDを読み込めるようにする
epel-releaseリポジトリを追加します。

# yum install epel-release
読み込んだプラグイン:fastestmirror, langpacks
Determining fastest mirrors
* base: ftp.riken.jp
* extras: ftp.riken.jp
* updates: ftp.riken.jp
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 165 kB 00:00:00
(2/4): extras/7/x86_64/primary_db | 159 kB 00:00:00
(3/4): updates/7/x86_64/primary_db | 6.7 MB 00:00:03
(4/4): base/7/x86_64/primary_db | 6.0 MB 00:00:11
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ epel-release.noarch 0:7-11 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
====================================================================================================
インストール中:
epel-release noarch 7-11 extras 15 k

トランザクションの要約
====================================================================================================
インストール 1 パッケージ

総ダウンロード容量: 15 k
インストール容量: 24 k
Is this ok [y/d/N]: y ←「y」を入力します。
Downloading packages:
epel-release-7-11.noarch.rpm | 15 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction 警告: RPMDB は yum 以外で変更されました。
インストール中 : epel-release-7-11.noarch 1/1
検証中 : epel-release-7-11.noarch 1/1

インストール:
epel-release.noarch 0:7-11

完了しました!
[root@Tiger ~]#



 無料進呈 CentOS7サーバー構築マニュアル無料プレゼント



4.ntfs-3gのインストールを実行するも原因不明のエラーが発生
NTFSを読み込めるようにするntfs-3gのインストールを実行するもエラーが発生。

エラーが発生しない場合は、
「7.再度ntfs-3gのインストールを実行」から参照してください。

# yum install ntfs-3g
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile


One of the configured repositories failed (不明),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:

1. Contact the upstream for the repository and get them to fix the problem.

2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).

3. Run the command with the repository temporarily disabled
yum --disablerepo= ...

4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:

yum-config-manager --disable
or
subscription-manager repos --disable=

5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:

yum-config-manager --save --setopt=.skip_if_unavailable=true

Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again
[root@Tiger ~]#


5.デバックモードで「yum」を実行
「URLGRABBER_DEBUG=1」を付けてデバックモードでエラー原因調査を行います。
結果、ファイアウォールのポート443が塞がっているのが原因と判明

# URLGRABBER_DEBUG=1 yum install ntfs-3g
2020-03-03 17:53:29,828 urlgrabber version = 3.10
2020-03-03 17:53:29,828 trans function "_" =
2020-03-03 17:53:29,873 combined options: {
'delegate' : {
'async' : None,
'bandwidth' : 0,
'cache_openers': True,
'checkfunc' : None,
'close_connection': 0,
'copy_local' : 0,
'curl_obj' : None,
'data' : None,
'default_speed': 1000000.0,
'delegate' : None,
'failfunc' : ,

〜中略〜

2020-03-03 17:53:30,500 opening local file "/var/cache/yum/x86_64/7/epel/metalink.xml.tmp" with mode wb
* About to connect() to mirrors.fedoraproject.org port 443 (#14) ←原因
* Trying 209.132.181.15...
* After 14993ms connect time, move on!
* Trying 8.43.85.67...
* After 7495ms connect time, move on!
* Trying 209.132.181.16...
* After 3746ms connect time, move on!
* Trying 13.250.126.156...
* After 1874ms connect time, move on!


6.ファイアウォールのポート443を開ける
   サーバーにポート443で接続できるよう
   関係のあるファイアウォール開けてください。

7.再度ntfs-3gのインストールを実行

# yum install ntfs-3g
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 8.3 kB 00:00:00
* base: ftp.riken.jp
* epel: ftp.riken.jp
* extras: ftp.riken.jp
* updates: ftp.riken.jp
base | 3.6 kB 00:00:00
epel | 5.3 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/3): epel/x86_64/group_gz | 90 kB 00:00:00
(2/3): epel/x86_64/updateinfo | 1.0 MB 00:00:00
(3/3): epel/x86_64/primary_db | 6.7 MB 00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ ntfs-3g.x86_64 2:2017.3.23-11.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

====================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
====================================================================================================
インストール中:
ntfs-3g x86_64 2:2017.3.23-11.el7 epel 265 k

トランザクションの要約
====================================================================================================
インストール 1 パッケージ

総ダウンロード容量: 265 k
インストール容量: 612 k
Is this ok [y/d/N]: y ←「y」を入力
Downloading packages:
警告: /var/cache/yum/x86_64/7/epel/packages/ntfs-3g-2017.3.23-11.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 352c64e5: NOKEY
ntfs-3g-2017.3.23-11.el7.x86_64.rpm の公開鍵がインストールされていません
ntfs-3g-2017.3.23-11.el7.x86_64.rpm | 265 kB 00:00:00
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 から鍵を取得中です。
Importing GPG key 0x352C64E5:
Userid : "Fedora EPEL (7) "
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package : epel-release-7-11.noarch (@extras)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
上記の処理を行います。よろしいでしょうか? [y/N]y ←「y」を入力
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 2:ntfs-3g-2017.3.23-11.el7.x86_64 1/1
検証中 : 2:ntfs-3g-2017.3.23-11.el7.x86_64 1/1

インストール:
ntfs-3g.x86_64 2:2017.3.23-11.el7

完了しました!
[root@Tiger ~]#


8.messagesファイルのログをリアルタイムで表示しつつ、USB外付けHDDを再度接続する
kernel: sdb: sdb1とデバイス名が表示されます。
パスは、/dev/sdbになります。

Mar 3 18:20:16 Tiger kernel: usb 1-1: new high-speed USB device number 10 using ehci-pci
Mar 3 18:20:17 Tiger kernel: usb 1-1: New USB device found, idVendor=0411, idProduct=00db
Mar 3 18:20:17 Tiger kernel: usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
Mar 3 18:20:17 Tiger kernel: usb 1-1: Product: BUFFALO INC. USB-SATA Bridge
Mar 3 18:20:17 Tiger kernel: usb 1-1: Manufacturer: BUFFALO INC.
Mar 3 18:20:17 Tiger kernel: usb 1-1: SerialNumber: FF9320320A0000000000005FF3F2FF
Mar 3 18:20:17 Tiger kernel: usb-storage 1-1:1.0: USB Mass Storage device detected
Mar 3 18:20:17 Tiger kernel: scsi host3: usb-storage 1-1:1.0
Mar 3 18:20:17 Tiger kernel: usbcore: registered new interface driver usb-storage
Mar 3 18:20:17 Tiger kernel: usbcore: registered new interface driver uas
Mar 3 18:20:18 Tiger kernel: scsi 3:0:0:0: Direct-Access ST932032 0AS PQ: 0 ANSI: 2
Mar 3 18:20:18 Tiger kernel: sd 3:0:0:0: Attached scsi generic sg2 type 0
Mar 3 18:20:18 Tiger kernel: sd 3:0:0:0: [sdb] 625142448 512-byte logical blocks: (320 GB/298 GiB)
Mar 3 18:20:18 Tiger kernel: sd 3:0:0:0: [sdb] Write Protect is off
Mar 3 18:20:18 Tiger kernel: sd 3:0:0:0: [sdb] No Caching mode page found
Mar 3 18:20:18 Tiger kernel: sd 3:0:0:0: [sdb] Assuming drive cache: write through
Mar 3 18:20:18 Tiger kernel: sdb: sdb1 ←デバイス名が表示
Mar 3 18:20:18 Tiger kernel: sd 3:0:0:0: [sdb] Attached SCSI disk


9.パーティションを削除
fdiskで使用するコマンドは下記になります。
pは、状態を確認するコマンド
dは、パーティションを削除するコマンド
wは、パーティションをディスクに書き込み終了するコマンド

# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


コマンド (m でヘルプ): p ←「p」を入力
Disk /dev/sdb: 320.1 GB, 320072933376 bytes, 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x978885fa

デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 2048 625139711 312568832 7 HPFS/NTFS/exFAT

コマンド (m でヘルプ): d ←「d」を入力
Selected partition 1
Partition 1 is deleted

コマンド (m でヘルプ): p ←「p」を入力

Disk /dev/sdb: 320.1 GB, 320072933376 bytes, 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x978885fa

デバイス ブート 始点 終点 ブロック Id システム

コマンド (m でヘルプ): w ←「w」を入力
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。


10.新しいパーティションを作成
fdiskで使用するコマンドは下記になります。
nは、新たに領域を作成するコマンド

# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


コマンド (m でヘルプ): p ←「p」を入力

Disk /dev/sdb: 320.1 GB, 320072933376 bytes, 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x978885fa

デバイス ブート 始点 終点 ブロック Id システム

コマンド (m でヘルプ): n ←「n」を入力
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p ←「p」を入力
パーティション番号 (1-4, default 1):Enterキーを入力
最初 sector (2048-625142447, 初期値 2048):Enterキーを入力
初期値 2048 を使います
Last sector, +sectors or +size{K,M,G} (2048-625142447, 初期値 625142447):Enterキーを入力
初期値 625142447 を使います
Partition 1 of type Linux and of size 298.1 GiB is set

コマンド (m でヘルプ): w ←「w」を入力
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
[root@Tiger ~]#


11.ext4にフォーマット

# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
19537920 inodes, 78142550 blocks
3907127 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2227175424
2385 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

[root@Tiger ~]#


12.外付けHDDをマウント
マウントポイント「/sdb」を作成して、マウントします。
「/dev/sdb1 ext4 294G 65M 279G 1% /sdb」がマウントされます。

# mkdir /sdb
# mount /dev/sdb1 /sdb
# df -Th
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos_tiger-root xfs 17G 2.8G 15G 17% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 151M 864M 15% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/1000
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/sdb1 ext4 294G 65M 279G 1% /sdb
[root@Tiger ~]#


13.サーバー起動時に自動マウントされるように設定
/etc/fstabファイルを編集し、
「/dev/sdb1 /sdb ext4 defaults 0 0」を追加し
「:wq」で保存終了します。
/etc/fstabファイルについてはこちらをご確認ください。

# vi /etc/fstab

# /etc/fstab
# Created by anaconda on Wed Jan 23 14:05:36 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos_tiger-root / xfs defaults 0 0
UUID=c16cc039-3752-4d42-bc6a-9a1d3687ea3e /boot xfs defaults 0 0
/dev/mapper/centos_tiger-swap swap swap defaults 0 0
/dev/sdb1 /sdb ext4 defaults 0 0 ←追加します。


しかし、デバイス名で/etc/fstabファイルに登録すると、
複数のUSB外付けHDDが接続されている場合、
認識するタイミングによっては、デバイス名が変わってしまう場合があります。
その対処方法として、デバイスのUUIDを使用して、
外付けハードディスクのマウントポイントを設定します。
将来的に複数のUSB外付けHDDを接続する可能性があるなら、UUIDでの設定をお勧めします。

14.UUIDを取得します。

# blkid
/dev/mapper/centos_tiger-root: UUID="0e745927-e3e0-4abe-a120-a757d7d2496f" TYPE="xfs"
/dev/sda2: UUID="ieX0cD-kKEZ-hDxh-7hWM-XqsB-V7go-qRAFxh" TYPE="LVM2_member"
/dev/sda1: UUID="e2d3900d-af4e-43bb-8882-2180a30fc67c" TYPE="xfs"
/dev/mapper/centos_tiger-swap: UUID="e83a72ef-7ebe-4712-9524-f1d684235670" TYPE="swap"
/dev/sdb1: UUID="889b3d1f-f20c-4b42-899b-adb6490a4de9" TYPE="ext4"
↑このUUIDを使用します。

/dev/mapper/centos_tiger-home: UUID="6805b8b0-bd52-4a96-beb0-1e7644cb97be" TYPE="xfs"


15.14で取得したUUIDを元に/etc/fstabファイルを編集します。
編集後「:wq」で保存終了します。

# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Mar 3 08:37:51 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos_tiger-root / xfs defaults 0 0
UUID=e2d3900d-af4e-43bb-8882-2180a30fc67c /boot xfs defaults 0 0
/dev/mapper/centos_tiger-home /home xfs defaults 0 0
/dev/mapper/centos_tiger-swap swap swap defaults 0 0
UUID=889b3d1f-f20c-4b42-899b-adb6490a4de9 /sdb ext4 defaults 0 0 ←追加します。


16.サーバーを再起動する

# shutdown -r now


17.サーバー再起動後、/sdbがマウントされているか確認する

# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/centos_tiger-root 17G 2.8G 15G 17% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 151M 864M 15% /boot
/dev/sdb1 294G 65M 279G 1% /sdb ←自動マウントされています。
tmpfs 378M 0 378M 0% /run/user/1000
# cd /sdb ←ディレクトリを移動します。
# ls -l ←アクセスできる事を確認します。
合計 16
drwx------ 2 root root 16384 3月 3 18:31 lost+found


※注意
lost+foundディレクトリは、
システム修復に必要なデータの断片を保存する為にディレクトリです。
削除しないでください。


人気記事失敗しないLinuxの転職に強い転職サイト・転職エージェント【厳選3選】


人気講座リナックスマスター・ホームスタディ講座【クラウド編】




<<関連記事>>
・RHEL7/CentOS7が重要カーネルセキュリティアップデートをリリース【CVE-2019-14821/CVE-2019-15239】
・PostgreSQL 12が公開と2019年10月データベース人気ランキング
・CentOS8とCentOS7の違い、変更点のまとめ
・Apacheに脆弱性(CVE-2017-9798)、メモリから情報漏えいの恐れ
・Apache Tomcat の複数の脆弱性に対するアップデート(CVE-2017-7674、CVE-2017-7675)

スポンサードリンク


■CentOS7サーバー構築マニュアルを無料プレゼント
下記3冊のマニュアルを無料プレゼントしています。
・CentOS7サーバー構築マニュアル(105ページ)
・VMware Playerで作る仮想Linux環境構築マニュアル(40ページ)
・DB(PostgreSQL・MySQL)構築・CentOSバージョンアップマニュアル(33ページ)


詳細は↓をいますぐクリックしてください。
 無料マニュアルをダウンロードする  ホームスタディ講座【初級編】