“ ขนาดบล็อกฟิสิคัลคือ 2048 ไบต์ แต่ Linux บอกว่าเป็น 512” เมื่อทำการฟอร์แมต USB - วิธีสร้าง USB ที่บูตได้โดยไม่มีข้อผิดพลาดนี้


95

ฉันใช้:

dd  if=/path/to/my/ubuntuiso/ubuntu.iso  of=/dev/sdb1  bs=4M  &&  sync

เพื่อสร้างไดรฟ์ Ubuntu USB ที่สามารถบู๊ตได้ใน Ubuntu รุ่นเก่า มันทำงานได้อย่างสมบูรณ์ บางครั้งฉันใช้Startup Disk Creatorโปรแกรมซึ่งทำงานได้ดี

แต่เมื่อฉันใช้วิธีการเดียวกันกับ Ubuntu 16.04 LTS ฉันจะได้รับคำเตือนขณะทำการฟอร์แมตในภายหลัง

สื่อการติดตั้งใช้งานได้ตามที่คาดไว้ แต่เมื่อฉันพยายามฟอร์แมต USB Stick หลังจากทำงานเสร็จฉันได้รับคำเตือนดังต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

การแบ่งส่วนของ Pendrive นั้นดูแปลก:

ป้อนคำอธิบายรูปภาพที่นี่

และมันยังแสดงให้เห็นว่า Pendrive 16GB ของฉันเป็น 64GB

หลังจากที่ต้องดิ้นรนมากกับ Gparted ฉันจะจัดรูปแบบมัน แต่ทำไมมันเกิดขึ้นแบบนี้ ?? มีวิธีใดที่ดีกว่าในการสร้าง Ubuntu ที่สามารถบู๊ตได้ใน 16.04?

แก้ไข : มีคำถามที่เกี่ยวข้องที่นี่ แต่คำถามของฉันไม่ได้เกี่ยวกับวิธีการจัดรูปแบบอย่างถูกต้อง คำถามของฉันคือ "วิธีสร้าง USB ที่สามารถบู๊ตได้โดยไม่มีข้อผิดพลาดนั้น" & "สาเหตุของข้อผิดพลาด" คืออะไร


สำหรับ UEFI ผมใช้คำสั่ง sgdisk - ผมได้ทำ 6 distro อาศัยอยู่ USBs วิธีนี้ในช่วงไม่กี่เดือนที่ผ่านมาและมันทำงานสวยงามสำหรับฉัน
Zanna

@Zanna โปรดอธิบายการใช้ sgdisk
Severus Tux

คุณแน่ใจหรือว่าเป็นอุปกรณ์ที่ถูกต้อง? ถ้ามันควรเป็น 16GB อาจเป็น / dev / sdc หรืออย่างอื่น การ์ด SD จำนวนมากเป็น 64GB และไม่สามารถใช้ทำการบูทได้ ไดรฟ์ของคุณจะไม่แสดงเหมือนกันเสมอ (sdb sdc) และทุกอย่างขึ้นอยู่กับไดรฟ์ที่ติดตั้งก่อน
mchid

1
ฉันฟอร์แมต USB ด้วยmkfsหลังจาก ISO ทำงานโดยไม่คำนึงถึงวิธีการสร้าง USB
UniversallyUniqueID

คำตอบ:


118

วิธีบรรทัดคำสั่งเพื่อสร้าง live USB สำหรับระบบ UEFI

โปรดทราบ: นี่จะเป็นการลบข้อมูลทั้งหมดในอุปกรณ์เป้าหมาย

ติดตั้งข้อกำหนดเบื้องต้น:

sudo apt-get install p7zip-full

สมมติว่า USB เป้าหมายอยู่ที่ /dev/sdb

( โปรดตรวจสอบครั้งแรกด้วยlsblkหรือgnome-disksหรือsudo fdisk -lและให้แน่ใจว่าคุณรู้ว่าคุณกำลังจัดรูปแบบอะไร)

ตรวจสอบให้แน่ใจว่าอุปกรณ์ไม่มีระบบไฟล์ที่เมาท์และยกเลิกการต่อเชื่อมหากจำเป็นตัวอย่างเช่น:

udisksctl unmount -b /dev/sdb1

ทำลายตารางพาร์ทิชันที่มีอยู่:

