ใช้ dd เพื่อคัดลอกพาร์ติชั่นไปยังพาร์ติชั่นอื่น, ขณะใช้ฟิสิคัลไดรฟ์


17

ฉันไม่แน่ใจว่าจะอธิบายเรื่องนี้อย่างไรในเรื่องที่ดีขึ้นดังนั้น "คำถาม" อาจไม่ถูกต้อง แต่ที่นี่ไป ฉันมีฮาร์ดไดรฟ์สามตัว ไดรฟ์ A คือไดรฟ์ 320GB, ไดรฟ์ B คือไดรฟ์ 80 GB และไดรฟ์ C คือไดรฟ์ 1TB ฉันได้คัดลอกข้อมูลจากไดรฟ์ 80 GB ไปยังไดรฟ์ 1TB แล้วและกำลังจะปรับขนาดพาร์ติชัน (ดังนั้นฉันสามารถคัดลอกข้อมูลจากไดรฟ์ขนาด 320 GB ในครั้งต่อไปได้)

คำถามของฉันคือ: ถ้าฉันบูตเข้าสู่ระบบปฏิบัติการบนไดรฟ์ 1TB ฉันสามารถใช้ dd เพื่อคัดลอกไดรฟ์ 320 GB ไปยังพาร์ติชั่นอื่นในฟิสิคัลไดรฟ์นั้นได้หรือไม่? ฉันรู้ว่าฉันไม่ควรคัดลอกพาร์ติชั่นสด (หมายถึงฉันไม่สามารถคัดลอกข้อมูลจากไดรฟ์ขนาด 320 GB ได้หากฉันใช้ระบบปฏิบัติการนั้น)

เหตุผลของฉันคือ: ฉันลองใช้ Acronis TrueImage, Partition Manager และ Image 4 DOS / Linux (ทั้งสองแอปพลิเคชั่น) และใช้เวลามากกว่าหนึ่งสัปดาห์ในการคัดลอกข้อมูล ซึ่งหมายความว่าเป็นเวลาหนึ่งสัปดาห์ฉันไม่สามารถใช้คอมพิวเตอร์ซึ่งไม่เป็นที่ยอมรับ (เว้นแต่จะเป็นตัวเลือกเดียวของฉัน) ฉันหวังว่ามันจะใช้งานได้ดังนั้นอย่างน้อยฉันก็สามารถใช้คอมพิวเตอร์ได้ในขณะที่กำลังทำสำเนาอยู่

ถ้าฉันต้องการฉันสามารถบูตไปที่ Live CD (ไม่ใช่ตัวเลือกที่ต้องการจริงๆ) หรือใช้ "Drive B" แต่ฉันต้องการลบไดรฟ์นั้นออกโดยเร็วที่สุด


แน่นอนว่าทำไมไม่
Michael Hampton

คำตอบ:


18

ใช่สิ่งที่คุณต้องการจะทำงานได้ดีเนื่องจากเงื่อนไขสองข้อต่อไปนี้เป็นจริง:

  1. ไม่มี (ติดตั้ง) ระบบแฟ้มบนพาร์ติชันที่คุณกำลัง dd'ing ไป
  2. พาร์ทิชันที่คุณกำลัง dd'ing ไปอย่างน้อยขนาดเดียวกับคนที่คุณกำลัง dd'ing จาก (เช่น 320 GB)

เหตุผลที่มันใช้งานได้ดีคือพาร์ติชั่นเป็นเพียงไฟล์ใน UNIX เนื้อหาของพวกเขามีความหมายพิเศษหากพวกเขามีระบบไฟล์ติดตั้ง

สมมติว่าคุณมีเค้าโครงที่มีลักษณะเช่นนี้:

1 TB = sda, สองพาร์ติชัน, sda1 ที่คุณบูทจากและ sda2 ที่คุณต้องการ

320 GB = sdb, หนึ่งพาร์ติชัน, sdb1 ที่คุณต้องการ

คำสั่งของคุณจะมีลักษณะเช่นนี้:

dd if=/dev/sdb1 of=/dev/sda2 bs=1M

bs=1Mพารามิเตอร์ที่มีเพื่อให้มั่นใจว่า DD คัดลอกข้อมูลในชิ้นใหญ่แทนการออกคำขอสำหรับแต่ละภาค


1
หาก = แหล่งที่มาของปลายทาง = ฉันคิดว่ามีบางอย่างผิดปกติในคำแนะนำข้างต้น

ในตัวอย่างข้างต้น sdb1 คือต้นทางและ sda2 เป็นปลายทาง ฉันแก้ไขคำตอบให้ชัดเจนยิ่งขึ้นเกี่ยวกับเรื่องนั้น
Michael Fenn

1
ไม่จำเป็นต้องทำการresize2fsคัดลอก? แม้ว่าขนาดจะแตกต่างกันอย่างไร
Sopalajo de Arrierez

5

โดยทั่วไปแล้วมันก็โอเคที่จะพาร์ติชันใด ๆ ในขณะที่มันไม่ได้ติดตั้ง หากคุณต้องเมาต์พาร์ติชันต้นฉบับเพื่ออ่านในขณะที่ dd รันจะเป็นการดีกว่าถ้าจะเมาท์อ่านอย่างเดียวด้วยพารามิเตอร์ -o ro

หากคุณต้องการบูตครั้งแรกในพาร์ติชันต้นทางและใช้ dd เพื่อคัดลอกคุณสามารถทำการเมานต์ -o ro, remount / เพื่อให้อ่านหลังจากการบูท


อ่านอย่างเดียวไม่ได้หมายความว่าระบบไฟล์ไม่ได้หลอกด้วยบันทึกประจำวันหรือจัดระเบียบพื้นที่ว่างหรืออะไรก็ตาม
vonbrand

@ vonbrand คุณสามารถให้ตัวอย่างของการใช้งานระบบไฟล์ linux ที่ทำในขณะที่อยู่ในโหมด RO?
Basilevs

@vonbrand ระบบไฟล์ในยูนิกซ์เป็นอยู่ติด RO มากจะหมายถึงการที่ไม่มีการเขียนควรจะออกไปยังอุปกรณ์พื้นฐาน
Michael Fenn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.