Tại sao 'dd' không hoạt động để tạo USB có thể khởi động?


36

Gần đây tôi muốn tạo một USB có khả năng khởi động của Linux. Tôi thấy rằng có rất nhiều lời khuyên / kinh nghiệm mâu thuẫn về việc liệu lệnh 'dd' có thể được sử dụng để tạo USB có thể khởi động hay không. Tôi quyết định tải xuống một ISO và thử. Trong khi dd chắc chắn đặt hình ảnh trên thanh USB, nó không thể khởi động được. Vì vậy, câu hỏi của tôi là thành phần ma thuật nào sẽ làm cho công việc này hoặc tại sao phương pháp này vẫn tồn tại nếu nó không hoạt động?

Đây là lệnh tôi đã sử dụng,

dd if=/mint/iso/image of=/dev/sdb1 oflag=direct 

@sawdust trong khi bạn nói rằng các câu trả lời được đăng là "không đi", bài viết này ( Community.linuxmint.com/tutorial/view/744 ) chỉ ra rằng đây là quy trình chính xác.
Dave G

1
@DaveG - Thật thú vị, rõ ràng 'dd' là một lệnh có thể sử dụng được nếu tệp nguồn là "hình ảnh lai ISO". Nhưng nó không phải là một thủ tục chung cho mọi iso . Có lẽ sự khác biệt đó là lý do cho jdowner lời khuyên mâu thuẫn gặp phải.
mùn cưa

@sawdust cảm ơn bạn đã làm rõ thêm về điều đó.
Dave G

Bạn có thể có một hệ thống trên gậy sẽ được sử dụng trong hệ thống khởi động EFI - nhưng máy của bạn được cấu hình để sử dụng khởi động "cổ điển". Vì vậy, nhìn thấy với một thanh USB Mint của Linux.
David Tonhofer

Đây là một cách giải quyết đơn giản / thiên tài cho hình ảnh iso recitcitrant (dựa trên Ubuntu Live ISO): 1) Thanh định dạng sao cho có một hệ thống tệp trên (giả sử) "/ dev / sdX1", 2) Gắn kết dưới dạng "/ mnt / usb "ví dụ: 3) Cài đặt grub2 trên thanh : grub2-install --boot-directory /mnt/usb/boot/ /dev/sdX, 4) Sao chép hình ảnh ISO đã tải xuống trước đó (ví dụ:" crazyinux.iso ") để dán: cp foolinux.iso /mnt/usb/5) Tạo tệp" /mnt/usb/boot/grub2/grub.cfg " khởi động linux từ hình ảnh ISO hiện diện trên thanh (tiếp)
David Tonhofer

Câu trả lời:


32

Bạn đang viết hình ảnh vào phân vùng 1 của / dev / sdb

Thay đổi điều này thành lệnh sau:

dd if=/mint/iso/image of=/dev/sdb oflag=direct

thông tin này được lấy từ đây


2
Tôi đang làm: sudo dd if =. / Debian-8.4.0-powerpc-DVD-1.iso of = / dev / rdisk3 bs = 1m và nó không khởi động được, có ý tưởng nào không?
Yusufk

Tôi muốn có một phân vùng hoặc một đĩa thô? Bạn đang cố gắng ghi hình ảnh vào một phân vùng cụ thể
Dave G

1
Tôi đang làm / dev / sdb và nó vẫn không thể khởi động được
holms 17/03/18

rdisk3 là đĩa thứ 3 trên mac afaik. Tôi có cùng một vấn đề với Yusufk. Cần kiểm tra nếu nó liên quan đến UEFI.
gavit

11

Bạn đã sao chép hình ảnh vào phân vùng đầu tiên. Hãy thử sao chép vào / dev / sdb thay vì / dev / sdb1.

Cơ chế thực tế thay đổi một chút tùy thuộc vào loại hình ảnh bạn đang sử dụng, nhưng đối với hình ảnh DOS / MBR đơn giản, bạn cần có một bảng phân vùng chính xác (với phân vùng có thể khởi động được đánh dấu là có khả năng khởi động và MBR - một phần của 512 byte ban đầu không phải là bảng phân vùng - chứa mã khởi động ban đầu.


Tôi sẽ lưu ý rằng thay vì cố gắng sao chép lại toàn bộ ISO sang phân vùng khác, chỉ cần đặt cờ khởi động trên phân vùng mà bạn đã sao chép hình ảnh ban đầu cũng có thể đủ (như được gợi ý trong câu trả lời này)
GrayedFox 19/11/18

2

Từ kinh nghiệm của tôi với một bản phân phối Linux khác, tất cả những gì bạn cần làm là thay đổi tệp bộ tải khởi động syslinux và sửa đổi nó để khởi động USB. Có nhiều thông tin chi tiết hơn về vấn đề này tại wiki syslinux .

Xem thêm tìm kiếm Google này .


1

Bạn có thể cần phải có một BPB được ghi vào bộ tải khởi động của bạn. Xem bài đăng của Dex từ Thứ Sáu ngày 24 tháng 4 năm 2009 9:06 sáng tại http://f.osdev.org/viewtopic.php?f=1&t=19681

Ý chính là "nếu [phần mềm usb của bạn] người dùng mô phỏng đĩa mềm và bạn không có BPB, thì nó sẽ KHÔNG khởi động"

Với lời khuyên đó, tôi đã có thể giải quyết vấn đề này. Tôi sử dụng linux, vì vậy lệnh dd của tôi là:

sudo dd bs=512 count=2880 if=IMG.bin of=/dev/sdb

Bạn sẽ muốn thay thế sdb bằng thiết bị usb của bạn. Bạn có thể tìm thấy nó bằng cách chạy

ls -l /dev/ | grep sd

trước và sau khi cắm usb của bạn trong khi linux đang chạy. Nếu bạn nhận được ví dụ sdb1 và sdb, hãy chọn tùy chọn không được lập chỉ mục.


0

Bạn đã chắc chắn rằng bo mạch chủ của bạn được thiết lập để khởi động từ thiết bị USB trước khi nó thử khởi động từ ổ cứng của bạn? Tôi đoán đó có thể là vấn đề duy nhất của bạn - không có nhiều thứ để sử dụng ddnhư bạn có thể thấy.


1
Đây là một vấn đề mà tôi đã nghĩ đến, đặc biệt là vì tôi đang làm việc trên một máy tính cũ. Vì vậy, khi nó không hoạt động trên máy mục tiêu của tôi, tôi đã đặt thứ tự khởi động trên máy tính xách tay của mình (shh, đừng nói với cô ấy) và nó cũng không khởi động từ đó.

0

Tôi cũng đã gặp vấn đề này một vài lần.

Những gì tôi thấy rằng làm việc cho tôi hầu hết thời gian là không điền vào ổ đĩa đầu tiên.

  1. Thay đổi X thành ký tự hoặc số ổ đĩa của bạn, để tìm nó:

    • Mac: diskutil list
    • Linux: lsblk
  2. Không điền vào ổ đĩa

    • Mac: dd if=/dev/zero of=/dev/rdiskX bs=4m
    • Linux: dd if=/dev/zero of=/dev/sdX bs=4M
  3. dd hình ảnh của bạn một lần nữa

(Kích thước khối 4meg dường như là nhanh nhất đối với tôi)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.