sudo sgdisk --zap-all /dev/sdb

สร้าง GPT ใหม่:

sudo sgdisk --new=1:0:0 --typecode=1:ef00 /dev/sdb

จัดรูปแบบเป็น FAT32:

sudo mkfs.vfat -F32 /dev/sdb1

ตรวจสอบ:

sudo fdisk -l /dev/sdb

ควรส่งออกสิ่งที่ชอบ:

Device     Start      End  Sectors  Size Type
/dev/sdb1   2048 15663070 15661023  7.5G EFI System

ใส่ไดรฟ์และแยก iso ลงแทน 'name-of-iso' ด้วยชื่อไฟล์จริงของ iso ที่คุณดาวน์โหลดก่อนหน้านี้

sudo mount -t vfat /dev/sdb1 /mnt
sudo 7z x name-of-iso -o/mnt/

ยกเลิกการต่อเชื่อม

sudo umount /mnt

ตอนนี้เริ่มต้นใหม่และเพลิดเพลินกับ Ubuntu ^ _ ^

(ที่นี่ฉันได้เรียนรู้การทำสิ่งนี้ในตอนแรก)


3
กำลังทำ ... แต่สิ่งนี้ต้องการแพ็กเกจp7zip-fullมันจะดีกว่าถ้าคุณจะเพิ่มการทำแบบเดียวกันกับtarในคำตอบของคุณ
Severus Tux

3
ว้าว! ขอบคุณมาก . มันใช้งานได้ดี พาร์ทิชันที่ดูสะอาด จะเป็นการดีที่สุดถ้าคุณเพิ่มการแยกโดยใช้เครื่องมือ inbuilt เช่นเดียวกับtarในคำตอบของคุณ (หรือแม้กระทั่งการเพิ่มที่ 7z มีอยู่ในp7zip-full)
Severus Tux

2
ฉัน upvoting โพสต์นี้เพราะมันเป็นคำอธิบายที่ดีที่แสดง 'ขั้นตอนพื้นฐาน':') แต่ยังมีเครื่องมือที่ทำสิ่งต่าง ๆ โดยอัตโนมัติสำหรับผู้ใช้ที่ขี้เกียจ ;-)
sudodus

3
นี่เป็นเพียงคนเดียวที่ทำงานให้ฉันภายใต้ 16.04 ขอบคุณ! แอปเริ่มต้นทำให้เกิดสื่อ muy ที่มีปัญหาขนาดบล็อกที่ไม่ถูกต้องและสร้างระบบไฟล์แบบอ่านอย่างเดียวที่ฉันไม่สามารถเปลี่ยนกลับได้เนื่องจากปัญหาขนาดบล็อก วิธีนี้ช่วยให้ผู้ใช้เพลิดเพลินไปกับพื้นที่ว่างที่เหลืออยู่ทั้งหมด
user334639

3
usb-creator ของ Ubuntu 17.04 (Startup Disk Creator) "ทำให้เสียหาย" ไดรฟ์ USB ของฉันทุกครั้ง และทีละขั้นตอนนี้เป็นวิธีเดียวที่จะเปลี่ยนกลับเป็นสถานะปกติที่สามารถเขียนได้ gparted ไม่สามารถ
isync

39

นี่คือวิธีที่ฉันแก้ไขปัญหาในการรับข้อผิดพลาดนี้เมื่อพยายามฟอร์แมต USB หลังจากใช้เป็นสื่อการติดตั้ง:

  • ก่อนเปิดแอปพลิเคชันดิสก์ภายใต้แอปพลิเคชัน> ดิสก์
  • เลือกไดรฟ์ปากกาที่บูตได้
  • จะมีเมนูตัวเลือกที่มุมบนขวา
  • เลือกตัวเลือก Format drive ( CTRL+ F)
  • ป๊อปอัปจะปรากฏขึ้น เลือก 0 พาร์ติชันและฟอร์แมตดิสก์
  • ตอนนี้ดิสก์จะว่างเปล่า แต่จะไม่รับรู้โดยระบบ แต่คุณสามารถเห็นได้บนแอปพลิเคชันดิสก์
  • เลือกไดรฟ์ปากกาและฟอร์แมตใหม่ ตอนนี้ pendrive สามารถตรวจจับได้ด้วยระบบใด ๆ

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


