Câu hỏi Làm thế nào để tạo một ổ đĩa flash USB USB có thể khởi động từ thiết bị đầu cuối?


Có cách nào để tạo một ổ đĩa flash USB USB có khả năng khởi động từ thiết bị đầu cuối mà không sử dụng bất kỳ ứng dụng của bên thứ ba nào như YUMI, Unetbootin, Startup Disk Creator, v.v.

Tôi đã cố gắng tạo một ổ đĩa flash Ubuntu có thể khởi động với dd phương pháp,

sudo umount /dev/sdb
sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M

Nó tạo ra các tập tin trên đĩa USB, nhưng khi tôi cố gắng để khởi động đĩa USB nó cho thấy một Operating System Not Found lỗi.


263
2017-11-15 17:29


gốc


Bạn phải đảm bảo rằng ổ flash USB của bạn KHÔNG được gắn kết. Kiểm tra với lsblk. Nếu cần, hãy làm sudo umount / dev / sdb (có lẽ là sdb1, sdb2). Thêm, echo $? sau lệnh dd copy của bạn. Vì vậy: sudo dd if = ... of = ... bs = 4M; echo $? Nếu lệnh kết thúc, giá trị trả về phải là 0.
tôi đã theo dõi các bước của bạn, nhưng nó cũng tạo ra các tệp giống như sudo umount /dev/sdb sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M create.Nó không tạo ra bất kỳ ubninit,ldlinux.sys,etc các tệp chủ yếu là một hệ điều hành Linux khởi động. - Avinash Raj
Tôi sẽ cài đặt grub trên MBR của đĩa USB như là một bước cuối cùng. - Elder Geek
Các dễ nhất cách với các công cụ tích hợp sử dụng thiết bị đầu cuối là sử dụng dd như được mô tả ở đây. Nó hoạt động với tất cả các tệp iso lai. Nhưng dd là một công cụ nguy hiểm bởi vì nó làm những gì bạn bảo nó làm mà không có câu hỏi. Vì vậy, nếu bạn nói với nó để xóa các hình ảnh gia đình ... và nó là một lỗi đánh máy nhỏ đi. Nhiều công cụ an toàn hơn. Chúng giúp bạn xác định và chọn ổ đĩa đích và cung cấp điểm kiểm tra cuối cùng, nơi bạn có thể kiểm tra kỹ, bạn sẽ ghi vào đúng ổ đĩa. Hầu hết trong số này là các công cụ GUI, một số có thể hoạt động ở chế độ văn bản, ví dụ: mkusb-dus. - sudodus
Liên kết sau đây cho thấy một ví dụ, nơi ổ đĩa nội bộ bị ghi đè do nhầm lẫn, khi một dòng lệnh có dd đã được sử dụng để tạo ổ đĩa flash USB USB có thể khởi động, askubuntu.com/questions/982552/accidentally-did-dd-dev-sda - sudodus


Các câu trả lời:


Bạn có thể dùng dd.

 sudo umount /dev/sd<?><?>  

Ở đâu <?><?> là một chữ cái theo sau là một số, tra cứu nó. Tiếp tục:

 sudo dd bs=4M if=input.iso of=/dev/sd<?> conv=fdatasync

Ở đâu input.iso là tệp đầu vào và /dev/sd<?> là thiết bị USB bạn đang viết tới (chạy lsblk để xem tất cả các ổ đĩa để tìm hiểu xem <?> dành cho USB của bạn).

Phương pháp này nhanh và chưa bao giờ thất bại.


EDIT: cho những người trên máy Mac kết thúc ở đây, sử dụng chữ thường cho bs=4m:

sudo dd if=inputfile.img of=/dev/disk<?> bs=4m && sync

EDIT: Nếu ổ đĩa USB không khởi động (điều này xảy ra với tôi), đó là bởi vì mục tiêu là một phân vùng cụ thể trên ổ đĩa thay vì ổ đĩa. Vì vậy, mục tiêu cần phải là / dev / sdc và không phải dev / sdc <?> Đối với tôi nó là / dev / sdb.

