BLOG

HTTPDISK - Mount ISO over Internet

จะดีไหม ถ้าเกิดว่าเราสามารถเปิดแผ่น ISO เพื่อใช้งานไฟล์ด้านในได้เลย โดยไม่ต้องดาวน์โหลดมาก่อนทั้งหมด? LEVEL51 มีวิธีมาฝากครับ

หนึ่งในความท้าทายของการขายสินค้า โดยเฉพาะเครื่องคอมพิวเตอร์ ก็คือเรื่องของการบริการหลังการขายครับ ซึ่งเราก็พบว่า ปัญหาโดยมักมักจะเกิดจากด้านซอฟท์แวร์มากกว่าปัญหาที่ตัวฮาร์ดแวร์ และด้วยภาพลักษณ์อันเลวร้ายของอาการ BLUE SCREEN OF DEATH (BSOD) ทำให้หลายคนก็กลัวว่า มันจะเป็นปัญหาที่ตัวฮาร์ดแวร์ ต้องเปลี่ยนใหม่ถึงจะหาย ทั้งที่ส่วนมากก็คือการอัพเดทไดรเวอร์ หรือลงวินโดวส์ใหม่มันซะเลย โชคดีที่ลูกค้าของเราส่วนใหญ่จะเทพคอมกันอยู่แล้ว (เพราะถ้าไม่เทพจริง น่าจะงงตั้งแต่เลือกเสปคละ) เราก็เลยไม่ต้องช่วยเหลือเยอะ แต่แน่นอนว่า เราก็พยายามหาวิธีที่สะดวกและรวดเร็ว ในการอัพเดทไดรเวอร์ให้กับลูกค้าทุกท่าน เพื่อให้ชีวิตของทุกท่านง่ายขึ้น และนำเอาเทคโนโลยีใหม่ๆ มาใช้ให้เกิดประโยชน์ครับ

จึงเป็นที่มาของโปรแกรม Auto Install ซึ่งสามารถดาวน์โหลดเพื่อใช้งานได้จาก http://bit.ly/lv51-autoinstall โดยมันจะทำการติดตั้ง Driver ให้อัตโนมัติ แถมยังไม่ต้องดาวน์โหลดไดรเวอร์มาก่อนด้วยอีกต่างหาก ;) 

ภาพ: โปรแกรม LEVEL51 Auto Install ซึ่งเป็นโปรแกรมเดียวกับที่เราใช้ลงเครื่องให้ที่ออฟฟิศเราเลยละ

แต่ติดตรงที่ วิธีที่โปรแกรม Auto Install ของเราดาวน์โหลดไดรเวอร์ (แอบใบ้ให้ว่า มันเป็นการใช้ Share Folder ผ่านอินเตอร์เน็ตครับ!) นั้น สามารถถูกบล็อกได้ และโปรแกรมเราก็ไม่แจ้งอะไรอีกต่างหาก เงียบไปเฉยๆ :P อีกทางหนึ่งที่สามารถทำได้คือดาวน์โหลดไฟล์ http://bit.ly/lv51-driverpack ที่เราสร้างไว้ให้ ลงมาแล้วแยกไฟล์เพื่อติดตั้ง ซึ่งต้องใช้เวลาและพื้นที่เนอะ เพราะนอกจากจะต้องดาวน์โหลดไฟล์ขนาด 2GB มาแล้วขนาดตอนแยกไฟล์ออกมามันก็อยู่ที่ 6GB กันเลยทีเดียว (เวอร์ชั่นใหม่ จะแสดงข้อความเตือนแล้วนะ)

เราจึงพยายามหาทางเลือกอื่นเพิ่มเติม สำหรับท่านที่ไม่สามารถใช้วิธี Share Folder ได้ และระหว่างที่ทีมงานของเรากำลังศึกษาเรื่องความเป็นไปได้ ที่เราจะ Restore Windows ผ่านอินเตอร์เน็ต (ซึ่งทำได้แล้ว เดี๋ยวจะมาบอกวิธีเร็วๆ นี้) จึงได้ไปเจอะกับไดรเวอร์ Httpdisk โดยบังเอิญครับ :D โดยผู้พัฒนาคือ อาจารย์ Bo Brantén แห่งมหาวิทยาลัย Umeå universitet ประเทศสวีเดน เป็น Open Source ด้วย แกมีโฮมเพจอยู่ที่นี้ครับ https://www.acc.umu.se/~bosse/

ขั้นตอนการติดตั้ง

Driver ที่อาจารย์กรุณาแชร์ไว้ ยังไม่ได้มีการ Sign เนื่องจากว่ามีค่าใช้จ่ายรายปี และอาจารย์เองแกก็คงไม่ได้หวังว่าจะทำให้ HTTPDisk เป็นผลิตภัณฑ์จริงๆ ขึ้นมา เราจึงต้องนำมา Test Sign โดยใช้ Code-Signing Certificate ที่ทีมงาน LEVEL51 สร้างขึ้น เพื่อให้สามารถติดตั้งได้บนเครื่องแบบ 64-bit ซึ่งยอมติดตั้งเฉพาะ Driver ที่ผ่านการ Sign มาเท่านั้นครับ การติดตั้งเลยซับซ้อนขึ้นนิดหน่อย (เราเองก็ยังไม่คิดว่าจะต้องมี Code-Signing Certificate ของเราเองอีกเหมือนกัน อิอิ)