2
+1 แต่ฉันคิดว่าคำถามนี้มีชื่อเรื่องที่ทำให้เข้าใจผิด - ฉันได้แก้ไขแล้ว คำตอบที่ได้รับการยอมรับสำหรับคำถามนี้เป็นวิธีการสร้างสื่อการติดตั้งตามที่ OP ร้องขอไม่เพียงทำการฟอร์แมตไดรฟ์ (และคุณต้องแน่ใจเสมอว่าคุณกำลังเลือกอุปกรณ์ที่เหมาะสมเมื่อทำการฟอร์แมตไม่ว่าจะใช้วิธีใด!)
Zanna

ตกลงขอบคุณที่แจ้งให้เราทราบ ตอนนี้ตามชื่อที่แก้ไขของคุณคุณสามารถใช้ผู้สร้างดิสก์เริ่มต้นเพื่อสร้างสื่อการติดตั้งใหม่หลังจากฟอร์แมตไดรฟ์
Gopal Prasad

ขอขอบคุณ. เมนูที่มุมบนขวาไม่ชัดเจนในการค้นหา
Tor Klingberg

16

usb-creator-gtkนอกจากนี้ยังพบว่าปัญหาเกิดจากข้อผิดพลาดใน มันตั้งค่าขนาดบล็อกที่ไม่เหมาะสมในระหว่างการสร้างสื่อที่ใช้บู๊ตได้

หากข้อผิดพลาดนี้มีผลกับคุณคุณสามารถทำเครื่องหมายได้ที่นี่: https://bugs.launchpad.net/ubuntu/+source/usb-creator/+bug/1589028


1
ในความคิดเห็นล่าสุดในเว็บไซต์ด้านบนมีผู้ใช้ชื่อ EoflaOE อยู่ด้านล่างคุณจะเห็นความคิดเห็นและสิ่งที่ส่งผลกระทบต่อฉันและสิ่งที่ฉันแนะนำให้ทำเพื่อที่คุณจะไม่พยายามทำลาย USB ของคุณเหมือนครั้งที่แล้ว หากคุณต้องการสร้าง USB ที่สามารถบู๊ตได้เองให้ใช้ Rufus หรือ Universal USB Creator จนกว่าข้อผิดพลาดนี้จะได้รับการแก้ไข
Eofla

14

มันง่ายกว่ามาก เพียงแทนที่/dev/sddด้วยที่อยู่อุปกรณ์ของคุณ สามารถพบได้ในดิสก์หรือยูทิลิตี้Gparted

sudo dd if=/dev/zero of=/dev/sdd bs=2048 count=32

จากนั้นคุณสามารถใช้Startup Disk Creatorเพื่อเขียนอิมเมจไปที่ไดรฟ์


7

ฉันใช้ UNetbootin บน Ubuntu (ทั้งรุ่นที่เก่ากว่าและ 16.04) และทำงานได้ดีบนพีซีของฉัน นี่คือลิงค์สำหรับข้อมูลเพิ่มเติม

sudo apt-get install unetbootin

3
ขอบคุณสำหรับความสนใจของคุณ แต่คำถามของฉันไม่ใช่ "ทางเลือกอื่น?" คำถามของฉันคือ "ทำไมวิธีการเหล่านั้นจึงไม่ทำงานตามที่คาดไว้" ฉันขอขอบคุณวิธีการอื่น ๆ ที่ไม่เกี่ยวข้องกับเครื่องมือของบุคคลที่สาม
Severus Tux

7
@SeverusTux จริงๆแล้ว unetbootin นั้นไม่ใช่บุคคลที่สามมากกว่าสิ่งอื่นใด มันสามารถใช้ได้ผ่าน apt-get
mchid

ไม่อนุญาตให้ติดตั้งดิสก์อิมเมจ (หลายพาร์ติชัน) ยืนยันว่าติดตั้งพาร์ติชันหนึ่งไว้เรียบร้อยแล้ว
Gringo Suave

5

ลอง dd if=/path/to/my/ubuntuiso/ubuntu.iso of=/dev/sdb ด้วยวิธีนี้ไม่เคยทำให้ฉันผิดหวัง (หมายเหตุb ไม่ b1ท้าย - จะทำลายพาร์ติชั่นอื่นถ้ามี)

