จาก Linux: อ่าน เขียน แก้ ลบ drive windows เพื่อที่จะสามารถสำรองข้อมูลจากไดรฟ์ Windows (/dev/sdb2) ไปยัง USB โดยข้ามไฟล์ที่เสียหรืออ่านไม่ได้ และข้ามโฟลเดอร์ระบบของ Windows (เช่น Windows, Program Files) จะใช้ rsync copy ไฟล์ออกมาเพราะคำสั่ง rsync ดีกว่า cp เพราะสามารถจัดการเรื่องการข้ามไฟล์ (Ignore) และข้ามข้อผิดพลาด (Ignore errors) ได้ดีกว่ามากครับ
- สร้างจุดเชื่อมต่อ (Mount) หากยังไม่ได้ทำ (ถ้ามาจากหน้าที่แล้ว คือได้ทำตรงนี้ไว้แล้ว)
sudo mkdir -p /mnt/windows
sudo mkdir -p /mnt/usb_backup
# Mount ไดรฟ์ Windows (สมมติเป็น /dev/sdb2)
sudo mount -t ntfs-3g -o ro /dev/sdb2 /mnt/windows
# Mount ตัว USB ปลายทางของคุณ (ตรวจสอบชื่อไดรฟ์ด้วย lsblk สมมติเป็น /dev/sdc1)
sudo mount /dev/sdc1 /mnt/usb_backup
- ใช้คำสั่ง rsync เพื่อคัดลอกข้อมูล: รันคำสั่งนี้เพื่อคัดลอกข้อมูลทั้งหมดจาก Windows ไปยังโฟลเดอร์
sudo rsync -avP --ignore-errors \
--exclude='Windows/' \
--exclude='Program Files/' \
--exclude='Program Files (x86)/' \
--exclude='System Volume Information/' \
--exclude='$Recycle.Bin/' \
--exclude='Users/*/AppData/Local/Temp/' \
--exclude='Users/*/AppData/Local/Microsoft/Windows/INetCache/' \
--log-file=/mnt/usb_backup/backup_log.txt \
/mnt/windows/ /mnt/usb_backup/c_backup/
อธิบายพารามิเตอร์ที่ใช้:
-avP:
a (archive) เก็บค่าดั้งเดิมของไฟล์ (สิทธิ์, เวลา)
v (verbose) แสดงชื่อไฟล์ที่กำลังก๊อปปี้
P แสดงแถบความคืบหน้า (Progress bar)
--ignore-errors: ข้ามไฟล์ที่มีปัญหาหรืออ่านไม่ได้ และทำงานต่อจนจบ
--exclude='...': ระบุโฟลเดอร์ที่ไม่ต้องการก๊อปปี้ (เช่น โฟลเดอร์ระบบ Windows)
--exclude='Users/*/AppData/Local/Temp/': ใช้เครื่องหมาย * (Wildcard) เพื่อสั่งให้ข้ามโฟลเดอร์ Temp ของ ทุก User ในเครื่อง Windows นั้นๆ
--exclude='Users/*/AppData/Local/Microsoft/Windows/INetCache/': ข้ามไฟล์ Cache ของ Browser ซึ่งมักจะมีไฟล์เล็กๆ จำนวนมหาศาลที่ทำให้การก๊อปปี้ช้า
--log-file=/mnt/usb_backup/backup_log.txt:
- คำสั่งนี้จะสร้างไฟล์ชื่อ
backup_log.txt ไว้ใน USB ของคุณ
- ข้างในจะบอกรายละเอียดว่าไฟล์ไหนก๊อปปี้สำเร็จ และไฟล์ไหนที่เกิด Error (เช่นขึ้นว่า
read error หรือ permission denied)
- เนื่องจากเราใส่
--ignore-errors ไว้ โปรแกรมจะทำงานจนจบโดยไม่หยุดชะงัก แต่การมี Log จะช่วยให้คุณ “สบายใจ” ได้ว่าไฟล์งานสำคัญของคุณไม่ได้อยู่ในกลุ่มไฟล์ที่เกิด Error เหล่านั้นครับ
/mnt/windows/: ต้นทาง (ใส่ / ปิดท้ายหมายถึงเอาข้อมูลข้างในทั้งหมด)
/mnt/usb_backup/c_backup/: ปลายทางที่เป็นโฟลเดอร์ c_backup บน USB ของคุณ
วิธีการตรวจสอบ Log หลังก๊อปปี้เสร็จ
- หลังจากรันเสร็จแล้ว คุณสามารถใช้คำสั่งนี้เพื่อกรองดูเฉพาะรายการที่ “เกิดปัญหา” (Error) ได้ทันที:
grep "error" /mnt/usb_backup/backup_log.txt