จาก 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
