อิมเมจดิสก์ dd คืออะไร การสร้างแฟลชไดรฟ์ USB ที่สามารถบู๊ตได้สำหรับการติดตั้ง Windows โดยใช้โปรแกรม Rufus การย้ายระบบไปยังฮาร์ดไดรฟ์อื่น

สมมติว่าคุณได้ดาวน์โหลดไฟล์ ISO พร้อมอิมเมจการแจกจ่ายและเตรียมแฟลชไดรฟ์

คำสั่งเทอร์มินัลสำหรับเขียนอิมเมจ ISO ของการแจกแจงมีลักษณะดังนี้:

sudo dd if=path to.iso ของ=/dev/sdb

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



และหากแฟลชไดรฟ์ของคุณถูกกำหนดเป็นอย่างอื่น ให้เปลี่ยนในคำสั่ง

หากต้องการป้อนเส้นทางของไฟล์ลงในคำสั่งอย่างถูกต้อง ให้เปิดโฟลเดอร์ที่มีไฟล์ เปิดเทอร์มินัลใกล้เคียงแล้วลากไฟล์ลงไป:


เทอร์มินัลจะแสดงเส้นทางไปยังไฟล์และไฟล์ .iso เอง คัดลอกโดยไม่มีเครื่องหมายคำพูดและวางลงในคำสั่ง จากนั้นกดแป้นพิมพ์ลัดในเทอร์มินัล Ctrl+Cเพื่อรีเซ็ตและแสดงผล บรรทัดใหม่คำเชิญ

วิธีที่ง่ายที่สุดในการสร้างคำสั่งคือในโปรแกรมแก้ไขข้อความ
ฉันได้รับคำสั่งต่อไปนี้:


ตอนนี้เสียบแฟลชไดรฟ์ USB เข้ากับพอร์ตคอมพิวเตอร์แล้วคัดลอกคำสั่งที่ได้รับ โปรแกรมแก้ไขข้อความพิมพ์ลงในเทอร์มินัลแล้วดำเนินการ (กด Enter):


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


แค่นั้นแหละ. แฟลชไดรฟ์ของคุณสามารถบู๊ตได้และตอนนี้คุณสามารถติดตั้งการแจกจ่ายบนคอมพิวเตอร์เครื่องใดก็ได้

ระวังเพราะถ้าคุณสะกดชื่อแฟลชไดรฟ์ในคำสั่ง dd ผิด คุณสามารถสร้างความเสียหายให้กับฮาร์ดไดรฟ์ของโฮสต์ได้

เราจะแสดงการกำหนดพาร์ติชันของอุปกรณ์ทั้งหมด

และค้นหาแฟลชไดรฟ์ในหมู่พวกเขา:

Sudo fdisk -u -l /dev/sd?

นอกจากนี้ หากต้องการกำหนดพาร์ติชันบนอุปกรณ์ทั้งหมด คุณสามารถใช้คำสั่ง:

Sudo cat /proc/partitions

ไวยากรณ์คำสั่ง dd

dd if=/AAAA ของ=/BBBB bs=CCCC count=DDDD conv=noerror
  • ถ้า: (ไฟล์อินพุต) ระบุแหล่งที่มา เช่น ไปยังที่ที่เรากำลังคัดลอกมาจาก ระบุไฟล์ซึ่งอาจเป็นไฟล์ปกติหรือไฟล์อุปกรณ์ก็ได้
  • ของ: (ไฟล์เอาต์พุต) ชี้ไปยังไฟล์ปลายทาง เหมือนกัน, เราก็เขียนได้เหมือนใน ไฟล์ปกติและเข้าสู่อุปกรณ์โดยตรง
  • บี: จำนวนไบต์ที่จะเขียนในแต่ละครั้ง นั่นคือขนาดของข้อมูลที่จะอ่านและเขียนในแต่ละครั้ง ขอแนะนำให้ตั้งค่า bs= ให้เป็นขนาดของแคชฮาร์ดไดรฟ์ เช่น 8M 16M 32M
  • นับ: กี่ชิ้น บีจะถูกคัดลอก
  • การแปลง:ช่วยให้คุณเชื่อมต่อตัวกรองที่ใช้กับสตรีมข้อมูล กรอง "ไม่มีข้อผิดพลาด"เพียงปิดการใช้งานการหยุดโปรแกรมเมื่อพบข้อผิดพลาดในการอ่าน

