USB Hard Disk Drive or USB Flash Drive (Pen drive) is a popular external device that can be used to backup data or transfer data from one device to other device. In GUI (Graphical User Interface) Operating System such as Window or GNOME Desktop in Linux can automatically mount USB device and can show data in it if the File System of that device is supported. But all users do not like or always do not have GUI mode of Operating System specially the CentOS or Red Hat Linux user. In this case, USB device must be mounted manually and then access data from it. On the other hand, by default Linux (CentOS or Red Hat) does not support NTFS File System. But most of the USB devices are usually formatted with NTFS which is a Windows supported file system. To read or write data from NTFS formatted disk in CentOS or Red Hat Linux, a third party application named NTFS-3G have to be used. How to create or delete disk partition with fidisk utility was discussed in my previous article. In this article, I will discuss how to format USB devices and how to mount USB devices in CentOS or Red Hat Linux to read or write data from USB devices. I will also discuss how to install NTFS-3G to read or write data from NTFS USB device from CentOS or Red Hat Linux.
How to Mount USB Hard Disk or USB Flash Drive in CentOS 7
If you insert a USB Hard Disk or USB Flash Drive in CentOS 7 or Red Hat 7 Linux, you will find a new SD (SCSI Disk) drive with available drive letter (such as sdb or sdc) is attached in /dev directory. You will also find that a partition is automatically created such as sdb1 or sdc1. After inserting USB device, issue the flowing command to find your newly created partition.
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00096c2a
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 5220351 2097152 82 Linux swap / Solaris
/dev/sda3 5220352 41943039 18361344 83 Linux
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x100d3780
Device Boot Start End Blocks Id System
/dev/sdb1 2048 1026047 512000 83 Linux
Disk /dev/sdc: 15.9 GB, 15938355200 bytes, 31129600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xfdc01076
Device Boot Start End Blocks Id System
/dev/sdc1 * 63 31129599 15564768+ c W95 FAT32 (LBA)
From the above output, you can see a new device /dev/sdc is attached and its size is 15.9 GB. You can also see a new partition /dev/sdc1 has been created automatically and the partition is with FAT32 which is supported both Window and Linux Operating System. So, we can easily mount this partition to a mount point such as /usb directory in our CentOS 7 or Red Hat 7 Linux with the following commands.
[root@localhost ~]# mount /dev/sdc1 /usb
[root@localhost ~]# df -HT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 19G 5.1G 14G 28% /
devtmpfs devtmpfs 506M 0 506M 0% /dev
tmpfs tmpfs 514M 127k 514M 1% /dev/shm
tmpfs tmpfs 514M 7.5M 507M 2% /run
tmpfs tmpfs 514M 0 514M 0% /sys/fs/cgroup
/dev/sda1 xfs 521M 122M 400M 24% /boot
/dev/sdb1 xfs 521M 27M 495M 6% /data
/dev/sdc1 vfat 16G 8.2k 16G 1% /usb
From the above output, we can see that our USB device (/dev/sdc1) has been mounted to /usb directory. Now you can keep data or copy data from this USB device by browsing /usb directory with cd command.
[root@localhost usb]# ls
data file1
But FAT32 (vfat) has a limitation. It cannot transfer more than 2 GB file size at a time in Linux and in Windows it can transfer 4 GB file size at a time. So, if you need to transfer more than 2GB file size at a time, you have to first format it to other Linux supported file system such as ext4 or xfs that can overcome this limitation.
So, if you wish to transfer more than 2 GB file size at a time, format the USB device with Linux supported file system with following command and then mount the partition to the mount point ( /usb directory).
meta-data=/dev/sdc1 isize=256 agcount=4, agsize=972798 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=3891192, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/sdc1 /usb
[root@localhost ~]# df -HT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 19G 5.1G 14G 28% /
devtmpfs devtmpfs 506M 0 506M 0% /dev
tmpfs tmpfs 514M 127k 514M 1% /dev/shm
tmpfs tmpfs 514M 7.5M 507M 2% /run
tmpfs tmpfs 514M 0 514M 0% /sys/fs/cgroup
/dev/sda1 xfs 521M 122M 400M 24% /boot
/dev/sdb1 xfs 521M 27M 495M 6% /data
/dev/sdc1 xfs 16G 34M 16G 1% /usb
Now you can see the USB device is formatted with xfs file system. So, you are now eligible to transfer more than 2GB file at a time.
After using USB device, you generally remove the USB device from your system. But before removing you should unmount the USB device from the mount point (/usb directory) with the following command.
[root@localhost ~]# umount /usb
How to Mount NTFS USB Device in CentOS 7 Linux
The NTFS is a Windows Operating System supported File System. So, CentOS or Red Hat Linux cannot usually mount a NTFS formatted USB HDD or USB Flash Drive. If you insert a NTFS USB device and run fdisk command, you will find a new partition and the partition file system is NTFS.
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00096c2a
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 5220351 2097152 82 Linux swap / Solaris
/dev/sda3 5220352 41943039 18361344 83 Linux
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x100d3780
Device Boot Start End Blocks Id System
/dev/sdb1 2048 1026047 512000 83 Linux
Disk /dev/sdc: 16.2 GB, 16231956480 bytes, 31703040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc3072e18
Device Boot Start End Blocks Id System
/dev/sdc1 * 48 31703039 15851496 7 HPFS/NTFS/exFAT
As it is a NTFS USB device, CentOS 7 or Red Hat Linux cannot usually mount it until you format it with Linux supported File System or use a third party tool. As we do not want to format it and want to use NTFS USB device, we will us third party open source tool named NTFS-3G that will help to mount NTFS formatted Disk in CentOS 7 or Red Hat 7 Linux.
The NTFS-3G is present in EPEL (Extra Packages for Enterprise Linux) repository. So, we have to enable EPEL repository before installing NTFS-3G. The following commands show how to enable EPEL Repository in CentOS 7 or Red Hat 7 Linux.
[root@localhost ~]# ~] wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[root@localhost ~]# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@localhost ~]# rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm
EPEL Repository is now enabled and we are ready to install NTFS-3G. To install NTFS-3G, issue the following command from your command prompt.
NTFS-3G is now installed and ready to work. NTFS-3G works with FUSE module. FUSE module is by default included with CentOS 7 or Red Hat 7 Linux. However, if you find that FUSE module is not present in your kernel, issue the following command to install and load the FUSE driver module.
[root@localhost ~]# modprobe fuse
We are now ready to mount the above NTFS USB device in our CentOS 7 or Red Hat 7 Linux. First create the mount point for NTFS device with the following command.
Now mount the NTFS USB device to the mount point with the following command.
You can now find that the NTFS USB device is mounted to the mount point with the following command.
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 19G 5.2G 14G 28% /
devtmpfs devtmpfs 506M 0 506M 0% /dev
tmpfs tmpfs 514M 127k 514M 1% /dev/shm
tmpfs tmpfs 514M 7.5M 507M 2% /run
tmpfs tmpfs 514M 0 514M 0% /sys/fs/cgroup
/dev/sda1 xfs 521M 122M 400M 24% /boot
/dev/sdb1 xfs 521M 27M 495M 6% /data
/dev/sdc1 fuseblk 17G 5.0G 12G 31% /backup
Now go to your NTFS USB device by browsing backup directory and you will find that your files are present there.
[root@localhost backup]# ls
Activator Autorun.inf bootmgr BREB visit BSTI PLI sources System Volume Information AL.ico boot bootmgr.efi BREB Visit Report.docx efi setup.exe support Time extension letter.docx
You can now do any file operation here. If you want to make mount point permanent at the boot time, simply add the following line at the end of /etc/fstab file. The mount point will remain as permanent.
/dev/sdc1 /backup ntfs-3g defaults 0 0
UUID=bee34176-dd55-479e-95c5-9545912d14b9 / xfs defaults 1 1
UUID=dede0f3e-6c9a-4185-afb4-f129fb873246 /boot xfs defaults 1 2
UUID=40464ff6-29e5-4492-9698-1b8229ca58f6 swap swap defaults 0 0
/dev/sdb1 /data xfs defaults 0 0
/dev/sdc1 /backup ntfs-3g defaults 0 0
[root@localhost ~]# mount –a
If you want to remove the NTFS USB device, just delete the above fstab (/etc/fstab) entry and unmount with the following command and then remove your device.
[root@localhost ~]# umount /backup
If you face any confusion to follow above steps properly, watch the below video about mounting USB device in CentOS 7 Linux and hope your confusion will be removed.
How to mount USB device (both Linux supported File System and NTFS) in CentOS 7 or Red Hat 7 Linux has been discussed in this article. I hope you are now able to mount your USB device in your CentOS 7 or Red Hat 7 Linux. However, if you face any confusion to follow above steps properly, feel free to discuss in comment or contact with me from Contact page. I will try my best to stay with you.