รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

Linux Server (CentOS) : การเรียกดูไฟล์ในแผ่นซีดีรอมหรือดีวีดีบนลีนุกซ์

    บนลีนุกซ์เมื่อใส่แผ่นซีดีรอมหรือดีวีดีเข้าไปในไดร์ฟแล้ว หากต้องการเรียกดูไฟล์ในแผ่นต้องทำการ mount ตัวไดร์ฟ (/dev) กับไดเร็คทอรีหรือพาธ (path) บนลีนุกซ์ แล้วถึงจะดูไฟล์ภายใต้พาธนี้ได้

    หมายเหตุ หากติดตั้งชุดโปรแกรม Desktop Environment เช่น GNOME ด้วย อาจมีโปรแกรมช่วย mount ตัวไดร์ฟโดยอัตโนมัติ (automount) คือเมื่อใส่แผ่นเราก็สามารถเรียกดูไฟล์ในแผ่นได้เลย ถ้าเป็นแบบนี้ก็ไม่จำเป็นต้องใช้คำสั่ง mount

    หากติดตั้งลีนุกซ์โดยใช้แผ่นแล้ว ส่วนใหญ่จะมีการสร้างลิ้งค์ไฟล์ (soft link) ไว้เป็นชื่อ /dev/cdrom หรือ /dev/dvd

    ตัวอย่างเช่นหากติดตั้ง CentOS 6.2 จะมี soft link ชี้ไปที่ /dev/sr0

    [root@cent6 ~]# ls -l /dev/cdrom lrwxrwxrwx. 1 root root 3 Mar 31 13:45 /dev/cdrom -> sr0

    [root@cent6 ~]# ls -l /dev/dvd lrwxrwxrwx. 1 root root 3 Mar 31 13:45 /dev/dvd -> sr0

    [root@cent6 ~]# ls -l /dev/sr0 brw-rw----. 1 root cdrom 11, 0 Mar 31 13:45 /dev/sr0

    เราสามารถใช้คำสั่ง mount ตามด้วยชื่อไดร์ฟ /dev/cdrom หรือ /dev/dvd หรือแม้แต่ /dev/sr0 ก็ได้

    เวลา mount ไดร์ฟแบบใช้ชั่วคราวเช่น cdrom หรือ dvd นิยม mount กับพาธ /mnt

    ตัวอย่างการ mount ไดร์ฟที่มีแผ่นติดตั้ง CentOS 6.2 แผ่นที่ 1 เข้ากับพาธ /mnt

    [root@cent6 ~]# mount /dev/dvd /mnt mount: block device /dev/sr0 is write-protected, mounting read-only

    เมื่อ mount แล้ว จะไม่สามารถกดปุ่ม eject เพื่อเอาแผ่นออกได้

    ตัวอย่างการใช้คำสั่ง ls เพื่อดูไฟล์ในแผ่น

    [root@cent6 ~]# cd /mnt/ [root@cent6 mnt]# ls -l total 658 -rw-r--r--. 2 root root 14 Dec 16 09:39 CentOS_BuildTag drwxr-xr-x. 3 root root 2048 Dec 11 06:38 EFI -rw-r--r--. 2 root root 212 Dec 15 11:32 EULA -rw-r--r--. 2 root root 18009 Dec 15 11:38 GPL drwxr-xr-x. 3 root root 2048 Dec 11 06:38 images drwxr-xr-x. 2 root root 2048 Dec 11 06:36 isolinux drwxrwxr-x. 2 500 500 630784 Dec 16 09:43 Packages -rw-r--r--. 2 root root 1354 Dec 9 19:58 RELEASE-NOTES-en-US.html drwxr-xr-x. 2 root root 4096 Dec 16 09:46 repodata -rw-r--r--. 2 root root 1706 Dec 9 19:57 RPM-GPG-KEY-CentOS-6 -rw-r--r--. 2 root root 1730 Dec 9 19:57 RPM-GPG-KEY-CentOS-Debug-6 -rw-r--r--. 2 root root 1730 Dec 9 19:57 RPM-GPG-KEY-CentOS-Security-6 -rw-r--r--. 2 root root 1734 Dec 9 19:57 RPM-GPG-KEY-CentOS-Testing-6 -r--r--r--. 1 root root 3380 Dec 16 09:46 TRANS.TBL

    เมื่อสิ้นสุดการใช้งาน ต้องการเอาแผ่นออกมาจากไดร์ฟ เราต้องออกจากพาธ /mnt ก่อน แล้วใช้คำสั่ง umount ตามด้วยพาธที่ mount ไว้

    [root@cent6 mnt]# cd ~ [root@cent6 ~]# umount /mnt

    หรืออาจใช้คำสั่ง eject เพื่อ umount แล้วสั่งให้ไดร์ฟเอาแผ่นออกด้วย

    [root@cent6 ~]# eject

    ปัญหาการ umount ไม่ได้

    หากพาธที่ mount แผ่นไว้ ถูกใช้งานอยู่ เช่นมี user เรียกดูไฟล์ภายใต้พาธนี้อยู่ จะไม่สามารถ umount ได้

    [root@cent6 ~]# mount /dev/dvd /mnt mount: block device /dev/sr0 is write-protected, mounting read-only

    [root@cent6 ~]# cd /mnt/ [root@cent6 mnt]# [root@cent6 mnt]# umount /mnt umount: /mnt: device is busy.  (In some cases useful info about processes that use  the device is found by lsof(8) or fuser(1))

    หากเราทราบผู้ที่ใช้พาธนี้อยู่ ก็สามารถบอกให้ cd ออกจากพาธได้ แต่ถ้าไม่ทราบ หรือหาไม่เจอ ต้องใช้คำสั่ง fuser เพื่อหาโปรเซสที่เรียกใช้พาธนี้อยู่

    ใช้คำสั่ง fuser ตามด้วยพาธที่ mount แผ่นไว้

    [root@cent6 ~]# fuser /mnt /mnt: 1357c

    ตัวเลข 1357 คือ PID ของโปรเซสที่เรียกใช้พาธนี้อยู่ ใช้คำสั่ง ps เพื่อดูว่าโปรเซสนี้คืออะไร

    [root@cent6 ~]# ps -ef | grep 1357 root 1357 1353 0 13:49 pts/0 00:00:00 -bash

    ในที่นี้ 1357 คือโปรเซส bash มีคนล็อกอินอยู่ที่หน้าจอ TTY pts/0 เราสามารถใช้คำสั่ง w เพื่อดูว่า pts/0 ล็อกอินมาจากที่ไหนได้

    [root@cent6 ~]# w  15:34:22 up 1:48, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.5.1 13:49 4:42 0.07s 0.07s -bash root pts/1 192.168.5.2 15:29 0.00s 0.02s 0.00s w

    จากผลลัพธ์คำสั่ง w จะเป็นว่า pts/0 เป็นการล็อกอินด้วย root จาก 192.168.5.1 เราก็สามารถไปแจ้งเตือนเพื่อให้ออกจากพาธได้

    แต่ถ้าลองใช้คำสั่ง ps แล้ว ไม่สามารถหาเจอได้ว่าใครกำลังใช้อยู่ อาจต้อง kill โปรเซสนั้นไป หรือใช้คำสั่ง fuser ตามด้วยออปชั่น ‘-k’ เพื่อ kill โปรเซสทั้งหมดที่เรียกพาธอยู่

    [root@cent6 ~]# fuser /mnt /mnt: 1357c

    [root@cent6 ~]# fuser -k /mnt /mnt: 1357c

    [root@cent6 ~]# fuser /mnt

    [root@cent6 ~]# umount /mnt

    ก็จะสามารถ umount พาธ แล้วเอาแผ่นออกจากไดร์ฟได้