Tài liệu tham khảo: https://superuser.com/a/407327 và https://askubuntu.com/a/579615/669976


302
2017-11-13 11:51



nó không hiệu quả với tôi. - Avinash Raj
Có thật không? Bạn có chắc là bạn có tên tệp .iso đúng bao gồm đường dẫn và / dev đúng cho ổ USB của bạn không? Làm thế nào nó thất bại? Có thông báo lỗi hay không chỉ khởi động được? Bạn có chắc là .iso không bị hỏng? - Marc
Bạn có thể bị hỏng .iso. Bạn đã kiểm tra chưa Bạn có chắc chắn .iso thực sự là bản sao của thứ gì đó Là có thể khởi động? - Marc
Câu hỏi gốc và câu trả lời được trả lời nhiều nhất là cùng một người nói rằng phương pháp này không hiệu quả với anh ta. ;-) Đối với tôi, câu trả lời được phê duyệt không hoạt động và câu trả lời này không có. :-) Upvoting. - Drachenfels
sử dụng df -lh để kiểm tra xem dev/sdc là của bạn /media/user/XXXX-YYY (tên giao diện của USB) - Peter Krauss


Tạo ổ đĩa flash USB có thể khởi động từ thiết bị đầu cuối

  • Đặt ubuntu.iso trong bất kỳ phân vùng đĩa cứng nào.

  • Sau đó gắn kết ubuntu.iso tập tin với các lệnh dưới đây trong terminal:

    sudo mkdir /media/iso/
    sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • Lắp ổ flash USB của bạn. Ổ của tôi là /dev/sdd. Đây là ảnh chụp màn hình:

GParted screenshot

  • Ổ đĩa của bạn có thể được tự động gắn bên trong /media/. Giả sử rằng nó được gắn kết /media/xxx/.

  • Sao chép tất cả các tệp từ /media/iso/ vào ổ flash USB được gắn của bạn bằng cách chạy lệnh dưới đây (đảm bảo bao gồm dấu chấm):

    cp -a /media/iso/. /media/xxx/
    
  • Tiếp theo, bạn cần ldlinux.sys tập tin trong ổ USB của bạn để tạo USB có thể khởi động. Phân vùng USB của tôi là /dev/sdd1; đi vào lsblk để xem bạn là ai. Chạy các lệnh dưới đây:

    sudo apt-get install syslinux mtools
    sudo syslinux -s /dev/sdd1
    
  • Điều hướng đến /media/xxx gắn thư mục và đổi tên isolinux thư mục đến syslinux. Sau đó đi vào thư mục đã đổi tên và đổi tên tệp isolinux.cfg đến syslinux.cfg.

  • Khởi động lại PC của bạn và thay đổi thứ tự khởi động trong BIOS để cho phép khởi động từ ổ USB. Bây giờ ổ USB flash của bạn sẽ khởi động và bạn có thể cài đặt nó.

Phương pháp này sẽ làm việc cho bất kỳ bản phân phối Linux nào, không chỉ với Ubuntu. Bạn không cần phải cài đặt bất kỳ phần mềm của bên thứ ba nào để tạo ổ đĩa flash USB Linux.


84
2017-11-07 18:19



Tôi đang cố gắng nó vào lúc này, bạn có thể vui lòng chỉ định những gì / lý do tại sao bạn sử dụng: cp-a chứ không phải là cp-r - moldovean
Bạn cần sudo cho syslinux chỉ huy. - Cammy_the_block
Phương pháp này không hiệu quả với tôi. Cp -a cho: 'cp: không thể tạo liên kết tượng trưng' /media/xxx/./ubuntu ': Thao tác không được phép' và một số khác tương tự, vì mục tiêu là fat32. Tôi đã cố gắng bỏ qua điều đó ... không hoạt động - sheß
Quan trọng cần lưu ý rằng usb phải là một hệ thống tập tin fat32, nếu không syslinux sẽ không hoạt động - Ricardo BRGWeb
Bàn điều khiển cho tôi thấy lỗi giống với @ sheß. Tôi đã xác minh hệ thống tệp (FAT32) và cờ BOOT. - Chofoteddy


