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:
[root@localhost ~]# 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.
[root@ITFROMZERO~]# 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ả:
[root@localhost ~]# 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