ใช้คำสั่ง 'dd' เพื่อสร้างแท่ง USB ที่สามารถบู๊ตได้


11

ทำไมอิมเมจ ISO บางรสของ Ubuntu สามารถใส่ USB stick ได้ด้วยคำสั่งddและบู๊ตสำเร็จ ยิ่งไปกว่านั้นดูเหมือนว่ามันขึ้นอยู่กับแท่ง USB โดยเฉพาะเช่นกัน ฉันพยายามใช้ Ubuntu มาตรฐาน:

$ sudo dd if=./ubuntu.iso of=/dev/sdd bs=8129

และมันใช้งานได้อย่างมีเสน่ห์ฉันหมายถึง: บูตและติดตั้งหรือเรียกใช้ Ubuntu สด แต่เมื่อฉันใช้ USB stick ตัวอื่นที่เตรียมไว้ในลักษณะเดียวกันมันล้มเหลวในการบูตด้วยระบบปฏิบัติการไม่พบข้อผิดพลาด BIOS

เมื่อฉันลอง Ubuntu GNOME มันก็ไม่สามารถบู๊ตด้วยข้อผิดพลาดเดียวกับตัวอย่างก่อนหน้านี้ไม่ว่าจะใช้แท่ง USB อันใดที่ฉันใช้

ฉันรู้ว่ามีแอพพลิเคชั่นStartup Disk Creatorใน Ubuntu แต่ฉันมั่นใจว่ามันเป็นเพียงส่วนหน้า GUI สำหรับคำสั่งddอย่างง่ายและฉันสามารถใช้ddเพื่อสร้างแท่ง USB ที่สามารถบู๊ตได้อย่างน้อยสำหรับ Linux ฉันผิดหรือเปล่า?


ฉันใช้ Unetbootin เป็นการส่วนตัวและไม่เคยมีปัญหา
ทิม

คำตอบ:


5

หากคุณเรียกใช้ Startup Disk Creator คุณจะสังเกตเห็นว่ามันทำสิ่งที่สาม (สี่):

  1. ฟอร์แมตไดรฟ์
  2. คัดลอกข้อมูลจาก ISO ไปยังไดรฟ์
  3. (เพิ่มไฟล์casper 1พิเศษสำหรับการคงอยู่หากเลือกddไม่ได้ทำให้คุณมีอยู่)
  4. ติดตั้ง bootloader

ไม่ใช่ GUI สำหรับdd(มี GUI สำหรับddแต่ SDC ไม่ใช่หนึ่งในนั้น) คุณสามารถคิดว่ามันเป็นทำเทียบเท่าArch ลินุกซ์หรือGentoo ของวิธีการด้วยตนเอง คุณควรจะสามารถสร้าง USB ที่สามารถบู๊ตได้โดยใช้ ISO ที่ติดตั้งส่วนใหญ่ (เป็นที่นิยมพอสมควร) ของ distros ในปัจจุบัน เรื่องนี้ไม่เป็นความจริงเมื่อสามหรือสี่ปีก่อนเมื่อฉันดูที่อาร์ค มีเพียงปี 2010 ที่ Arch ISO ทั้งหมดได้รับคุณลักษณะนี้ (ซึ่งคุณสามารถเขียนโดยตรงไปยังไดรฟ์ USB) - จากปี 2008 ถึง 2010 พวกเขามีภาพ USB พิเศษ

นอกจากนี้หากคุณddไดรฟ์โดยตรงไดรฟ์นั้นจะอ่านได้อย่างมีประสิทธิภาพจนกว่าคุณจะฟอร์แมตหรือใช้พื้นที่ที่เหลืออยู่อย่างใด ดิสก์ที่สร้างโดย SCD นั้นยังคงใช้งานได้เป็นไดรฟ์ USB แม้ว่าเนื้อหาจะไม่สามารถเข้าถึงได้จากสภาพแวดล้อมจริงได้อย่างง่ายดาย ดังนั้นหากคุณddใช้ไดรฟ์ ISO 1GB ถึง 8 หรือ 16 GB คุณจะละทิ้งพื้นที่ที่เหลือได้อย่างมีประสิทธิภาพเว้นแต่จะมีขั้นตอนเพิ่มเติม


1โดยทั่วไปแล้วภาพสดส่วนใหญ่จะใช้ไฟล์SquashFSสำหรับพาร์ติชันรูท SquashFS อ่านอย่างเดียวดังนั้นสำหรับการติดตาเป็นไฟล์ถูกสร้างขึ้นในcasper-rw ผมไม่แน่ใจว่าของต้นกำเนิดของ/casper casperจากสิ่งที่ฉันเข้าใจเมื่อบูตด้วยboot=casperตัวเลือกเคอร์เนลจะซ้อนทับไฟล์ casper (สร้างถ้าไม่มีอยู่) ที่ด้านบนของ squashfs เพื่อให้ได้ความสามารถในการเขียน casperไม่จำเป็นต้องเป็นไฟล์ แต่สามารถเป็นพาร์ติชันได้


"ไฟล์แคสเปอร์" คืออะไร? กรุณาอธิบาย.

@ MikołajBartnickiฉันไม่แน่ใจว่าตัวเองมาก แต่ฉันได้ปรับปรุงคำตอบ
muru

แคสเปอร์คือผี (ซึ่งคุณทุกคนรู้) อย่างที่คุณพูดมันซ้อนทับบางโฟลเดอร์ในระบบไฟล์ ro การตรวจสอบระบบไฟล์จากภาพสดที่เปิดใช้งานด้วยการเปิดใช้งานการคงอยู่จะแสดงไดเรกทอรีบางรายการ 'บน' และ 'ลดลง' ซึ่งมีอยู่ทั้งในระบบอ่านอย่างเดียวและเขียน แต่ปรากฏเป็นหนึ่งในระบบที่กำลังทำงานคล้ายกับเมานต์ โฟลเดอร์ที่มีอยู่
oneindelijk

2

ลองก่อน:

su -c 'mkfs.vfat /dev/sdc -I'

ในการสร้างดิสก์ usb ที่สามารถบู๊ตได้จากไฟล์ iso โดยใช้คำสั่งddดิสก์ไม่สามารถมีพาร์ติชันเช่น/ dev / sdc1 (หนึ่งในสี่พาร์ติชันหลักที่เป็นไปได้ของดิสก์/ dev / sdc ) คุณไม่สามารถโคลนบล็อกของไฟล์ iso ไปยังพาร์ติชั่นหลักได้เพราะแผ่น dvd หรือ cd ไม่ได้มีเช่นกัน นั่นเป็นเหตุผลที่คุณต้องสร้างระบบไฟล์บนดิสก์/ dev / sdcโดยไม่ต้องอยู่ในพาร์ทิชันหลัก

นอกจากนี้คุณทำผิดพลาดเล็กน้อยโดยพิมพ์คำสั่งdd

ลองสิ่งนี้:

su -c 'dd if=/home/user/debian.iso of=/dev/sdc bs=4M;sync;eject /dev/sdc'

คำสั่งของคุณไม่ถูกต้องหากไม่มี mkfs.vfat ก่อน อาจเป็นถ้าคุณติดตั้ง bootloader ด้วยและทำให้พาร์ติชันใช้งานอยู่ ไดรฟ์ usb อื่นอาจใช้งานไม่ได้เพราะพอร์ต usb ของคุณสามารถใช้ร่วมกับพอร์ต usb อื่นของคุณได้หรือคุณไม่มีอำนาจในการใช้งานระบบปฏิบัติการ usb สดอาจใช้งานไดรฟ์ hdd และดิสก์ usb อื่น ๆ ที่ต้องการพลังงานมากกว่าปกติ มากกว่าการใช้พลังงานเฉลี่ยของอุปกรณ์ประเภทนี้ (เช่นดิสก์ hdd ในกรณีภายนอกด้วย usb จากอะแดปเตอร์ sata)


2

คุณสามารถสร้างแท่ง USB ที่สามารถบู๊ตได้ด้วยcp(ดูเหมือนจะตรงไปตรงมาสำหรับฉันมากกว่าddหรือ GUI):

sudo cp path/to/ISO /dev/sdX


โปรดจำไว้ว่า/dev/sdXควรจะถูกแทนที่ด้วยชื่อของอุปกรณ์ป้องกันของคุณ (เช่น/dev/sdb, /dev/sdc)


1
นั่นเป็นเรื่องใหม่สำหรับฉัน พร้อมกับprogress unix.stackexchange.com/a/301329/87264มันแสดงถึงความคืบหน้าเช่นกัน
Jonas Eberle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.