Bạn gần như ở đó với dd, nhưng bạn đang bỏ lỡ một bước.

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdX bs=4M && sync

Ở đâu sdX là thiết bị usb của bạn (điều này có thể được xác minh với lsblk).

Các sync bit quan trọng như dd có thể trở lại trước khi hoạt động ghi kết thúc.


77



+1 để đề cập sync. Nếu không có nó, bạn không có ý tưởng nếu nội dung thực sự được sao chép. Ngoài ra, nếu bạn không vội vàng, bạn nên md5sum cả hai tệp chỉ cần chắc chắn gấp đôi. - Dave
Có thể đáng nhắc đến USB có thể cần phải được định dạng lại thành FAT32 sudo mkfs.msdos -F 32 /dev/sdX Đầu tiên? - Nemo
@ Nemo, có thể cho rằng để tạo sự khác biệt? dd đến / dev / sdX sẽ ghi đè lên bất kỳ hệ thống tệp hiện có nào. - mwfearnley
sync là vô nghĩa ở đây. Nó chỉ ảnh hưởng đến các hoạt động của hệ thống tập tin. - punund
conv=fdatasync - - ghi dữ liệu đầu ra vật lý trước khi hoàn thành nên chú ý đến việc đồng bộ hóa, nhưng hãy thực hiện cuộc gọi tốt để đảm bảo rằng thiết bị chưa được kết nối trước. - Johnathon Havens


Bạn có hai lựa chọn.

Nếu bạn mong muốn một giao diện đồ họa, hãy sử dụng trình tạo usb (nó nằm trong repos ubuntu)

enter image description here

Nếu bạn muốn một công cụ dòng lệnh, hãy sử dụng dd

#Replace X accordingly in both commands

sudo umount /dev/sdX
sudo dd if=/path/to/ubuntu.iso of=/dev/sdbX bs=1M

Chỉ cần chắc chắn /dev/sdX là ổ đĩa flash bạn muốn sử dụng (nó sẽ phá hủy dữ liệu trên ổ đĩa flash).

Xem https://help.ubuntu.com/community/Installation/FromUSBStickĐể biết thêm thông tin chi tiết.


36



tôi chỉ muốn các công cụ dòng lệnh, không phải công cụ gui (như trình tạo đĩa khởi động). dd phương pháp, chỉ có 3 thư mục và 1 tập tin đã được tạo ra trong usb của tôi. Khi tôi cố gắng để khởi động nó nói operating system not found error.Files như ubninit,menu.c32,ubnpathl.txt,ubnfilel.txt,ldlinux.sys bị thiếu (rất quan trọng để khởi động usb ubuntu trực tiếp). - Avinash Raj
Tôi đã thử phương pháp dd với ubuntu.iso và nó đã hoạt động! nó quá nhiều thời gian tuy nhiên để được viết trên một USB. Tôi tự hỏi những gì bs = 1M là viết tắt của. Tôi tìm thấy trang này manpages.ubuntu.com/manpages/karmic/en/man1/dd.1.html. Bây giờ tôi tự hỏi nếu thay đổi giá trị sẽ thực hiện để sao chép vào USB nhanh hơn? Và những rủi ro là gì .. có thể ai đó biết. - moldovean
Các bs là kích thước khối. dd sẽ đọc 1MB dữ liệu vào bộ nhớ và sau đó tiến hành ghi nó vào đĩa tổng thể. Sử dụng một kích thước khối rất nhỏ, bạn sẽ nhận được rất nhiều chi phí CPU. Việc sử dụng kích thước khối rất lớn có thể dẫn đến các tác dụng phụ không mong muốn, ví dụ: tạm dừng hoạt động đĩa và / hoặc sử dụng RAM lớn hơn. 1M hoặc 4M thường là một giá trị tốt khi tạo đĩa từ ISO. Thông tin thêm về kích thước khối: stackoverflow.com/questions/6161823/… - ApolloLV
Tôi hình dung việc tạo usb có thể khởi động là điều tôi thỉnh thoảng làm, nhưng khi tôi làm điều đó, tôi muốn nó thực hiện đúng. Kích thước khối nhỏ hơn có thể mất nhiều thời gian hơn, nhưng đó có phải là vấn đề không? Không. - Marc
@Marc - Vấn đề duy nhất là tốc độ, kích thước khối nhỏ hơn không có nhiều hay ít lỗi dễ xảy ra sau đó kích thước khối lớn hơn và do đó kích thước khối nhỏ hơn! = "Done right". Thực hiện quyền có nghĩa là kiểm tra md5sum của iso và xác nhận md5sum của hình ảnh được viết. Một khi bạn xác nhận m5dsums bạn biết nó đã được thực hiện ngay. - Panther


