Sunday, October 2, 2011

Auto mount a partition with fstab

Mount giống như ta nhé CD vào máy trên Windows, Linux sử dụng mount để "nhét" các ổ vào làm việc chứ ko phân chia ổ C,D... như Windows.

Mình đang dùng Ubuntu 10.10, bản này đã sử dụng UUID để chỉ định device được mount trong file fstab.

0. sda sdb..

sda là thiết bị đĩa cứng trên máy của bạn.
nếu cắm usb vào, nó sẽ nhận thiết bị là sdb. Cắm cái nữa sẽ là sdc...
Trên mỗi thiết bị có nhiểu phân vùng (partition) và được đánh số sda1,sda2...
Để xem các phân vùng đã mount ta dùng:
famihug@hvn:/media/Dale$ sudo df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              70G   19G   49G  28% /
none                  1.7G  276K  1.7G   1% /dev
none                  1.7G  168K  1.7G   1% /dev/shm
none                  1.7G  308K  1.7G   1% /var/run
none                  1.7G     0  1.7G   0% /var/lock
/dev/sda5             149G   61G   88G  42% /media/data




1. UUID và cách xác định 
UUID (universally unique identifier) nôm na là số riêng biệt của "thiết bị" . Ở đây ta coi mỗi phân vùng là 1 thiết bị, vậy chúng sẽ được cấp riêng từng số UUID. Để xác định UUID của các partition, ta dùng lệnh sau :

famihug@hvn:/media/Dale$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 2011-10-02 14:11 3faaac81-b83a-47a5-8c60-59d4efedb760 -> ../../sda7
lrwxrwxrwx 1 root root 10 2011-10-02 14:11 444ac057-1115-4904-a33d-05a0ebf994f1 -> ../../sda3
lrwxrwxrwx 1 root root 10 2011-10-02 14:11 8AF822528B5B201C -> ../../sda5
lrwxrwxrwx 1 root root 10 2011-10-02 14:11 BA3C8E0D3C8DC53B -> ../../sda1
lrwxrwxrwx 1 root root 10 2011-10-02 14:11 e370585d-6edd-47a6-b06b-3e616899f6ad -> ../../sda6

hoặc sudo blkid cũng cho kết quả tương tự.

để ý rằng có sự khác biệt giữa sda5 và sda1 với các sda còn lại là số UUID của nó ngắn hơn và viết hoa. Sự khác biệt này là do file system của chúng là NTFS còn số còn lại là ext (Filesystem của Linux)

2. fstab và automount
Linux đọc thông tin từ file /etc/fstab để mount khi khởi động. Ta sẽ edit file này để tự động mount ổ đĩa .
Trước hết ta cần tạo 1 thư mục để mount "ổ" của mình :
 famihug@hvn:/media/Dale$ sudo mkdir /media/data

sau đó sửa fstab để auto mount vào đây.

3. Vấn đề về permission
Vấn đề mình đã gặp phải là sau khi tự mount dữ liệu từ sda5 (ntfs-3g) vào thư mục /media/data/ một cách đơn giản
UUID=8AF822528B5B201C /media/data/    ntfs-3g 0 0
tất cả các file trong đó đều có permission là 777 @@. Để khắc phục vấn đề này , ta phải thêm các thông số chi tiết vào dòng vừa thêm

UUID=8AF822528B5B201C /media/data/    ntfs-3g auto,users,uid=1000,gid=1000,dmask=027,fmask=137,utf8 0 0
chỉ số dmask và fmask quyết định permission khi mount.
gõ man fstab để xem chi tiết.
Xem thêm ở đây : http://ubuntuforums.org/showthread.php?t=1490708

No comments: