Làm cách nào để tạo ổ flash USB Ubuntu có khả năng khởi động từ thiết bị đầu cuối?


353

Có cách nào để tạo ổ đĩa flash USB Ubuntu có khả năng khởi động từ thiết bị đầu cuối mà không cần 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ó khả năng khởi động bằng ddphương pháp,

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

Nó tạo tập tin trên đĩa USB, nhưng khi tôi cố khởi động đĩa USB thì nó Operating System Not Foundbáo lỗi.


Bạn phải chắc chắn rằng ổ flash USB của bạn KHÔNG được gắn. Kiểm tra với lsblk. Nếu cần thiết, hãy làm sudo umount / dev / sdb (có thể là sdb1, sdb2). Thêm; tiếng vang $? sau lệnh sao chép dd của bạn. Vậy: sudo dd if = ... of = ... bs = 4M; tiếng vang $? 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=1Mtạo. Nó không tạo ra bất kỳ ubninit,ldlinux.sys,etctệp nào quan trọng chủ yếu là 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 là bước cuối cùng.
Anh Cả Geek

2
Các đơn giản nhất cách với các công cụ tích hợp trong việc sử dụng thiết bị đầu cuối là sử dụng ddnhư mô tả ở đây. Nó hoạt động với tất cả các tập tin iso lai. Nhưng ddlà 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 bảo nó xóa ảnh gia đình ... và đó là một lỗi đánh máy nhỏ. 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 lại, rằng 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

1
Liên kết sau đây cho thấy một ví dụ, trong đó ổ đĩa bên trong bị ghi đè do nhầm lẫn, khi một dòng lệnh ddđược sử dụng để tạo ổ đĩa flash USB Ubuntu có khả năng khởi động, Askubfox.com/questions/982552/accidentally-did-dd-dev- sda
sudodus

Câu trả lời:


431

Bạn có thể sử dụng dd.

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

nơi <?><?>là một lá thư tiếp theo là một số, nhìn nó lên bằng cách chạy lsblk.

Nó sẽ trông giống như

sdb      8:16   1  14.9G  0 disk 
├─sdb1   8:17   1   1.6G  0 part /media/username/usb volume name
└─sdb2   8:18   1   2.4M  0 part 

Tôi sẽ tháo gỡ sdb1.

Sau đó, tiếp theo (đây là lệnh phá hoại và xóa sạch toàn bộ ổ USB bằng nội dung của iso, vì vậy hãy cẩn thận):

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

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

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


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

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

EDIT: Nếu ổ USB không khởi động (điều này xảy ra với tôi), đó là 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 chứ không phải dev / sdc <?>Đối với tôi đó là / dev / sdb.

Tham khảo: https://superuser.com/a/407327https://askubfox.com/a/579615/669976


13
nó không làm việc cho tôi
Avinash Raj

7
Có thật không? Bạn có chắc chắn rằng bạn có tên tệp .iso chính xác bao gồm đường dẫn và đúng / dev cho ổ USB của bạn không? Làm thế nào để nó thất bại? Có một thông báo lỗi, hoặc nó chỉ không khởi động? Bạn có chắc chắn .iso không bị hỏng?
Marc

8
Bạn có thể có một .iso tham nhũng. Bạn đã kiểm tra nó? Bạn có chắc chắn .iso thực sự là một bản sao của một cái gì đó khả năng khởi động?
Marc

5
Câu hỏi ban đầu và câu trả lời được đánh giá cao nhất là cùng một người cho biết 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 chấp thuận là không hoạt động và câu trả lời này thì không. :-) Nâng cấp.
Drachenfels

20
Thêm một status=progressdòng lệnh cũng hữu ích, để xem bao nhiêu còn lại là bản sao trên cùng.
Siêu thường

101

Bạn gần như ở đó với dd, nhưng bạn đang thiếu một bước.

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

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

Các syncbit là quan trọng như ddcó thể trở lại trước khi phẫu thuật ghi kết thúc.


17
+1 để đề cập sync. Không có nó, bạn không biết nội dung có thực sự được sao chép hay không. Ngoài ra, nếu bạn không vội, bạn nên md5sumchắc chắn cả hai tập tin.
Dave

4
Có lẽ đáng để đề cập đến USB có thể cần phải được định dạng lại thành FAT32 sudo mkfs.msdos -F 32 /dev/sdXtrước?
Nemo

10
@Nemo, điều đó có thể tạo ra sự khác biệt không? ddto / dev / sdX sẽ ghi đè lên bất kỳ hệ thống tệp hiện có nào.
mwfearnley