Trước tiên, tháo thiết bị USB và sau đó sử dụng lsblk để xác minh thiết bị.

Đôi khi (thường là tập tin ISO cũ) dd không đủ và pendrive sẽ không khởi động. Trong trường hợp này, bạn có thể cần phải cài đặt syslinux:

sudo apt-get install syslinux

và sau đó chạy các lệnh sau:

sudo mkfs -t vfat -I /dev/sdX

Bạn muốn chạy lệnh cuối cùng đó /dev/sdX và không phải  /dev/sdX1.

Sau đó, tiếp tục với các lệnh sau:

isohybrid /path/to/file.iso --entry 4 --type 0x1c
dd if='/path/to/file.iso' of=/dev/sdX bs=8M

hoặc, để xem tiến trình ghi hình ảnh:

pv -tpreb /path/to/file.iso | dd of=/dev/sdX bs=8M

hoặc thay vì dd, bạn có thể dùng cat thay thế:

sudo -s
cat /path/to/file.iso > /dev/sdX

Nhắc nhở để phát hành lệnh đồng bộ hóa để xóa bộ nhớ cache ghi

sync

web.archive.org/web/20140327085331/https://tails.boum.org/doc/first_steps/installation/manual/linux/index.en.html


23



Tôi cần phải đề cập rằng đối với tôi mọi thứ khác thất bại, nhưng điều này đã làm việc - tôi đã chọn cat chỉ huy. - Digital Dracula
Đối với những người nhấn mạnh rằng dd một mình là đủ, tôi cũng cần điều này để làm việc. - GuiRitter
Nếu bạn muốn một công cụ sử dụng dd khi ISO được kết hợp và gắn kết, hãy sao chép tệp ISO + cài đặt SYSLINUX khi ISO không sử dụng, bootiso thay thế. - Jules Randolph


$ dd if=ubuntu-14.04.1-desktop-amd64.iso of=/dev/sdX bs=1MB

Không sử dụng đường dẫn đến bit.

  1. Sử dụng cd lệnh để đến thư mục chứa tệp .iso
  2. sử dụng lệnh dd if=FILE NAME HERE.iso of=/dev/sdX bs=1MB
  3. Chờ cho đến khi đầu ra giao diện điều khiển trông giống như sau:

    1028+1 records in
    1028+1 records out
    1028653056 bytes (1.0 GB) copied, 55.4844 s, 18.5 MB/s
    
  4. Khởi động từ usb.

Lưu ý: Đảm bảo bạn ghi vào đúng thiết bị, một usb sẽ không luôn được gắn tại: dev/sdX trong đó X có thể là bất kỳ chữ cái nào.


6