คุณตรวจสอบว่า ISO เกิดความเสียหายหรือไม่?

การทำเช่นนี้จาก TTY ในขณะที่ไม่ได้เข้าสู่ระบบในสภาพแวดล้อมแบบกราฟิกสามารถช่วยในการติดตามปัญหา

แก้ไข: แทนที่จะใช้ ISO คุณสามารถใช้/dev/nullเขียนทับตารางพาร์ติชัน


เช่นนี้: dd if = / dev / null ของ = / dev / sdb? ดูเหมือนจะไม่ทำอะไรเลย
Quantumbutterfly

2
/dev/nullชี้ไปที่ 'nothing' และใช้สำหรับเอาต์พุต แต่/dev/zeroสร้างศูนย์อักขระ (ascii 0)
sudodus

2

การร้องเรียนเกี่ยวกับขนาดบล็อกอาจเกิดจากข้อผิดพลาดในซอฟต์แวร์ที่อ่านiso9660ระบบไฟล์ เวอร์ชันใหม่ของรุ่นวางgpartedจำหน่ายและมีอย่างน้อยใน Ubuntu 17.10 ซึ่งข้อผิดพลาดนี้ถูกบีบอัด


คุณสามารถใช้mkusbในการโคลนไดรฟ์ วิธีนี้ไม่ไวต่อเนื้อหาของไดรฟ์ดังนั้นจึงเชื่อถือได้มาก

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

ดูลิงค์นี้: https://help.ubuntu.com/community/mkusb

หากยังใช้งานไม่ได้คุณสามารถลองตามลิงค์ต่อไปนี้

ไม่สามารถฟอร์แมตไดรฟ์ usb ของฉัน ฉันได้ลองกับ mkdosfs และ gparted แล้ว - การวิเคราะห์ปัญหา

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

  • ติดตั้งระบบปฏิบัติการจากไฟล์ iso (หรือไฟล์ภาพ) หรือ
  • กู้คืนไดรฟ์ไปยังอุปกรณ์จัดเก็บข้อมูลมาตรฐาน

1

ปัญหาที่เกิดขึ้นกับคำตอบที่เลือก : ไดรฟ์ปากกาตอนนี้มองไม่เห็นเมื่อใส่ (ฉันใช้ Lubuntu 16.04 64 บิต) วิธีแก้ไข: เปิดDisksยูทิลิตีเพื่อติดตั้ง

In Lubuntu: Start menu > Preferences > Disks.

สิ่งที่ได้ผลกับคำตอบที่เลือกคือเรากลับไปใช้วิธีเก่าแบบเดิมของไดรฟ์ USB เพื่อเขียน ISO ที่สามารถบู๊ตได้และยังคงเป็นไดรฟ์ USB แบบเขียนได้ซึ่งมีพื้นที่เหลือสำหรับจัดเก็บไฟล์อื่น ๆ เราไม่ได้ใช้งานระบบปฏิบัติการสด) ด้วยStartup Disk Creatorณ วันที่ 16.04 มันเช็ดออก USB สร้างพาร์ติชันแบบอ่านอย่างเดียวคล้ายกับซีดีทำให้ส่วนที่เหลือของ USB ไม่ได้ถูกจัดสรร (ดังนั้นไดรฟ์ 32GB กลายเป็นไดรฟ์อ่านอย่างเดียว 900mb) และฉันไม่ได้ สามารถสร้างพาร์ติชันรองในพื้นที่ที่ไม่ได้ปันส่วน

ปรับปรุง: Unetbootinดูเหมือนจะทำงานไดรฟ์ปากกายังคงมองเห็นได้ไม่ซ่อนในการแทรกและส่วนที่เหลือของดิสก์ยังคงมีอยู่สำหรับการจัดเก็บข้อมูลอื่น ๆ แต่ดิสก์ไม่ได้รับการยอมรับว่าเป็น USB ที่สามารถบู๊ตได้เมื่อฉันบูตแล็ปท็อปของฉัน! ฉันใช้รุ่น UNetBootin ของ Ubuntu


