จำกันได้ไหมครับว่าใครบอกคุณว่า เวลาที่จะถอดพวกแฟลชไดร์ฟ หรือ External HDD ที่เสียบกับเครื่องคอมพิวเตอร์ผ่านพอร์ต USB อยู่ออก ต้องไปคลิก Eject มันให้ขึ้นมาก่อนว่า Safe to remove (สำหรับ Windows 10) ถึงจะถอดออกได้อย่างปลอดภัย แต่ในขณะที่อีกหลายคนก็ไม่ใส่ใจเลย ดึงออกมาเลย แล้วเคยสงสัยไหมครับว่า จริงๆ แล้ว ทำไมถึงต้อง Eject แล้วถ้าไม่ Eject แล้วมันจะเป็นอะไรรึเปล่า?
ทำไมถึงต้อง Eject ก่อน?
จริงๆ แล้ว การที่จะต้อง Eject อุปกรณ์จำพวก Removable disk (พวกแฟลชไดร์ฟ หรือ External HDD) ออกจากเครื่องคอมพิวเตอร์เนี่ย มันไม่ได้มีแค่บนระบบปฏิบัติการ Windows นะครับ แต่ macOS หรือ Linux นี่ก็ต้องทำเช่นกัน ถ้าว่าทำไมต้องทำ? ก็เพราะว่าปกติแล้วเพื่อความรวดเร็วในการใช้งานเนี่ย เวลาที่จะมีการเขียนข้อมูลใดๆ ลงไปบนแฟลชไดร์ฟ หรือ External HDD แบบนี้ มันจะยังไม่เข้าข้อมูลลงไปเลย แต่จะเก็บไว้ในแคช (Cache) ก่อน แล้วค่อยๆ ทยอยเขียนข้อมูลลงไปแฟลชไดร์ฟหรือ External HDD ทีหลังครับ
ฉะนั้น หากเราถอดแฟลชไดร์ฟ หรือ External HDD ออกจากพอร์ต USB โดยไม่ Eject ก่อน มันก็อาจจะมีความเป็นไปได้ที่ข้อมูลยังถูกเขียนไม่ครบ ก็จะทำให้ข้อมูลเกิดเสียหายได้ (Data corruption) นอกจากนี้ ในบางครั้ง (โดยเฉพาะบนระบบปฏิบัติการ Windows) มันอาจจะมีโปรแกรมบางตัวที่ยังแอบเข้าถึงตัวแฟลชไดร์ฟ หรือ External HDD อยู่ … เราอาจจะเคยเห็นข้อความว่า This device is currently in use เวลาที่จะ Eject ออกใช่ไหมครับ? นั่นแหละ แบบนั้นเลย … ซึ่งการที่เราถอดอุปกรณ์ออกโดยไม่ Eject ก่อน ก็จะส่งผลให้ข้อมูลที่กำลังถูกเขียนโดยโปรแกรมพวกนี้ เกิดความผิดพลาดขึ้นได้นั่นเอง
ถามจริง แล้วจริงๆ ควรจะต้อง Eject ไหม?
สำหรับระบบปฏิบัติการ macOS และ Linux ต้องขอบอกก่อนเลยว่า ควรจะต้อง Eject ก่อนครับ เพราะว่าระบบปฏิบัติการทั้งสองตัวนี้ มันเปิดใช้การเขียนข้อมูลลงแคชก่อนเขียนลงแฟลชไดร์ฟ หรือ External HDD ฉะนั้นถ้าเกิดไม่ Eject ก่อน ก็จะเสี่ยงต่อการที่ข้อมูลจะเกิดปัญหาได้

ในทางกลับกัน ระบบปฏิบัติการ Windows คงจะรู้ (จากประสบการณ์อันยาวนาน) ว่าผู้ใช้งานเขาไม่ค่อยแยแสกับไอ้การ Eject อุปกรณ์ซักเท่าไหร่ เขาก็เลยตั้งค่าเริ่มต้นของ Removal policy เอาไว้เป็น Quick removal หรือก็คือ ไม่เปิดใช้การเขียนแคชนั่นเอง ฉะนั้น โดยปกติแล้ว หากไม่มีโปรแกรมอื่นใดแอบมาใช้แฟลชไดร์ฟ หรือ External HDD ละก็ แม้จะไม่ Eject ก็ยังสามารถถอดออกได้เลยครับ