ตัวอย่าง

ลบดิสก์ให้เสร็จสิ้น

เพื่อที่จะไม่สามารถกู้คืนสิ่งใดบนสื่อบันทึกได้ คุณสามารถเติมด้วยศูนย์ได้ คำสั่งนี้จะลงท้ายด้วยข้อผิดพลาด "สื่อไม่มีพื้นที่เหลือ" เสมอ

Dd if=/dev/0 ของ=/dev/sdX

การสร้างดิสก์อิมเมจ

dd if=/dev/cdrom ของ=image.iso conv=noerror

คุณยังสามารถเข้าสู่ระบบได้

เมานต์ -o วนซ้ำ /PathToImageFile/image.iso /mnt/FolderMount

หากอะไรไม่ได้ผล กระบวนการจะแบ่งออกเป็น 2 ระดับ:

Losetup -e /dev/loop0 /PathToImageFile/image.iso เมานต์ /dev/loop0 /mnt/FolderMount

ปฏิบัติการเอ็มบีอาร์

MBR อยู่ใน 512 ไบต์แรก ฮาร์ดไดรฟ์และประกอบด้วยตารางพาร์ติชัน, bootloader และอีกสองสามอัน ไบต์ บางครั้งคุณต้องสำรองข้อมูล กู้คืน ฯลฯ การสำรองข้อมูลทำได้ดังนี้:

Dd if=/dev/sda of=mbr.img bs=512 count=1

คุณสามารถกู้คืนได้ง่ายขึ้น:

Dd if=mbr.img จาก=/dev/sda

การคัดลอกด้วยการเก็บถาวร

(โดยใช้ gzip) ข้อมูลจากแฟลชไดรฟ์ไปยังฮาร์ดไดรฟ์

Dd if=/dev/sdX conv=sync,noerror bs=8M | gzip -c >/PathToSave/sdX.img.gz

และกลับมา

Gunzip -c /PathToFile/sdX.img.gz | dd of=/dev/sdX conv=sync, ไม่มีข้อผิดพลาด bs=8M

การคัดลอกผ่านเครือข่าย

dd if=/dev/sdX conv=sync,noerror bs=8M | ssh -c ปักเป้า UserName@HostName "dd of=sdX.img.gz bs=8M"

และกลับมา

dd if=sdX.img.gz | ssh -c ปักเป้า UserName@HostName "dd of=/dev/sdX bs=8M"

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

เพื่อแก้ไขปัญหาเหล่านี้จึงใช้ยูทิลิตี้ dd linux ซึ่งเพียงคัดลอกข้อมูลจากที่หนึ่งไปยังอีกที่หนึ่งในระดับไบนารี สามารถคัดลอกแผ่นดิสก์ CD/DVD บางส่วนในแผ่นดิสก์ หรือแม้แต่ทั้งหมดก็ได้ ฮาร์ดไดรฟ์- ในบทความนี้ เราจะดูว่าคำสั่ง linux dd คืออะไร ตัวเลือกหลักและพารามิเตอร์ และวิธีการใช้งาน

ก่อนอื่นคุณต้องเข้าใจก่อนว่าคำสั่ง dd ทำงานอย่างไร และมันทำหน้าที่อะไร อันที่จริงนี่เป็นยูทิลิตี้แบบอะนาล็อกสำหรับข้อมูลบล็อกเท่านั้น ยูทิลิตี้นี้จะถ่ายโอนข้อมูลหนึ่งบล็อกตามขนาดที่ระบุจากที่หนึ่งไปยังอีกที่หนึ่ง เนื่องจากทุกสิ่ง รวมถึงอุปกรณ์ต่างๆ ถือเป็นไฟล์ใน Linux คุณจึงสามารถถ่ายโอนอุปกรณ์ไปยังไฟล์และในทางกลับกันได้

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

คำสั่ง dd

ไวยากรณ์ของยูทิลิตี้นี้ค่อนข้างผิดปกติ แต่ในขณะเดียวกันก็ง่ายมากเมื่อคุณจำได้และคุ้นเคยกับมันแล้ว:

$dd ถ้า= copy_sourceของ= ปลายทางพารามิเตอร์

เมื่อใช้พารามิเตอร์ if คุณจะต้องระบุแหล่งที่มาที่จะคัดลอกบล็อกซึ่งอาจเป็นอุปกรณ์เช่น /dev/sda หรือไฟล์ - disk.img ถัดไปโดยใช้พารามิเตอร์ of คุณจะต้องระบุอุปกรณ์หรือไฟล์ปลายทาง พารามิเตอร์อื่นๆ มีไวยากรณ์เหมือนกับ if และ of

ตอนนี้เรามาดูตัวเลือกเพิ่มเติม:

  • บี- ระบุจำนวนไบต์ที่จะอ่านและเขียนในแต่ละครั้ง
  • ซีบีเอส- ต้องเขียนครั้งละกี่ไบต์
  • นับ- คัดลอกจำนวนบล็อกที่ระบุ ขนาดของหนึ่งบล็อกจะถูกระบุในพารามิเตอร์ bs
  • การแปลง- ใช้ตัวกรองกับสตรีมข้อมูล
  • ไอบีเอส- อ่านจำนวนไบต์ที่ระบุในแต่ละครั้ง
  • obs- เขียนจำนวนไบต์ที่ระบุในแต่ละครั้ง
  • แสวงหา- ข้ามจำนวนไบต์ที่ระบุที่จุดเริ่มต้นของอุปกรณ์อ่าน
  • ข้าม- ข้ามจำนวนไบต์ที่ระบุที่จุดเริ่มต้นของอุปกรณ์ส่งออก
  • สถานะ- ระบุว่าข้อสรุปควรมีรายละเอียดเพียงใด
  • iflag, oflag- อนุญาตให้คุณตั้งค่าสถานะการทำงานเพิ่มเติมสำหรับอุปกรณ์อินพุตและเอาท์พุต ซึ่งได้แก่ nocache, nofollow

นี่คือตัวเลือกพื้นฐานทั้งหมดที่คุณอาจต้องการ ตอนนี้เรามาดูการฝึกฝนอย่างใกล้ชิดมากขึ้นแล้วดูตัวอย่างวิธีใช้ยูทิลิตี้ dd linux

วิธีใช้ dd?

ผู้ใช้ทั่วไปใช้คำสั่ง dd บ่อยที่สุดเพื่อสร้างภาพ ดีวีดีหรือซีดี ตัวอย่างเช่น หากต้องการบันทึกดิสก์อิมเมจลงในไฟล์ คุณสามารถใช้คำสั่งต่อไปนี้:

sudo dd if=/dev/sr0 จาก=~/CD.iso bs=2048 conv=noerror

ตัวกรอง noerror ช่วยให้คุณสามารถปิดใช้งานการตอบสนองต่อข้อผิดพลาดได้ จากนั้นคุณสามารถสร้างอิมเมจของฮาร์ดไดรฟ์หรือพาร์ติชั่นในนั้นและบันทึกอิมเมจนี้ลงในดิสก์ เพียงระวังอย่าบันทึกลงในฮาร์ดไดรฟ์หรือพาร์ติชั่นเดียวกันเพื่อไม่ให้เกิดการเรียกซ้ำ:

dd if=/dev/sda จาก=~/disk.img

ในตัวคุณ โฮมโฟลเดอร์ไฟล์ชื่อ disk1.img จะถูกสร้างขึ้นซึ่งในอนาคตสามารถติดตั้งและกู้คืนไปยังระบบที่เสียหายได้ หากต้องการเขียนภาพลงในฮาร์ดไดรฟ์หรือพาร์ติชัน เพียงสลับที่อยู่อุปกรณ์:

dd if=~/disk.img จาก=/dev/sda

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

  • กับ- ตัวละครหนึ่งตัว;
  • - 512 ไบต์;
  • กิโลไบต์- 1,000 ไบต์;
  • เค- 1,024 ไบต์;
  • บธ.- 1,000 กิโลไบต์
  • - 1,024 กิโลไบต์
  • จี.บี.- 1,000 เมกะไบต์
  • - 1,024 เมกะไบต์

คำสั่ง dd linux ใช้ระบบดังกล่าวซึ่งซับซ้อน แต่ไม่มีทางหลีกเลี่ยงได้ มันจะต้องเข้าใจและจดจำ ตัวอย่างเช่น 2b คือ 1 กิโลไบต์ และ 1k คือ 1 กิโลไบต์ด้วย 1M คือ 1 เมกะไบต์ ตามค่าเริ่มต้น ยูทิลิตีจะใช้ขนาดบล็อก 512 ไบต์ ตัวอย่างเช่น หากต้องการเพิ่มความเร็วในการคัดลอกดิสก์ คุณสามารถใช้บล็อกขนาด 5 เมกะไบต์ได้ เมื่อต้องการทำเช่นนี้ ใช้คำสั่งต่อไปนี้:

dd if=/dev/sda ของ=~/disk.img bs=5M

พารามิเตอร์ถัดไปจะถูกนับ คุณสามารถระบุจำนวนบล็อกที่ต้องคัดลอกได้ ตัวอย่างเช่น เราสามารถสร้างไฟล์ขนาด 512 เมกะไบต์ได้โดยเติมเลขศูนย์จาก /dev/zero หรือตัวเลขสุ่มจาก /dev/random:

sudo dd if=/dev/zero of=file.img bs=1M นับ=512

โปรดทราบว่าพารามิเตอร์นี้ไม่ได้ระบุขนาดเป็นเมกะไบต์ แต่ระบุเฉพาะจำนวนบล็อกเท่านั้น ดังนั้น หากคุณระบุขนาดบล็อกเป็น 1b คุณจำเป็นต้องใช้เพียงสองบล็อกเพื่อสร้างไฟล์ขนาด 1KB ตัวเลือกนี้ยังสามารถใช้เพื่อสำรองข้อมูลตารางพาร์ติชัน MBR ในการดำเนินการนี้ ให้คัดลอก 512 ไบต์แรกของฮาร์ดไดรฟ์ไปยังไฟล์:

sudo dd if=/dev/sda of=mbr.img bs=1b นับ=1

หากต้องการกู้คืนให้ใช้คำสั่งปกติเพื่อปรับใช้อิมเมจบนดิสก์

หากดิสก์อิมเมจมีขนาดใหญ่เกินไป คุณสามารถเปลี่ยนเส้นทางเอาต์พุตทั้งหมดไปยังสตรีมเอาต์พุตที่ไม่ได้มาตรฐานของยูทิลิตี้ gzip ได้:

dd ถ้า =/dev/sda2 | bzip2 ดิสก์.img.bz2

คุณยังสามารถใช้ยูทิลิตี้ dd linux เพื่อคัดลอกไฟล์ได้ แม้ว่าจะไม่ใช่จุดประสงค์ก็ตาม:

dd if=/home/sergiy/test.txt จาก=/home/sergiy/test1.txt

ดังที่คุณทราบคำสั่ง linux dd จะเขียนข้อมูลลงดิสก์โดยตรง ไบนารี่ซึ่งหมายความว่ามีการเขียนศูนย์และอัน ซึ่งจะแทนที่สิ่งที่วางไว้ก่อนหน้านี้บนอุปกรณ์บันทึก ดังนั้น หากต้องการลบดิสก์ คุณสามารถเติมเลขศูนย์จาก /dev/zero ลงในดิสก์ได้

sudo dd if=/dev/zero ของ=/dev/sdb

การใช้ dd ด้วยวิธีนี้จะทำให้ดิสก์ทั้งหมดถูกลบจนหมด

ข้อสรุป

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

    รูฟัส- ฟรี ซอฟต์แวร์ด้วยการเปิด ซอร์สโค้ดสำหรับการฟอร์แมตสื่อเก็บข้อมูล USB แบบถอดได้และสร้างดิสก์ที่สามารถบู๊ตได้หลากหลาย ระบบปฏิบัติการ- โปรแกรมใช้งานง่าย ความเร็วสูงทำงานและรองรับอินเทอร์เฟซหลายภาษา

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

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

ใช้งานง่ายและสะดวกที่สุด รูฟัสเพื่อสร้างแฟลชไดรฟ์ที่สามารถบู๊ตได้ (ไดรฟ์ USB ที่สามารถบู๊ตได้) จากอิมเมจ ISO การติดตั้ง ไดรฟ์วินโดวส์หรือ Linux ตลอดจนดิสก์กู้คืนระบบฉุกเฉินและเครื่องมือวินิจฉัย