แน่นอนว่าก่อนอื่น ดาวน์โหลดไฟล์จาก Microsoft Azure ของ LEVEL51 กันก่อน (สนับสนุนโดย Microsoft BizSpark ขอบคุณมากครับ)
(ปล. ไฟล์ Zip ที่ดาวน์โหลด จะมีไฟล์ชื่อ Source.zip ซึ่งเป็นไฟล์ต้นฉบับของอาจารย์แกแนบมาด้วยครับ)

จากนั้น เราจะต้องปรับให้ Windows สามารถติดตั้ง Driver แบบ Test-Signed ได้ โดยการเข้า Command Prompt (Admin) แล้วพิมพ์คำสั่งว่า

bcdedit /set {current} testsigning on

แล้วทำการ Restart เครื่อง สังเกตว่า ที่มุมล่างขวาของ Desktop จะมีคำว่า "test mode" ขึ้นมา

จากนั้น คลิกขวาที่ไฟล์ httpdisk.reg แล้วเลือก Merge แล้วตอบ Yes ตามลำดับ

ทำการ Copy ไฟล์ httpdisk.sys ไปวางไว้ที่ c:\windows\system32\drivers ส่วน httpdisk.exe นำไปวางไว้ที่ c:\windows

แล้วทำการ Restart อีกครั้ง

เมื่อกลับมาบน Windows แล้ว พิมพ์คำสั่งดังนี้ เพื่อเริ่มใช้งาน Httpdisk ครับ

net start httpdisk

เพื่อสั่งให้ service httpdisk ทำงาน (ทั้งนี้ คุณสามารถแก้ไขไฟล์ httpdisk.reg และเปลี่ยน Start จาก dword:00000003 เป็น dword:00000001 เพื่อให้ Driver เริ่มทำงานทุกครั้งก็ได้)

httpdisk /mount 0 http://level51.blob.core.windows.net/drivers/LV51-Driver.iso /cd m:

เพื่อ Mount แผ่น Driver ของ LEVEL51 ซึ่งจะมองเห็นเป็น Drive CD Drive ขึ้นมาเลย เจ๋งมาก! แล้วเมื่อเราเปิดเข้าไปดูไฟล์ใดไฟล์หนึ่ง จึงจะมีการดาวน์โหลดข้อมูลเฉพาะส่วนนั้นออกมา

ในแง่ของความเร็ว ก็น่าจะขึ้นอยู่กับความเร็วอินเตอร์เน็ตด้วยส่วนหนึ่งครับ แต่ที่ความเร็ว 2MB/s (ประมาณ 20Mbps) ก็นับว่า น่าจะเพียงพอกับการติดตั้ง Driver ได้เลยทีเดียว (ทดสอบผ่าน VM)

เมื่อใช้งานเสร็จแล้ว ต้องการที่จะปิดการทำงานของ Test Signing ก็เพียงเปิด Command Prompt แบบ Administrator แล้วพิมพ์คำสั่งว่า

bcdedit /deletevalue testsigning

ซึ่งเครื่องเราก็จะปลอดภัยจาก Kernel Driver ที่ไม่ได้ Sign ตามเดิม และ Httpdisk ก็จะไม่สามารถใช้งานได้ ต่อให้ตั้งเป็น Start แบบ 1 ก็ตาม

สำหรับโปรแกรม LEVEL51 Auto Install ได้รับการแก้ไขเพื่อรองรับการทำงานร่วมกับ Httpdisk เรียบร้อยแล้ว โดยมันจะทำการ Mount ไฟล์ ISO สำหรับติดตั้ง Driver ผ่าน HTTP อัตโนมัติ ถ้าหากว่ามี Driver Httpdisk ติดตั้งอยู่ และสามารถใช้งานได้ครับ

แน่นอนว่า อีกทางหนึ่งก็คือคุณสามารถดาวน์โหลดไฟล์ ISO แล้วใช้โปรแกรม Mount แผ่น เพื่อติดตั้งก็ได้เหมือนกัน (ต้องแน่ใจว่า โปรแกรมที่คุณใช้ จะทำการ Mount แผ่นให้อัตโนมัติหลังจาก Restart) แต่การดาวน์โหลด Driver ทั้งชุดแบบ 7z จะมีขนาดเล็กกว่าครับ

หวังว่าข้อมูลและไดรเวอร์ตัวนี้จะเป็นประโยชน์นะครับ ขอบคุณมากครับที่ิติดตามอ่านมาจนถึงตรงนี้

BLOG