1. คุณอาจจะโชคดีกว่าถ้าคุณติดตั้ง Unetbootin จาก PPA ของผู้พัฒนาเพราะเวอร์ชั่นในที่เก็บของ Ubuntu นั้นเก่าเกินไป (ไม่ทันสมัยเพื่อรับมือกับ Ubuntu รุ่นใหม่); 2. ข้อความแสดงข้อผิดพลาดในชื่อของคำถามนี้เป็นเพราะซอฟต์แวร์ไม่เข้าใจระบบไฟล์ iso9660 ของบูตไดรฟ์ที่ลอกแบบมา 3. และหากคุณมีปัญหาในการกู้คืนไดรฟ์ไปยังอุปกรณ์จัดเก็บข้อมูลมาตรฐานคุณสามารถใช้ mkusb ตามลิงค์ในคำตอบของฉัน (เป็นไปได้กับ gparted และดิสก์ด้วย แต่อาจจะยากขึ้น)
sudodus

0

ฉันมีปัญหาเดียวกันแน่นอนแม้กระทั่งกับ SSD ตัวใหม่ ฉันใช้ Linux Mint 18.1 และ Ubuntu เวอร์ชัน ISO 16.04 LTS ไม่ว่าฉันจะดาวน์โหลด ISO ซ้ำกี่ครั้งให้เขียน ISO ใหม่และทำตามขั้นตอนทั้งหมดที่แนะนำข้างต้นเพื่อแก้ไขข้อผิดพลาดที่กล่าวถึง แต่ก็จะไม่หายไป แปลกฉันติดตั้ง Mint 18.1 และต้องการทำการติดตั้งใหม่ แต่ก็พบข้อผิดพลาด ฉันใช้ USB sticks & SSD เดียวกันเพื่อติดตั้ง Windows 10 จากนั้นเขียนดิสก์ USB AGAION เดิมด้วย Ubuntu 16.04 / Mint 18.1 และติดตั้งล้มเหลว ความคิดเห็นของฉันคือว่ามีความผิดพลาดกับไฟล์ ISO หรือฮาร์ดแวร์เฉพาะของฉันไม่เข้ากัน ฉันเสียชีวิตไปหลายชั่วโมง

** แนวทางแก้ไข: ดาวน์โหลด Ubuntu 17.04 ISO & ติดตั้งแล้ว ทำงานได้ดีบนฮาร์ดแวร์เดียวกันแน่นอนไดรฟ์ USB / แท่งที่ Ubuntu 16.04 ไม่มีอยู่เลย ****


0

เห็นได้ชัดว่าข้อผิดพลาดอยู่ที่การอ่านไดรฟ์อย่างไม่ถูกต้องและไม่ใช่คำสั่ง dd หรือโปรแกรม Startup Disk Creator

รายงาน Debian Bug สำหรับแยกแล้ว: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788808

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


0

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

Physical block size is 2048 bytes, but Linux says it is 512 bytes

กล่องโต้ตอบข้อผิดพลาดนั้นควรอยู่คู่กับคำถามนี้:

Would you like delete the partition table on this device (all data will be lost)?

เนื่องจากมันไม่ได้ทำสิ่งนี้คุณสามารถทำได้ด้วยตัวเองทันทีด้วยคำสั่งนี้:

sudo sgdisk --zap-all /dev/sd?

ต้องแน่ใจว่ามีสองสิ่งก่อนที่คุณจะทำตามคำสั่งด้านบน:

  1. ตรวจสอบให้แน่ใจว่าเทอร์มินัลของคุณเข้าสู่ระบบคอมพิวเตอร์ที่คุณคิดว่าเป็น
  2. ตรวจสอบให้แน่ใจว่าเส้นทางอุปกรณ์นั้นถูกต้อง (ดูเครื่องหมายคำถามในคำสั่งเขาด้านบนคุณต้องเปลี่ยนเส้นทางนั้นเป็นเส้นทางอุปกรณ์ที่ถูกต้อง)

อย่างที่คนอื่นพูดถึงคุณสามารถหาเส้นทางของอุปกรณ์ด้วย:

sudo fdisk -l

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

BTW คำสั่ง dd สำหรับปัญหานี้ช้าเกินไปสำหรับความต้องการของฉัน สิ่งที่ฉันอยากทำก็คือกำจัดข้อผิดพลาดนั้นโดยไม่ต้องรอให้ DD ขับศูนย์ทั้งหมดเลย

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