Mount / Umount ổ cứng hay thiết bị trên Linux

Linux

Tại sao phải mount/umount trên Linux

Khác với Windows, trên Linux để có thể truy cập/sử dụng các thiết bị như USB, đĩa CD/DVD, file ISO, phân vùng ổ cứng, các tài nguyên được chia sẻ qua mạng (gọi chung là thiết bị)… thì trước hết các thiết bị này các được gắn kết (mount) vào 1 thư mục trống (gọi là mount point). Và khi muốn tháo gỡ thiết bị đang hoạt động khỏi hệ thống thì bạn phải ngắt kết nối (umount) giữa thiết bị với mount point trước đó. Bài viết này sẽ hướng dẫn các bạn sử dụng 2 lệnh mount và umount trên Linux để thực hiện công việc gắn kết và tháo gỡ  ổ cứng (HDD) trên Linux.

Mount ổ cứng

Mount ổ cứng bằng device file

Khi bạn gắn thêm ổ cứng vào máy tính/server chạy hệ điều hành Linux, hệ thống sẽ nhận ổ cứng đó với một device file đặt ở thư mục /dev.

Để kiểm tra danh sách ổ cứng và phân vùng được nhận trên Linux bạn sử dụng lệnh sau:

[[email protected] ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  1.5T  0 disk
├─sda1            8:1    0  190M  0 part /boot/efi
├─sda2            8:2    0  286M  0 part /boot
└─sda3            8:3    0  1.5T  0 part
  ├─centos-root 253:0    0  1.5T  0 lvm  /
  └─centos-swap 253:1    0 14.9G  0 lvm  [SWAP]
sdb               8:16   0  2.7T  0 disk
└─sdb1            8:17   0  2.7T  0 part
sr0              11:0    1 1024M  0 rom

Như trên ta thấy có một ổ cứng mới được gắn vào hệ thống có đường dẫn device file là /dev/sdb với phân vùng /dev/sdb1

Nếu một ổ cứng mới hoàn toàn chưa được tạo phân vùng bạn có thể xem bài viết sau:Sử dụng lệnh Fdisk trên Linux

Cú pháp lệnh mount:

mount -t <type> -o <option> <device file> <mount point>

Ví dụ để mount ổ cứng trên vào thư mục /home/tmp có sẵn, mình sẽ sử dụng câu lệnh sau:

mount -t ext4 -o defaults /dev/sdb1 /home/tmp/

– o default ở đây bao gồm rw, suid, dev, exec, auto, nouser, và async. Để xem các option khác, các bạn truy cập http://man7.org/linux/man-pages/man8/mount.8.html

Để kiểm tra quá trình mount thành công hay chưa, các bạn thực thi lệnh df -h. Nếu console log tương tự như bên dưới là thành công.

[[email protected]~]# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root   1.5T  611G  864G   42% /
devtmpfs                  7.8G     0  7.8G    0% /dev
tmpfs                     7.8G     0  7.8G    0% /dev/shm
tmpfs                     7.8G  410M  7.4G    6% /run
tmpfs                     7.8G     0  7.8G    0% /sys/fs/cgroup
/dev/sda2                 280M  204M   77M   73% /boot
/dev/sda1                 190M   12M  179M    6% /boot/efi
tmpfs                     1.6G     0  1.6G    0% /run/user/0
overlay                   1.5T  611G  864G   42% /var/lib/docker/overlay2/dfd5690478c7ba2412aba77f0e3bb34f97d16d0d6bbbea4fe5077eb713b3da55/merged
overlay                   1.5T  611G  864G   42% /var/lib/docker/overlay2/7d702e53c1f8d85babe9b7fd2caada8be1261922162fe305c72a10bcff5993d2/merged
shm                        64M     0   64M    0% /var/lib/docker/containers/b52efbdf8024607db210b3d71622b068e4dffc6a10e4917c531dbb0afc03d0a3/mounts/shm
shm                       256M     0  256M    0% /var/lib/docker/containers/f444d78ff9b2b49f271028b3394c12fbcd04dcee4d6c53026fb0a41a82d33009/mounts/shm
overlay                   1.5T  611G  864G   42% /var/lib/docker/overlay2/1d89897d12ac3481157b421df1fa5d091178a31417fdeb26090bea461b1186c1/merged
overlay                   1.5T  611G  864G   42% /var/lib/docker/overlay2/250571fd08e889490d878eccd1452f2089b10e95e0767383cbcee424fc95a743/merged
shm                       500M  8.0K  500M    1% /var/lib/docker/containers/01ee3ddbd4c6700c91c78d1eefe7787b899dc3dcec9baa5e10dbda8656a83f05/mounts/shm
shm                       500M  8.0K  500M    1% /var/lib/docker/containers/0c27373b715a59712547b0ee9ce2115ce56cb73b6fab02361369a962752e96c8/mounts/shm
/dev/sdb1                 2.7T  815G  1.8T   32% /home/tmp

Mở file /etc/fstab và thêm dòng sau vào cuối file:

/dev/sdb1 /home/tmp/ ext4 defaults 0 0

Hoặc thực thi lệnh sau:

echo "/dev/sdb1 /home/tmp/ ext4  defaults     0   0" >> "/etc/fstab"

Mount ổ cứng bằng UUID

Tại sao phải mount ổ cứng bằng UUID?

Nếu bạn chỉ gắn thêm vào hệ thống một ổ cứng thì chỉ cần mount theo device file như trên là ok, nhưng nếu bạn gắn 2 ổ cứng trở lên, khi khởi động lại máy sẽ gặp trường hợp ổ cứng này được mount vào thư mục kia. Nguyên nhân ở việc hệ thống nhận ngẫu nhiên device file của ổ cứng khi khởi động lại máy.

Ví dụ:

HDD1 có device file là /dev/sdb1

HDD2 có device file là /dev/sdc1

Nhưng sau khi khởi động lại thì HDD2 lại là /dev/sdb1, và ngược lại.

Để khắc phục điều này, mỗi ổ cứng đều có một UUID duy nhất, do đó nếu mount ổ cứng theo UUID sẽ khắc phục được vấn đề trên.

Kiểm tra UUID của ổ cứng

Để kiểm tra UUID của ổ cứng các bạn thực thi lệnh sau:

lsblk -o NAME,UUID,SIZE

Kết quả:

[[email protected] ~]# lsblk -o NAME,UUID,SIZE
NAME            UUID                                    SIZE
sda                                                     1.5T
├─sda1          BFB9-329D                               190M
├─sda2          4cb3b1b4-xxxx-xxxx-a512-9b847e02398c    286M
└─sda3          rvUPeD-xxxx-xxxx-lQPC-H2CG-knMA-nqcaoM  1.5T
  ├─centos-root 0858fae6-xxxx-xxxx-b4e0-06b1d9d40f86    1.5T
  └─centos-swap defc7d4f-xxxx-xxxx-8465-60742549ccc5   14.9G
sdb                                                     2.7T
└─sdb1          fb315fe6-xxxx-xxxx-8d30-80f44a874420    2.7T
sr0                                                    1024M
Mount ổ cứng sử dụng UUID

Để mount ổ cứng theo UUID bạn chỉnh sửa file /etc/fstab:

Mở file /etc/fstab và thêm dòng sau vào cuối file:

UUID=fb315fe6-xxxx-xxxx-8d30-80f44a874420 /home/tmp/ ext4 defaults 0 0

Hoặc thực thi câu lệnh sau:

echo "UUID=fb315fe6-xxxx-xxxx-8d30-80f44a874420      /home/tmp/   ext4    defaults     0   0" >> "/etc/fstab"

Kiểm tra file /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed Jan 16 15:15:23 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-root /                       xfs     defaults        0 0
UUID=4cb3b1b4-xxxx-xxxx-a512-9b847e02398c /boot                   xfs     defaults        0 0
UUID=BFB9-329D          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

UUID=fb315fe6-xxxx-xxxx-8d30-80f44a874420       /home/tmp/   ext4    defaults     0   0

Unmount ổ cứng

Để unmount ổ cứng các bạn sử dụng lệnh umount (không phải unmount).

Câu lệnh như sau:

umount /dev/sdb1

Hoặc

umount /home/tmp

Các bạn nhớ xóa luôn trong /etc/fstab để không tự động mount lại khi khởi động lại máy nhé.

Trên đây là hướng dẫn mount/unmount ổ cứng trên Linux. Đối với các thiết bị khác cách làm cũng tương tự như ổ cứng. Chúc các bạn thành công

Share: