เหตุใดการคัดลอกจึงใช้เวลาข้ามพาร์ติชั่นในดิสก์เดียวกัน [ซ้ำ]


-5

คำถามนี้มีคำตอบอยู่ที่นี่แล้ว:

สิ่งนี้เป็นสิ่งซ้ำซ้อนที่เป็นไปได้ของ การย้ายไฟล์จากพาร์ติชันหนึ่งไปยังอีกพาร์ติชันบน SSD

เมื่อฉันคัดลอกไฟล์จาก C:\...\Downloads\ ไปยัง C:\...\Desktop\ มันเกิดขึ้นทันที แต่ ถ้าฉันคัดลอกไฟล์เดียวกัน (1.12 GB) D: มันใช้เวลาค่อนข้างนาน ทำไมเป็นเช่นนั้น

คำตอบ:


2

ก่อนอื่นคำถามหลักของคุณคือ:

เหตุใดการคัดลอกจึงใช้เวลาข้ามพาร์ติชั่นในดิสก์เดียวกัน

จะลงรายละเอียดด้านล่าง แต่ดิสก์เดียวที่มีหลายพาร์ติชันไม่ใช่“ ดิสก์เดียวกัน” จากมุมมองของระบบไฟล์ จากมุมมองของระบบไฟล์พาร์ติชั่นเป็น“ ดิสก์ทางกายภาพ” อีกพาร์ติชันแม้ว่าจะเป็นเพียงแค่การจัดสรรพื้นที่“ เชิงตรรกะ” บนฟิสิคัลดิสก์พาเรนต์ขนาดใหญ่ที่มีสองพาร์ติชันอยู่:

  • ดิสก์มีพาร์ติชั่น
  • พาร์ติชันมีระบบไฟล์
  • ระบบไฟล์มีไฟล์

อ่านต่อเพื่อดูรายละเอียดเพิ่มเติม

หมายเหตุ: ฉันกำลังใช้คำศัพท์ Linux / Unix / Mac OS X เนื่องจากเป็นที่ที่ความเชี่ยวชาญหลักของฉันคือ แต่แนวคิดพื้นฐานที่ใช้กับ Windows และระบบปฏิบัติการใด ๆ จริงๆ

เหตุใด OS / เคอร์เนลจึงไม่ย้ายข้อมูล ของ   bytes / sector / address-pointers / สิ่งที่จัดสรรให้กับไฟล์นั้น   ตาราง FileSystem หนึ่งตารางไปยังตาราง FileSystem ของพาร์ติชันอื่นหรือไม่

นี่เป็นเพราะตารางไอโหนดที่ควบคุม & amp; จัดการว่าเซกเตอร์ใดบ้างที่เชื่อมต่อกับไฟล์ใด ๆ ที่เป็นแบบต่อดิสก์

  • ดังนั้นเมื่อคุณคัดลอกบางสิ่งจาก C: ไปยัง C: สิ่งที่เกิดขึ้นคือรายการไอโหนดจะถูกแก้ไขใน C: ไดรฟ์เพื่อระบุเส้นทางใหม่ไปยังไฟล์ที่เหมือนกัน C: ขับรถ

  • แต่เมื่อคุณคัดลอกบางสิ่งจาก C: ไปยัง D:จะต้องคัดลอกข้อมูลและจะต้องสร้างรายการ inode ใหม่บน D: ขับรถ

สมมติว่าคุณกำลังสงสัยว่าทำไมไม่เก็บข้อมูลไดรฟ์ทั้งหมดไว้บนหลัก C: ไดรฟ์แทนการทำบนอุปกรณ์แต่ละตัว ถ้าอย่างนั้นเกิดอะไรขึ้นเมื่อไดรฟ์หรือพาร์ติชั่นนั้นถูกย้ายไปที่เครื่องอื่น? D: ไดรฟ์จะมีลักษณะเหมือนพื้นที่เปล่าและไม่ได้ใช้งานโดยไม่มีข้อมูลตารางการจัดสรรนั้น และถ้าเกิดว่า C: ไดรฟ์หยุดทำงานในสถานการณ์เช่นนี้ไม่เพียง แต่คุณจะสูญเสีย C: ไดรฟ์ แต่ยังรวมถึงข้อมูลระบบไฟล์ที่ลึกซึ้งยิ่งขึ้นเชื่อมต่อกับ D: ขับรถ

คุณได้แก้ไขคำถามเพื่อระบุสิ่งนี้:

ฉันคิดว่าการแบ่งเป็นตรรกะไม่ใช่ทางกายภาพ

ใช่และไม่. การแยก มีเหตุผล ที่ด้านข้างของตารางพาร์ติชัน แต่ในระดับระบบไฟล์ระบบไฟล์จะเห็นพาร์ติชัน ราวกับว่ามันเป็นดิสก์ทางกายภาพอื่น .

และคุณยังถามสิ่งนี้:

ดังนั้นทำไมไม่มีตัวควบคุม OS หรือ FileSystem เพียงคัดลอกสิ่งนี้   ข้อมูลเมตาเกี่ยวกับ helloKitty.txt ไปที่ตารางพาร์ทิชันอื่น ๆ ?

มัน ทำ คัดลอกข้อมูลเมตาจากที่หนึ่งไปอีกที่หนึ่ง แต่ก็ยังคัดลอกข้อมูลไฟล์จริงตั้งแต่เปิดข้อมูล D: จะไม่มีอยู่จนกว่าจะถูกคัดลอกมาจาก C:. และข้อมูลเมตาที่คัดลอกนั้น จำกัด เฉพาะข้อมูลพื้นฐานเกี่ยวกับเนื้อหาไฟล์เนื่องจากข้อมูลไบต์และภาคจะเปลี่ยนแปลงเมื่อคัดลอกจาก C: ดิสก์ / พาร์ติชันเพื่อ D: ดิสก์ / พาร์ทิชัน

พอยน์เตอร์ของไบต์ไม่เปลี่ยนแปลงมันเป็นแบบสัมบูรณ์เพราะ   พาร์ติชันไม่เป็นฟิสิคัล

พาร์ติชันคือ "ตรรกะ" ในบริบทของพาร์ติชัน ข้อมูลที่เก็บไว้ในระบบไฟล์บนพาร์ติชั่นนั้นไม่ใช่“ ตรรกะ” ในบริบทของข้อมูลเกี่ยวกับแต่ละไฟล์ที่ขึ้นไปยังตารางพาร์ติชั่น นั่นเป็นเพียงวิธีการแบ่งพาร์ติชัน - ตามที่กำหนดโดย Wikipedia - อธิบายไว้ดังนี้ เน้นเป็นของฉัน:

การแบ่งพาร์ติชันของดิสก์เป็นการกระทำของการแบ่งฮาร์ดดิสก์ (HDD) ออกเป็น   หน่วยเก็บข้อมูลโลจิคัลหลายหน่วยที่อ้างถึงเป็นพาร์ติชัน เพื่อรักษาหนึ่ง   ฟิสิคัลดิสก์ไดร์ฟราวกับว่ามันเป็นดิสก์หลาย ๆ ตัวดังนั้นจึงแตกต่างกัน   ระบบไฟล์สามารถใช้กับแต่ละพาร์ติชัน


ไฟล์ไม่ได้รับการแก้ไขดังนั้น "โครงสร้างเส้นทางใหม่" จึงเปลี่ยนไปอย่างไร ฉันไม่ได้จัดเรียงข้อมูลหรืออะไรแบบนั้น
RinkyPinku

@ user4453945 โปรดดูคำตอบที่แก้ไขใหม่ของฉัน ส่วน “ …“ โครงสร้างเส้นทางใหม่” เปลี่ยนแปลงอย่างไร” นั่นเป็นเรื่องง่าย: C:\...\Downloads` and C: \ ... \ Desktop` เป็นสองตำแหน่งที่แตกต่างกัน ไฟล์เองไม่เปลี่ยนแปลง แต่พา ธ ไปยังไฟล์นั้นเปลี่ยนไปในตาราง inode เรียบง่ายเหมือนที่
JakeGould

1

ระบบไฟล์เป็นมากกว่าที่อยู่สำหรับเนื้อหาของแต่ละไฟล์ นอกจากนี้ยังต้องติดตามว่าส่วนใดของพาร์ติชั่นที่ไม่ได้ถูกจัดสรร (“ พื้นที่ว่าง”) และจำนวนพื้นที่ว่างทั้งหมด หากระบบไฟล์ในพาร์ติชั่น C: เพื่อจัดเก็บข้อมูลไฟล์บางอย่างภายในพาร์ติชัน D:มันจะต้องดูเป็นระบบไฟล์ก่อน D: โครงสร้างของการค้นหาพื้นที่ว่างและจะต้องทำเครื่องหมายพื้นที่นั้นตามที่จัดสรรไว้ในระบบไฟล์ D: ดังนั้นข้อมูลจะไม่ถูกเขียนทับโดยไฟล์อื่นที่สร้างขึ้น D:. ต่อมาเมื่อคุณลบไฟล์ที่ดูเหมือนจะอยู่ในระบบไฟล์ C:มันจะต้องเข้าถึงระบบแฟ้ม D: อีกครั้งเพื่อทำเครื่องหมายพื้นที่นั้นว่าง

การตรวจสอบข้อผิดพลาดจะเป็นปัญหา: โดยปกติหากมีพื้นที่ที่ทำเครื่องหมายว่าจัดสรร แต่ไม่ได้เป็นส่วนหนึ่งของไฟล์ใด ๆ ในโครงสร้างไดเรกทอรีของระบบไฟล์ถือว่าเป็นข้อผิดพลาด เครื่องมือตรวจสอบความสอดคล้อง (เช่น Windows chkdsk หรือ Linux / Unix fdisk ) จะทำเครื่องหมายที่ว่างว่าว่างหรือสร้างไฟล์ที่แมปไปยังพื้นที่นั้นเพื่อให้มนุษย์สามารถตรวจสอบข้อมูลและลบด้วยตนเอง แต่ถ้าข้อมูลที่สงสัยนั้นเป็นส่วนหนึ่งของไฟล์ในระบบไฟล์อื่น ๆ จะส่งผลให้พื้นที่ถูกทำเครื่องหมายว่าว่าง (ทันทีหรือเมื่อมีคนลบไฟล์ "กู้คืน") ในขณะที่ยังมีไฟล์ที่ใช้อยู่

การจัดสรรไฟล์อย่างปลอดภัยข้ามขอบเขตของระบบไฟล์จะต้องการให้ทั้งสองระบบไฟล์นั้น "รับรู้" ของโครงสร้างของกันและกันอย่างถาวรเท่าที่พวกเขาอาจจะเป็นเพียงระบบไฟล์เดียวที่ครอบคลุมหลายพาร์ติชัน ระบบไฟล์บางระบบสนับสนุนจริง ๆ ว่า: ดู zfs และ btrfs. การกระทำเหล่านี้คล้ายกับการจัดเรียงของ RAID ที่มีอยู่ในระบบไฟล์: พวกเขาสามารถสร้างหลายพาร์ติชันแม้ในดิสก์หลายดิสก์ปรากฏเป็นไดรฟ์ตรรกะเดียว แต่พาร์ติชั่น - และดิสก์ - นั้นขึ้นอยู่กับซึ่งกันและกัน คุณไม่สามารถใช้มันและใช้มันได้ด้วยตัวเอง


0

พาร์ติชันที่แตกต่างกันจะเหมือนดิสก์ที่แตกต่างกันในด้านนี้

บล็อกสำหรับแต่ละพาร์ติชันนั้นได้รับการกำหนดอย่างต่อเนื่องสิ่งที่คุณเสนอคือดิสก์จะแบ่งพาร์ติชันโดยอัตโนมัติเพื่อกำหนดเซกเตอร์ที่เป็นของพาร์ติชันให้กับอีกพาร์ติชัน

วิธีการนี้จะเกิดข้อผิดพลาดได้ง่ายมากจะลดประสิทธิภาพของดิสก์และทำให้คุณสมบัติอื่น ๆ เช่นการทำเจอร์นัลลดลง

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