Mini Howto Subject: การ mount CDROM แบบ EIDE By: Pruet Boonma pruet@ds90.intanon.nectec.or.th> Date: Apr 3, 1998 Update from: - License: สงวนลิขสิทธิ์เอกสารนี้ โดย พฤษภ์ บุญมา การเผยแพร่เอกสารนี้จะต้องอยู่ภายไต้ เงื่อนไขของ GNU General Public License เวอร์ชั่น 2.0 ที่ออกโดย Free Sofware Foundation กรุฒาอ่านรายละเอียดของ GPL ที่ Introduction: โดยทั่วไปแล้ว CDROM ที่ใช้จะเป็นแบบ EIDE นั่นคือ Linux จะมองเห็น CDROM ตัวนั้น เหมือนเป็น Harddisk ตัวหนึ่ง แต่ว่าจะมีข้อแตกต่างตรงที่ CDROM จะมี file system มาตรฐาน ของตัวเอง นั่นคือ ISO9660 ดังนั้นการ mount CDROM ก็ต้อง มี kernel ที่ support file system แบบ ISO9660 ด้วย Prerequirement: 1. CDROM แบบ EIDE โดยจะต่อเข้ากับ สายแพร์ ที่เชื่อมเข้ากับ Harddisk ก็ได้ หรือว่า จะต่อสายแยก อีกเส้นก็ได้โดยมีข้อกำหนดดังนี้ Primary Master (ต่อกับสายแพร์อันแรก และ set jumper เป็นแบบ master , ไม่ค่อยเจอ) จะเป็น /dev/hda Primary Slave (ต่อกับสายแพร์อันแรก และ set jumper เป็นแบบ slave) จะเป็น /dev/hdb Secondary Master (ต่อกับสายแพร์อันที่สอง และ set jumper เป็นแบบ master) จะเป็น /dev/hdc Secondary Slave (ต่อกับสายแพร์อันที่สอง และ set jumper เป็นแบบ slave) จะเป็น /dev/hdd ข้อสังเกตุคือ โดยทั่วไป CDROM จะสามารถ dectec master/slave ได้เอง แต่บางรุ่น ก็ต้อง set jumper และมักจะถูก set ให้เป็น Primary Slave มาจาก ร้าน เนื่องจากประหยัดสายแพร์ แต่ว่า ทำให้ ระบบโดยรวมทำงานได้ช้าลง ดังนั้น จึงควร set CDROM ให้เป็น Secondary master จะดีกว่า 2. Kernel ที่ Support ISO9660 file system สามารถตรวจสอบดูได้ว่า เครื่องที่ใช้อยู่ support หรือไม่โดยการ #cat /proc/filesystems ext2 minix nodev proc iso9660 vfat จะเห็นว่า มี iso9660 อยู่ ดังนั้น เครื่องนี่จึง support ISO9660 file system แต่ถ้าไม่มี ก็ลอง insert module เข้าไปโดย #insmod isofs ถ้าไม่มี error แสดงออกมา แสดงว่า insert สำเร็จแล้ว ถ้ามี ก็ต้อง make kernel ใหม่ การ mount CDROM แบบชั่วคราว : สมมุติว่า ต้องการ mount CDROM ที่เป็น Secondary Master (/dev/hdc) ไปยัง Directory /cdrom สามารถทำได้โดย ใส่แผ่น CDROM เข้าไปในเครื่อง แล้วทำการพิมพ์คำสั่งดังนี้ # mount -t iso9660 /dev/hdc /cdrom ก็จะสามารถ mount ได้ และเมื่อต้องการ unmount ก็ทำได้โดย # umount /cdrom แต่ว่า ในขณะนั้น จะต้องไม่มีการ access CDROM หรือว่า อยู่ใน directory ภายใน CDROM นั่น การ mount CDROM ทุกครั้งที่ Boot up system : การทำให้ Linux mount CDROM ให้ทุกครั้งที่ boot ก็ทำได้โดยการเข้าไปแก้ไข File rc script ซึ่ง โดยทั่วไปจะแก้ไข file /etc/rc.d/rc.local และถ้า kernel ไม่ support ISO9660 file system ก็ต้อง insert module ก่อนทำการ mount ด้วย ดังนี้ Kernel support ISO9660 file system อยู่แล้ว ทำได้โดยเพิ่มข้อความต่อไปนี้เข้าไปที่ /etc/rc.d/rc.local ในส่วนล่างของ file /sbin/mount -t iso9660 /dev/hdc /mnt ถ้า Kernel ไม่ support และใช้ kernel version 2.0.30 อยู่ ก็ทำได้โดย /sbin/insmod /lib/modules/2.0.30/fs/isofs.o /sbin/mount -t iso9660 /dev/hdc /mnt ถ้าเป็น kernel version อื่น ก็ทำการแก้ไข หมายเลขให้ตรงกัน โดยสามารถดู เลข version ได้โดย # uname -a Linux ds90 2.0.30 #13 Tue Dec 9 11:39:29 ICT 1997 i586 unknown # ข้อหน้าสังเกตุคือ ถ้าไม่มีแผ่น CDROM ในเครื่อง จะไม่สามารถ mount CDROM นั่นได้ และถ้าไม่ unmount ก็ไม่สามารถ eject เอา CDROM ออกได้เช่นกัน