ฉะนั้นแล้ว…
- หากคุณแน่ใจว่าไม่มีโปรแกรมอื่นใดแอบใช้อุปกรณ์อยู่ ก็สามารถถอดแฟลชไดร์ฟ หรือ External HDD ได้โดยไม่ต้อง Eject ก่อนเลยครับ ไม่มีปัญหาอะไร … ยกเว้นคุณจะดันไปตั้งค่า Removal policy ของอุปกรณ์นั้นๆ เป็น Better performance ซึ่งจะเปิดใช้งานการเขียนแคช
- แต่หากคุณไม่แน่ใจว่ามีโปรแกรมอื่นใดแอบใช้อุปกรณ์อยู่ไหม การ Eject อุปกรณ์ก่อนถอดออกมา ก็จะปลอดภัยที่สุดครับ เพราะหาก Eject ไม่ได้ มันก็จะแจ้งเตือนเราว่ายังมีโปรแกรมอื่นใช้งานอุปกรณ์อยู่ เราก็จะได้รู้ว่ายังไม่ปลอดภัยนะถ้าจะถอดออก ถ้าถอดออกโดยไม่แยแสอะไร ก็มีความเสี่ยงที่ข้อมูลบางส่วนอาจจะเสียหายได้นะ อะไรแบบนี้
ก็อยาก Eject นะ แต่ Windows มันบอกว่า This device is currently in use แล้วจะทำยังไงดี?
บน macOS กับ Linux ผมยังไม่เคยเจอปัญหาคล้ายๆ กันแบบนี้ ถ้าคุณปิดโปรแกรมที่ใช้งานอุปกรณ์จนหมด (เท่าที่เห็นหน้าต่างโปรแกรมเปิดอยู่นั่นแหละ) ก็จะสามารถ Eject ออกได้ไม่ยากเลย แต่ Windows นี่มักจะมีอะไรแอบใช้อยู่นิดๆ หน่อยๆ เสมอ จนทำให้เจอหน้าจอเด้งว่า This device is currently in use บ่อยมาก แล้วจะให้ทำยังไงดี?
คุณก็มีทางเลือกดังนี้ครับ
- ง่ายสุดเลยคือไล่ปิดโปรแกรมครับ แค่เปิด Windows Explorer เปิดไดร์ฟที่เป็น แฟลชไดร์ฟ หรือ External HDD ค้างเอาไว้ มันก็ถือว่า This device is currently in use แล้ว นี่ยังไม่นับว่าเราอาจจะใช้โปรแกรมอื่นเปิดอะไรบางอย่างอยู่อีก เช่น รูป วิดีโอ ไฟล์เอกสาร ฯลฯ ปิดหมดแล้ว ก็ลอง Eject ใหม่ดูครับ
- ถ้าปิดโปรแกรมทุกอย่างหมดแล้ว มันก็ยัง Eject ไม่ได้ ก็รีสตาร์ท Windows ซะ โปรแกรมทุกโปรแกรมก็จะถูกปิดลง พวกข้อมูลใดๆ ที่กำลังรอถูกเขียนลงไปในแฟลชไดร์ฟ หรือ External HDD ก็จะถูกเขียนลงไป พอรีสตาร์ทแล้วก็สามารถถอดอุปกรณ์ออกได้เลย
- มันมีวิธีที่ยากในการหา Process ที่ใช้งาน USB device อยู่ คือการเข้าไปเช็ก Event log ผ่านทาง Event viewer แต่ว่าขั้นตอนมันเยอะไป และคนทั่วไปไม่น่าจะยินดีที่จะทำตามขั้นตอนพวกนี้ครับ ผมเลยไม่แนะนำนะครับ
- ใช้โปรแกรม USB Safely Remove ซึ่งจะมาแทนที่ฟังก์ชันการ Eject ของระบบปฏิบัติการ Windows แล้วเวลาที่จะ Eject ออก แต่ยังมีโปรแกรมที่ยังใช้งานอุปกรณ์อยู่ เราก็จะรู้และสามารถไปปิดโปรแกรมพวกนั้นได้ (ตัวโปรแกรมจะมีตัวเลือกให้ Force stop ด้วย) แต่โปรแกรมนี้มันได้แค่ทดลองใช้ 30 วัน จากนั้นก็ต้องจ่ายตังค์ครับ เริ่มต้นที่ $19.99 ครับ (อัพเกรดฟรีปีนึง หรือถ้าต้องการอัพเกรดได้ตลอดชีพก็จ่ายไป $44.90 ครับ) ซึ่งตัวเลือกนี้ ผมว่าไม่เหมาะกับคนทั่วไป