5
synclà vô nghĩa ở đây. Nó chỉ ảnh hưởng đến hoạt động hệ thống tập tin.
trừng phạt

3
conv=fdatasync- vật lý ghi dữ liệu tệp đầu ra trước khi hoàn thành nên đảm bảo đồng bộ hóa, nhưng hãy gọi tốt để đảm bảo rằng thiết bị không được kết nối trước.
Johnathon Havens

98

Tạo ổ flash USB Ubuntu có khả năng khởi động từ thiết bị đầu cuối

  • Đặt ubuntu.isotệp trong bất kỳ phân vùng đĩa cứng.

  • Sau đó gắn ubuntu.isotệp với các lệnh dưới đây trong thiết bị đầu cuối:

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

Ảnh chụp màn hình GParted

  • Ổ đĩa của bạn có thể được tự động gắn bên trong /media/. Hãy 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 bên dưới (đảm bảo bao gồm dấu chấm):

    cp -a /media/iso/. /media/xxx/
    
  • Tiếp theo, bạn cần ldlinux.systệp trong ổ flash USB để khởi động USB . Phân vùng USB của tôi là /dev/sdd1; nhập lsblkđể xem những gì của bạn. 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/xxxthư mục mount và đổi tên thư mục isolinuxthành syslinux. Sau đó vào thư mục được đổi tên và đổi tên tập tin isolinux.cfgthành 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ờ ổ đĩa flash USB Ubuntu của bạn sẽ khởi động và bạn có thể cài đặt nó.

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


3
Tôi đang thử nó vào lúc này, bạn có thể vui lòng chỉ định cái gì / tại sao bạn sử dụng: cp -a chứ không phải cp -r
moldovean

2
Bạn cần sudocho syslinuxlệnh.
Cammy_the_block

9
Phương pháp này không hiệu quả với tôi. Cp -a đưa ra: 'cp: không thể tạo liên kết tượng trưng' /media/xxx/./ubfox ': Hoạt động không được phép' và các hoạt động tương tự khác, vì mục tiêu là fat32. Tôi đã cố gắng phớt lờ rằng ... không hoạt động
sheß 30/05/2015

6
Điều 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 thì syslinux sẽ không hoạt động
Ricardo BRGWeb

2
Bảng điều khiển hiển thị cho tôi lỗi tương tự như @ sheß. Tôi đã xác minh hệ thống tập tin (FAT32) và gắn cờ BOOT.
Chofotedy

40

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

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

nhập mô tả hình ảnh ở đây

Nếu bạn muốn một công cụ dòng lệnh, 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/sdXlà ổ đĩa flash bạn muốn sử dụng (nó sẽ phá hủy dữ liệu trên ổ đĩa flash).

Xem https://help.ubfox.com/community/Installation/FromUSBStick để biết thêm thông tin.


1
tôi muốn chỉ là công cụ dòng lệnh, không gui công cụ (như tác giả đĩa khởi động) .Theo các ddphương pháp, chỉ có 3 thư mục và 1 tập tin được tạo ra trong usb.While của tôi cố gắng để khởi động nó nói operating system not founderror.Files như ubninit,menu.c32,ubnpathl.txt,ubnfilel.txt,ldlinux.sysđang thiếu (mà là rất quan trọng để khởi động USB ubfox trực tiếp).
Avinash Raj

1
Tôi đã thử phương pháp dd với ubfox.iso và nó đã hoạt động! tuy nhiên quá nhiều thời gian để viết trên USB. Tôi tự hỏi bs = 1M là viết tắt của từ gì. Tôi tìm thấy trang này manpages.ubfox.com/manpages/karmic/en/man1/dd.1.html . Bây giờ tôi tự hỏi nếu thay đổi giá trị sẽ làm cho sao chép vào USB nhanh hơn? Và những rủi ro là gì .. có lẽ ai đó biết.
moldovean

4
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 toàn bộ vào đĩa. Sử dụng kích thước khối rất nhỏ, bạn sẽ nhận được rất nhiều chi phí CPU. 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ụ như tạm dừng lâu hơn không có hoạt động của đĩa và / hoặc sử dụng RAM lớ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/ từ
ApolloLV

Tôi nghĩ rằng việc tạo ra một USB có khả năng khởi động là điều tôi thường xuyên làm, nhưng khi tôi làm điều đó, tôi muốn nó được thực hiện ngay. Một 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à một vấn đề? Không.
Marc