เมื่อสร้างแฟลชไดรฟ์ Windows ที่สามารถบู๊ตได้คุณเพียงแค่ต้องเลือกอุปกรณ์ที่คุณจะเขียนและไฟล์อิมเมจ ISO ที่สามารถบู๊ตได้ โปรแกรมจะตั้งค่าพารามิเตอร์อื่นๆ เอง

หากคุณไม่มีไฟล์อิมเมจ ISO คุณสามารถสร้างไฟล์จากซีดีจริง (หรือจากชุดไฟล์การแจกจ่าย) โดยใช้โปรแกรมเบิร์นซีดี/ดีวีดี เช่น Nero, Alcohol หรือ CDBurnerXP หรือ ImgBurn ที่เป็นที่รู้จักกันดี

ขั้นตอนการสร้างแฟลชไดรฟ์ USB ที่สามารถบู๊ตได้ด้วย Windows มีดังต่อไปนี้:

  • เลือกแฟลชไดรฟ์ที่จะเขียนภาพ แตกต่างจากโปรแกรมอื่นๆ ที่คล้ายกัน Rufus จะแสดงป้ายชื่อไดรฟ์ อักษรระบุไดรฟ์ และขนาด ดังนั้นหากคุณมีไดรฟ์แบบถอดได้หลายตัวในระบบ คุณสามารถเลือกไดรฟ์ที่จะเขียนได้อย่างง่ายดาย

  • เลือกรูปแบบพาร์ติชันและประเภทอินเทอร์เฟซระบบ Rufus ช่วยให้คุณสร้างแฟลชไดรฟ์สำหรับการบูตในอินเทอร์เฟซ BIOS ปกติและสำหรับการบูตในสภาพแวดล้อม UEFI สร้างบันทึกการบูตสำหรับไดรฟ์ข้อมูล MBR และไดรฟ์ข้อมูล GPT โหมดเริ่มต้นคือ "MBR สำหรับคอมพิวเตอร์ที่มี BIOS หรือ UEFI" ซึ่งเป็นโหมดที่พบบ่อยที่สุดสำหรับแฟลชไดรฟ์ที่สามารถบู๊ตได้ในปัจจุบัน

  • เลือกระบบไฟล์ที่จะใช้กับแฟลชไดรฟ์ที่สามารถบู๊ตได้ที่จะสร้าง ตามค่าเริ่มต้น แฟลชไดรฟ์ Windows ที่สามารถบู๊ตได้จะใช้ระบบไฟล์ FAT32แต่ถ้าจำเป็นก็เลือกได้ เอ็นทีเอฟเอสหากคุณต้องการใช้ไฟล์ที่มีขนาดใหญ่กว่า 4 GB

  • กำหนดขนาดคลัสเตอร์ ขนาดคลัสเตอร์จะถูกเลือกโดยโปรแกรมตามข้อมูลรูปภาพและประเภทระบบไฟล์ แต่หากจำเป็นก็สามารถเปลี่ยนแปลงได้

  • ระบุป้ายกำกับโวลุ่มที่จะระบุสำหรับแฟลชไดรฟ์ที่สร้างขึ้น

  • ตั้งค่าตัวเลือกการจัดรูปแบบ วิธีที่ดีที่สุดคือปล่อยให้พารามิเตอร์เหล่านี้เป็นค่าเริ่มต้นและเพียงแค่เลือกไฟล์ ภาพไอเอสโอ- สำหรับภาพที่สร้างโดยโปรแกรม ววบน Linux คุณต้องเลือกตัวเลือก ภาพดีดี.

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

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

    ทีม ววได้รับการออกแบบมาเพื่อใช้ยูทิลิตี้ชื่อเดียวกันซึ่งออกแบบมาเพื่อการคัดลอกและการแปลงข้อมูลในระดับต่ำ ชื่อของมันย่อมาจาก “data duplicator” หรือ “data duplicator” อรรถประโยชน์นี้ส่วนใหญ่จะใช้สำหรับการเขียนอิมเมจของดิสก์การติดตั้งของการแจกแจง Linux ไปยังแฟลชไดรฟ์และสร้างอิมเมจของสื่อออปติคัลอย่างไรก็ตามช่วงของฟังก์ชั่นไม่ จำกัด เฉพาะการดำเนินการที่ระบุไว้ ตัวอย่างเช่น, ววสามารถใช้เพื่อคัดลอกไฟล์หรือเปลี่ยนตัวพิมพ์ของสตริงข้อความ โดยทั่วไป ยูทิลิตี้ดังกล่าวมีความพิเศษในระดับหนึ่ง เนื่องจากเกี่ยวข้องกับการใช้รูปแบบของตัวเองในการส่งพารามิเตอร์

    ไวยากรณ์คำสั่งมาตรฐานมีดังนี้:

    $dd ถ้า=<имя исходного файла>ของ=<имя целевого файла>[ตัวเลือก]

    สังเกตได้ง่ายว่ารูปแบบการบันทึกใช้เพื่อส่งพารามิเตอร์ไปยังยูทิลิตี้ <имя параметра>=<значение параметра> - ยูทิลิตีสามารถอ่านแหล่งข้อมูลจากอินพุตมาตรฐานและส่งออกข้อมูลผลลัพธ์โดยใช้เอาต์พุตมาตรฐานหากไม่ได้ใช้พารามิเตอร์ ถ้าและ ของแต่ในกรณีส่วนใหญ่ พารามิเตอร์เหล่านี้จำเป็นในการระบุชื่อไฟล์ด้วยข้อมูลที่เกี่ยวข้อง ยูทิลิตีจะอ่านและเขียนข้อมูลเป็นบล็อก และขนาดบล็อกสามารถเปลี่ยนแปลงได้โดยใช้พารามิเตอร์ บี(บล็อกขนาด 512 KB ถูกใช้เป็นค่าเริ่มต้น) มีพารามิเตอร์แยกต่างหากสำหรับการตั้งค่าขนาดของบล็อกที่อ่านและเขียนได้ ได้แก่ ไอบีเอสและ obs- จำนวนบล็อกที่อ่านสามารถจำกัดได้โดยใช้พารามิเตอร์ นับ- พารามิเตอร์สามารถใช้เพื่อข้ามบล็อกตามจำนวนที่ระบุในไฟล์ต้นฉบับ ข้าม, ไฟล์เป้าหมาย - พารามิเตอร์ แสวงหา- พารามิเตอร์สามารถใช้เพื่อระบุแฟล็กการอ่านและเขียนโดยคั่นด้วยเครื่องหมายจุลภาค ไอแฟลก

    • ผนวก- การเปิดใช้งานโหมดการต่อท้ายข้อมูลไปยังไฟล์เป้าหมาย
    • โดยตรง- โหมดการประมวลผลข้อมูลข้ามแคช ระบบไฟล์(เพิ่มความเร็ว)
    • ดีซิงค์- โหมดบันทึกข้อมูลพร้อมการซิงโครไนซ์ (เพิ่มความน่าเชื่อถือ)
    • ซิงค์- โหมดการบันทึกข้อมูลและเมตาดาต้าพร้อมการซิงโครไนซ์ (เพิ่มความน่าเชื่อถือ)
    • เต็มบล็อก- อ่านเฉพาะบล็อกที่สมบูรณ์เท่านั้น
    • ไม่ปิดกั้น- การเปิดใช้งานโหมด I/O ที่ไม่ปิดกั้น (เพิ่มความเร็ว)
    • เวลาพักเที่ยง- ปิดการใช้งานกลไกในการอัปเดตการประทับเวลาองค์ประกอบระบบไฟล์ (เพิ่มความเร็ว)
    • ไม่ติดตาม- ปฏิเสธที่จะติดตามลิงก์สัญลักษณ์

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

    • คดี- การแปลงอักขระสตริงในการเข้ารหัส ASCII เป็นตัวพิมพ์เล็ก
    • ucase- การแปลงอักขระสตริงในการเข้ารหัส ASCII เป็นตัวพิมพ์ใหญ่
    • nocreat- แสดงข้อความแสดงข้อผิดพลาดหากไฟล์เป้าหมายหายไป
    • ไม่รวม- แสดงข้อความแสดงข้อผิดพลาดหากมีไฟล์เป้าหมายอยู่
    • ไม่รัน- ปฏิเสธที่จะตัดไฟล์เป้าหมาย
    • ไม้กวาด- เปลี่ยนตำแหน่งของทุกๆ สองไบต์จากไฟล์ต้นฉบับ
    • ไม่มีข้อผิดพลาด- ทำงานต่อไปได้แม้ว่าจะมีข้อผิดพลาดเกิดขึ้นก็ตาม
    • fdatasync- การเปิดใช้งานโหมดการเขียนข้อมูลไปยังไฟล์เป้าหมายก่อนที่จะเสร็จสิ้นยูทิลิตี้
    • เอฟซิงค์- การเปิดใช้งานโหมดการเขียนข้อมูลและข้อมูลเมตาไปยังไฟล์เป้าหมายก่อนที่จะเสร็จสิ้นยูทิลิตี้

    ตัวอย่างการใช้งาน

    การสำรองข้อมูลดิสก์ไดรฟ์

    สมมติว่าเรากำลังใช้ฮาร์ดไดรฟ์ที่แสดงโดยไฟล์อุปกรณ์ /dev/sdaและเราจำเป็นต้องสร้างการสำรองข้อมูลทั้งหมดที่อยู่ในนั้นแบบเซกเตอร์โดยบันทึกลงในไฟล์ในพาร์ติชันของไดรฟ์ USB แบบถอดได้ซึ่งแสดงโดยไฟล์อุปกรณ์ /dev/sdb1และเมานต์ในไดเร็กทอรี /mnt/sdb1- ไฟล์สำรองข้อมูลเหล่านี้มักเรียกว่าดัมพ์หรือดิสก์อิมเมจ ไฟล์ภาพดิสก์ของเราจะถูกตั้งชื่อ สำรองข้อมูล.img- นี่คือคำสั่งที่คุณสามารถสร้างได้:

    # dd if=/dev/sda ของ=/mnt/sdb1/backup.img

    ในคำสั่งนี้ใช้พารามิเตอร์ ถ้ามีการระบุเส้นทางไปยังไฟล์ต้นฉบับและใช้พารามิเตอร์ ของ- สู่เป้าหมาย

    การกู้คืนข้อมูลจากการสำรองข้อมูล

    หากต้องการกู้คืนข้อมูลจากสำเนาสำรองที่สร้างขึ้น คุณต้องบูตระบบจาก ดิสก์การติดตั้งการกระจายและดำเนินการคำสั่งย้อนกลับ

    # dd if=/mnt/sdb1/backup1.img จาก=/dev/sda

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

    การโคลนฮาร์ดไดรฟ์

    ก่อนที่จะโคลนฮาร์ดไดรฟ์ คุณต้องแน่ใจว่าคุณมีฮาร์ดไดรฟ์ที่มีขนาดเท่ากับฮาร์ดไดรฟ์ดั้งเดิม การดำเนินการเดียวกันนี้สามารถทำได้ในกรณีของแฟลชไดรฟ์ที่มีอินเทอร์เฟซ USB ที่มีขนาดใกล้เคียงกัน สมมติว่าแฟลชไดรฟ์ต้นทางแสดงด้วยไฟล์อุปกรณ์ /dev/sdbและเป้าหมาย - ไฟล์อุปกรณ์ /dev/sdc- ในกรณีนี้ คุณสามารถโคลนไดรฟ์ต้นทางได้โดยใช้คำสั่งต่อไปนี้:

    # dd if=/dev/sdb ของ=/dev/sdc

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

    การถ่ายโอนไฟล์อิมเมจของดิสก์ไปยังคอมพิวเตอร์เครื่องอื่น

    เพื่อถ่ายโอนไฟล์อิมเมจของดิสก์ผ่านเครือข่ายไปยังคอมพิวเตอร์เครื่องอื่นที่ชื่อ เป้าสามารถใช้คำสั่งต่อไปนี้:

    # dd if=/dev/sdb | ssh root@target "(cat >backup.img)"

    การบีบอัดไฟล์ภาพดิสก์

    เพื่อ การสำรองข้อมูลพาร์ติชันดิสก์ใช้พื้นที่น้อยลง คุณสามารถบีบอัดได้โดยใช้คอมเพรสเซอร์เช่น bzip2:

    # dd if=/dev/sdb | bzip2 backup.img.bz2

    การสร้างอิมเมจดิสก์ออปติคัล ISO

    เพื่อสร้างภาพ ออปติคัลดิสก์ซีดี ดีวีดี หรือ BD เพียงแค่ต้องอ่านเนื้อหาทีละบล็อก และบันทึกเนื้อหานี้ลงในไฟล์:

    # dd if=/dev/sr0 จาก=image.iso bs=2048

    บันทึกไฟล์จากสื่อที่เสียหายหรือสร้างภาพของสื่อดังกล่าว

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

    # dd if=movie.avi จาก=/home/alex/movie.avi conv=noerror,sync

    คุณยังสามารถสร้างไฟล์รูปภาพได้ สื่อเสียหายและลองแตกไฟล์ออกมา:

    # dd if=/dev/sdb ของ=/home/alex/movie.iso bs=2048 conv=noerror,sync

    การเบิร์นดิสก์อิมเมจการติดตั้งลงในแฟลชไดรฟ์ USB

    ในการติดตั้ง การกระจายลินุกซ์จากแฟลชไดรฟ์ USB คุณต้องเขียนดิสก์อิมเมจการติดตั้ง ISO ลงในแฟลชไดรฟ์นี้ คำสั่งที่คล้ายกันสามารถใช้เพื่อจุดประสงค์นี้:

    # dd if=/home/alex/Fedora-Workstation-Live-x86_64-26_Alpha-1.7.iso ของ=/dev/sdc

    สิ่งสำคัญคือต้องจำไว้ว่าแม้ว่าจะมีพาร์ติชันบนแฟลชไดรฟ์ แต่คุณไม่ควรระบุเส้นทางไปยังไฟล์อุปกรณ์ของพาร์ติชันใดพาร์ติชันหนึ่ง แต่เป็นเส้นทางไปยังไฟล์อุปกรณ์ของไดรฟ์เอง ในกรณีของเรานี้ /dev/sdc.

    การวิเคราะห์เนื้อหาฮาร์ดไดรฟ์

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

    # dd if=/dev/sdc1 นับ=1 ข้าม=1,000

    หากต้องการดู 40 ไบต์แรกของฮาร์ดไดรฟ์ในรูปแบบเลขฐานสิบหก ให้ใช้คำสั่ง:

    # dd if=/dev/sda bs=1 จำนวน=40 | การถ่ายโอนข้อมูลฐานสิบหก -C

    ในกรณีนี้ให้ใช้พารามิเตอร์ บีตั้งค่าขนาดบล็อกของดิสก์

    การทดสอบประสิทธิภาพของดิสก์ไดรฟ์

    เพื่อทดสอบประสิทธิภาพของดิสก์ไดรฟ์ที่แสดงโดยไฟล์อุปกรณ์ /dev/sdaเมื่ออ่านบล็อกที่มีขนาดต่างกัน สามารถใช้คำสั่งที่คล้ายกันได้:


    1000000+0 บันทึกใน
    บันทึก 1000000+0 ออก

    # dd if=/dev/sda ของ=/dev/null bs=4096 จำนวน = 1000000
    1000000+0 บันทึกใน
    บันทึก 1000000+0 ออก
    คัดลอก 4096000000 ไบต์ (4.1 GB) 29.8747 วินาที 137 MB/s

    ด้วยกลไกการแคชของระบบไฟล์ คุณอาจพบความเร็วในการอ่านที่ลึกลับซึ่งไม่น่าประหลาดใจ:

    # dd if=/dev/sda ของ=/dev/null bs=512 จำนวน=1000000
    1000000+0 บันทึกใน
    บันทึก 1000000+0 ออก
    คัดลอก 512000000 ไบต์ (512 MB) 4.25186 วินาที 120 MB/s

    # dd if=/dev/sda ของ=/dev/null bs=512 จำนวน=1000000
    1000000+0 บันทึกใน
    บันทึก 1000000+0 ออก
    คัดลอก 512000000 ไบต์ (512 MB), 0.417317 วินาที, 1.2 GB/s

    เพื่อให้ได้ผลลัพธ์การทดสอบที่ถูกต้อง ขอแนะนำให้ข้ามกลไกการแคชของระบบไฟล์ไปพร้อมกันโดยใช้โหมด I/O โดยไม่ต้องแคช:

    # dd if=/dev/sda of=/dev/null bs=512 จำนวน = 100,000 iflag=โดยตรง
    100,000+0 บันทึกใน
    บันทึก 100,000+0 ออก
    คัดลอก 51200000 ไบต์ (51 MB), 5.01053 วินาที, 10.2 MB/s

    การคัดลอกไฟล์

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

    $ dd if=/home/alex/test.txt /home/alex/test_copy.txt