สำเนาไฟล์ที่แน่นอนจาก NTFS ไปยัง NTFS อื่นโดยใช้ Linux


14

ฉันพยายามคัดลอกไฟล์ทั้งหมดจาก NTFS ไปยังไดรฟ์ภายนอกและต้องการรักษาสิทธิ์และคุณลักษณะทั้งหมดไว้ ไดรฟ์ภายนอกมี NTFS อยู่แล้วและมีไฟล์อื่นอยู่

ฉันถือว่าใช้เครื่องมือต่อไปนี้:

  • ntfscloneไม่ทำงานเนื่องจากทำงานในระดับเซกเตอร์และจะโคลน FS ทั้งหมดดังนั้นจึงเป็นการทำลายข้อมูลเก่า หากใช้เพื่อสร้างไฟล์รูปภาพฉันไม่สามารถเข้าถึงเนื้อหาจากเครื่อง Windows ได้
  • rsync ไม่เก็บข้อมูลเมตาทั้งหมด

อีกทางเลือกหนึ่งคือใช้robocopyใน Windows ที่ใช้งานอยู่ แต่ฉันต้องการคัดลอกไฟล์โดยไม่ต้อง (พาร์ติชันต้นทางใช้เป็นระบบC:\)

ฉันจะคัดลอกไฟล์ได้อย่างไร


5
คุณกำลังพยายามเมตาดาต้าที่แน่นอนเก็บไว้ที่นี่ที่ RSYNC จะไม่เก็บไว้กับพารามิเตอร์ที่เหมาะสม? คุณอ้างถึงข้อมูลเมตาของซอฟต์แวร์ไฟล์เพลงหรือการอนุญาต FS จริงโครงสร้างเวลาเจ้าของ ฯลฯ ใช่หรือไม่ ฉันไม่แน่ใจว่าคุณได้ลองกับ RSYNC แล้ว แต่ดูเหมือนว่าการใช้พารามิเตอร์ที่ถูกต้อง-AXogtเช่นควรเก็บข้อมูลเมตาของ FS ไว้เป็นส่วนใหญ่ โปรดอธิบายสิ่งที่คุณได้ลองแล้วว่าใช้งานไม่ได้และ "เมทาดาทา" ที่คุณเห็นซึ่งไม่ได้เก็บไว้ระหว่างพาร์ติชัน NTFS
Pimp Juice IT

ฉันรู้ว่าไฟล์ตัวเองสามารถคัดลอกตรง byte-for-byte ใน linux แต่มันเป็นวันที่ทั้งหมดที่สร้างขึ้นแก้ไขเข้าถึงเข้าถึงที่ขาดหายไป? หรือผู้ใช้ / เจ้าของ & สิทธิ์ NTFS? จะไม่มีวิธีเปลี่ยนวันที่ & การอนุญาตเหล่านี้ในไฟล์หลังจากที่พวกเขาคัดลอกกลับไปที่ windows NTFS หรือไม่?
Xen2050

คำตอบ:


8

ไม่มีทางที่จะคัดลอกไฟล์ NTFS อย่างแน่นอนผ่าน Linux แม้แต่Wineซึ่งเป็นเลเยอร์ที่เข้ากันได้กับ Windows บน Linux ทำงานโดยการแปลงการอนุญาตกลับไปกลับมาระหว่าง Linux และ Windows และอื่น ๆ จะถูก จำกัด ด้วยตัวหารร่วมน้อยที่สุด (ค่อนข้างเล็ก)

ทางออกเดียวที่ฉันเห็นคือใช้ Windows บน Linux ภายในเครื่องเสมือน (หรือทางกายภาพ)

ฉันเชื่อว่าคุณได้กล่าวถึงความเป็นไปได้นี้ในโพสต์ของคุณและต้องการหลีกเลี่ยง แต่ฉันไม่เห็นความเป็นไปได้อื่น เฉพาะ Windows เท่านั้นที่สามารถคัดลอกไฟล์ NTFS ได้อย่างแน่นอน Linux สามารถคัดลอกพาร์ติชัน NTFS ได้เท่านั้น

บทความนี้อาจช่วยให้: วิธีการติดตั้งและเรียกใช้ Microsoft Windows ฟรีบน Linuxโดยใช้เครื่องเสมือนฟรีทำให้พร้อมสำหรับการดาวน์โหลดโดยไมโครซอฟท์


ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้ แต่ตามmanpageของ ntfs-3g ตัวเลือกstreams_interface=xattrจะถูกตั้งค่าตามค่าเริ่มต้น ถ้าฉันเข้าใจถูกต้องหมายความว่าแอตทริบิวต์ไฟล์ NTFS (รวมถึงสิทธิ์ Windows) ถูกแมปกับxattrแอตทริบิวต์ใน linux ตั้งแต่cp -aและrsync -Xคัดลอกคุณลักษณะนี้มันไม่ควรจะเป็นสำเนาที่แน่นอน?
JojOatXGME

@JojOatXGME: รูปแบบการอนุญาตของ Windows และ Linux นั้นแตกต่างกันอย่างสิ้นเชิง เฉพาะแอตทริบิวต์พื้นฐานที่สุดเท่านั้นที่มีคู่ที่ตรงกัน
harrymc

ฉันรู้ว่า. ฉันไม่อ้างว่า Linux เข้าใจคุณลักษณะนี้ แต่แอตทริบิวต์xattrเป็น key-value-paris ที่ไม่จำเป็นต้องเข้าใจโดยระบบปฏิบัติการ NTFS-3Gดูเหมือนว่าจะทำให้สิทธิ์ของ Windows system.ntfs_aclสามารถใช้ได้เป็นแอตทริบิวต์ ดูเหมือนว่าจะเป็นจริงสำหรับ matadata อื่น ๆ ใน NTFS เนื่องจากมีการคัดลอกแอตทริบิวต์ xattr เมื่อใช้rsync -Xหรือcp -aอาจคัดลอกข้อมูลเมตาเช่นกัน มันขึ้นอยู่กับข้อ จำกัด ที่เป็นรูปธรรมxattrและการนำไปใช้ntfs-3gแต่มันเป็นไปได้สำหรับฉัน
JojOatXGME

แล้วเราจะทดสอบได้อย่างไร นั่นคือสิ่งที่เราต้องการด้วยคำแถลงเช่นนี้ มันจะมีประโยชน์ก็ต่อเมื่อสามารถทดสอบ ....
UV

1

สิ่งแรกคือคุณต้องตัดสินใจถ้าคุณต้องการคัดลอกไฟล์ ...

หรือคุณต้องการทำสำเนาพาร์ติชัน NTFS ของคุณให้เสร็จสมบูรณ์แยกส่วนเซกเตอร์รวมถึง "ข้อมูลเก่า", "ไฟล์อื่น ๆ " รวมถึง "เมทาดาทาทั้งหมด" ที่คุณพูดถึงข้างต้นอย่างกว้างขวาง

สำหรับหลังใช้ dd:

dd if=/dev/sda2 of=/mnt/usbdisk/my-ntfs-partition-D.img bs=1M

มีความสุข.


2
ฉันตัดสินใจแล้วและมันก็เป็นคำถามแล้ว ฉันต้องการคัดลอกไฟล์ที่มีข้อมูลเมตาที่เกี่ยวข้องทั้งหมด สิ่งนี้ควรเป็นไปได้เนื่องจาก FS ต้นทางและปลายทาง FS คือ NTFS ดังนั้นจึงมีความสามารถเหมือนกัน การใช้ddจะเป็นตัวเลือกที่ไม่ดีเนื่องจากไม่ได้คำนึงถึงข้อมูล FS หากคุณมี NTFS คุณควรใช้ntfscloneสำหรับการสร้างภาพเสมอ
Scolytus

ในกรณีนี้ให้ใช้ robocopyor ntfscopy ( tzworks.net/prototype_page.php?proto_id=9 ) แต่ไม่มีใน linux
Paxsali

ฉันก็พูดถึงrobocopyคำถามของฉันด้วย ดังนั้นฉันขอขอบคุณที่คุณจ่าย แต่มันไม่ใช่คำตอบสำหรับคำถามของฉัน
Scolytus

1

Linux สามารถคัดลอกเนื้อหาของไฟล์ NTFS ได้ แต่ไม่ใช่วันที่และแอตทริบิวต์ / แก้ไข / สร้าง / เข้าถึงทั้งหมด (ฉันถือว่าเป็นสิ่งที่คุณต้องการเก็บรักษาไว้)

ดังนั้นทำไมคุณไม่จดบันทึกวันที่และคุณลักษณะปัจจุบัน ( dirควรจะสามารถแสดงได้) จากนั้นคัดลอกไฟล์ใน linux และเมื่อคุณใช้ Windows อีกครั้งให้เปลี่ยนวันที่ & แอตทริบิวต์กลับเป็นต้นฉบับ

ใช้เครื่องมือใน Windows ที่สามารถเปลี่ยนไฟล์ได้เช่นเดียวกับไฟล์เหล่านี้ :

เห็นได้ชัดว่าFile Explorer ของ Windows ไม่ได้รักษาวันที่ของไฟล์ทั้งหมดอย่างถูกต้องเช่นกัน แต่คำสั่ง tar & zip ของ cygwinควรบันทึกวันที่ของไฟล์ดังนั้นการใช้หนึ่งในคำสั่งใน Windows เพื่อสร้างไฟล์เก็บถาวรควรทำงานก่อนเช่นกันจากนั้นคัดลอกไฟล์เก็บถาวรแบบเก่า ๆ


หากแอ็ตทริบิวต์มีความสำคัญยิ่งและคัดลอกได้ยากแม้ใน Windows ก็ควรสำรองข้อมูลไว้ในไฟล์ข้อความหรือฐานข้อมูลหรือสร้างเป็นส่วนหนึ่งของชื่อไฟล์ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.