ý nghĩa của bs = 1MB trong lệnh dd là gì ??? - juggernauthk108
@ juggernaut1996 không. Đó là kích thước khối để sử dụng khi sao chép. Vì không có đối số đếm được cung cấp, nó sẽ sao chép toàn bộ đầu vào trong khối 1MB. Nó có thể được gỡ bỏ. - sjbx
"Không sử dụng đường dẫn đến bit" là thông tin sai lạc. Quá trình tự nó không nướng các thành phần đường dẫn vào hình ảnh được sao chép trong bất kỳ bước nào, do đó, nó không liên quan nếu bạn điều hướng đến thư mục chứa hình ảnh ISO của bạn hoặc chỉ cung cấp đường dẫn đầy đủ. Hơn nữa, dd có thể chấp nhận đầu vào từ stdin quá, vì vậy bạn chỉ có thể ống hai dd vào eachother để đảm bảo không có đường dẫn nướng vào hình ảnh. - Gabor Garami
Điều đó sẽ chỉ làm việc cho các chuẩn ISO-hybrid, mà chiếm phần lớn các trường hợp ngày hôm nay, nhưng có những ngoại lệ đáng chú ý như UltimateBootCD. Sử dụng bootiso thay thế. - Jules Randolph


Nếu bằng "bên thứ ba", bạn có nghĩa là "gui", Tôi đề nghị một kịch bản nhẹ có tên bootiso sau Avinash Raj trả lời, bởi vì dd không phải lúc nào cũng hiệu quả. Điểm cộng lớn là nó rất an toàn (thực hiện nhiều kiểm tra bảo mật không gây rối với hệ thống), dễ cài đặt và di động.

Cũng thế, bootiso sẽ kiểm tra tập tin ISO để chọn từ hai chế độ: image-copy (dd) khi tập tin ISO là lai, đó là thân thiện với USB. Và chế độ mount-rsync khi tập tin ISO không kết hợp, trong trường hợp đó bộ tải khởi động SYSLINUX sẽ tự động được cài đặt nếu được hỗ trợ [biết thêm chi tiết về hành vi tự động].

Làm thế nào để sử dụng nó

Tùy chọn đầu tiên, chỉ cần cung cấp ISO làm đối số đầu tiên và bạn sẽ được nhắc chọn một ổ đĩa trong danh sách được trích xuất từ lsblk:

bootiso myfile.iso

Hoặc cung cấp rõ ràng thiết bị USB:

bootiso -d /dev/sde myfile.iso

Cài đặt nhanh

curl -L https://git.io/bootiso -O
chmod +x bootiso

Xem nó trong hành động:


5



Tôi đồng ý, đây là một kịch bản rất tốt đẹp mà có những bit đáng sợ ra khỏi quá trình này. Xem thêm chi tiết tại đây: tecmint.com/create-bootable-usb-in-linux-commandline - kr37


Hãy thử điều này và không bao giờ thất bại với tôi trong hơn 100 lần:

Định dạng thẻ:

$ sudo mkfs.vfat -F32 /dev/sdx

Gắn hình ảnh ISO:

$ sudo mount ubuntu.iso /mnt

Sao chép nội dung vào thẻ:

$ sudo cp -rvf /mnt/* /SD_CardMountPoint

Sau đó:

  • đổi tên isolinux thư mục vào syslinux
  • đổi tên syslinux/isolinux.cfg đến syslinux/syslinux.cfg
  • đổi tên syslinux/isolinux.bin đến syslinux/syslinux.bin
  • chạy syslinux -s /dev/sdx

-4



-1. Bạn thậm chí đã kiểm tra điều này? sudo cp -rvf /mnt/* /dev/sdx sẽ không hoạt động (hoặc ít nhất là không làm những gì bạn dự định). Bạn không sao chép tệp vào thiết bị thô (/dev/). Thay vào đó, bạn nên gắn thẻ và sao chép nội dung của tập tin ISO vào thẻ (điểm lắp vào điểm lắp). Và có gì sai với câu trả lời được chấp nhận hiện tại có cùng cách tiếp cận. - gertvdijk