2
@Marc - Vấn đề duy nhất là tốc độ, kích thước khối nhỏ hơn không có lỗi nhiều hơn hoặc ít hơn thì kích thước khối lớn hơn và do đó kích thước khối nhỏ hơn! = "Thực hiện đúng". Thực hiện đúng nghĩa là kiểm tra md5sum của iso và xác nhận md5sum của hình ảnh bằng văn bản. Khi bạn xác nhận m5dsums bạn biết nó đã được thực hiện đúng.
Panther

28

Đầu tiên, ngắt kết nối thiết bị USB và sau đó sử dụng lsblkđể xác minh thiết bị.

Đôi khi (thường là các tệp iso cũ) dd không đủ và ổ đĩa sẽ không khởi động. Trong trường hợp này, bạn có thể cần 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/sdXkhông /dev/sdX1 .

Sau đó, tiến hành 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ể sử dụng catthay thế:

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

Ghi nhớ để ban hành lệnh đồng bộ hóa để xóa bộ đệm ghi

sync

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


Tôi cần phải đề cập rằng đối với tôi mọi thứ khác đều thất bại, nhưng điều này đã có hiệu quả - tôi đã chọn cho catlệnh.
Dracula kỹ thuật số

Đối với những người khăng khăng rằng ddmộ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 có một công cụ sử dụng ddkhi ISO 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, bootisothay vào đó hãy sử dụng .
Jules Randolph

1
Bạn có thể giải thích những gì từng lệnh này thực sự làm? điểm của việc tạo một hệ thống tập tin vfat trên thiết bị, và sau đó ngay lập tức ghi đè lên nó bằng nội dung của tệp iso là gì? Những gì isohybridthực sự làm? nó có sửa đổi ISO theo một cách nào đó không?
cheshirekow

10

Nếu theo "bên thứ ba", bạn có nghĩa là "gui", tôi đề xuất một tập lệnh nhẹ có tên bootiso sau câu trả lời của Avinash Raj , vì ddkhông phải lúc nào cũng hoạt động. Đ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 làm hỏng hệ thống), dễ cài đặt và di động.

Ngoài ra, bootisosẽ kiểm tra tệp ISO để chọn một trong hai chế độ: sao chép hình ảnh ( dd) khi tệp ISO được kết hợp, thân thiện với USB. Và chế độ mount-rsync khi tệp ISO không kết hợp, trong trường hợp đó, bộ tải khởi động SYSLINUX sẽ được cài đặt tự động nếu được hỗ trợ [ chi tiết hơn 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:


1
Tôi đồng ý, đây là một kịch bản rất hay đưa các bit đáng sợ ra khỏi quy trình. Thêm chi tiết tại đây: tecmint.com/create-bootable-usb-in-linux-commandline
kr37

Nó thậm chí còn hỗ trợ cho Windows 10 tháng 10 năm 2018 vì nó hỗ trợ "wim split" tệp "install.wim" (sử dụng lệnh "wimlib-imagex")> 4Gb và nếu không thì không thể lưu trữ trên FAT32.
mevdschee

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

Đừng sử dụng đường dẫn đến bit.

  1. Sử dụng cdlệ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. Đợi cho đến khi đầu ra giao diện điều khiển trông giống như thế này:

    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ị, usb sẽ không luôn được gắn tại: dev/sdXtrong đó X có thể là bất kỳ chữ cái nào.


2
tầm quan trọng của bs = 1MB trong lệnh dd là gì ???
juggernauthk108

1
@ juggernaut1996 không có. Đó 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 các khối 1MB. Nó có thể được gỡ bỏ.
sjbx

"Đừng sử dụng đường dẫn đến bit" là một thông tin sai lệch. 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, vì vậy 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ũng có thể chấp nhận đầu vào từ stdin, vì vậy bạn chỉ cần đặt hai dd vào nhau để đảm bảo không có đường dẫn nào được đưa vào hình ảnh.
Gabor Garami

Điều đó sẽ chỉ hoạt động đối với các ISO lai, bao gồm phần lớn các trường hợp hiện nay, nhưng có những trường hợp ngoại lệ đáng chú ý như UltimateBootCD. Sử dụng bootisothay thế.
Jules Randolph

-5

Hãy thử điều này và không bao giờ thất bại với tôi 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 isolinuxthư mục thànhsyslinux
  • đổi tên syslinux/isolinux.cfgthànhsyslinux/syslinux.cfg
  • đổi tên syslinux/isolinux.binthànhsyslinux/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/sdxsẽ 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 ISO vào thẻ (điểm gắn kết để gắn điểm). 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
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.