Вопрос: Как создать загрузочный USB-накопитель Ubuntu с терминала?


Есть ли способ создать загрузочный USB-накопитель Ubuntu с терминала без использования сторонних приложений, таких как YUMI, Unetbootin, Создатель загрузочного диска, и т.д.

Я попытался создать загрузочный флеш-накопитель Ubuntu с dd метод,

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

Он создает файлы на USB-диске, но когда я пытаюсь загрузить USB-диск, он показывает Operating System Not Found ошибка.


257
2017-11-15 17:29


Источник


Вы должны убедиться, что ваш USB-накопитель НЕ установлен. Проверьте с помощью lsblk. При необходимости сделайте sudo umount / dev / sdb (возможно, sdb1, sdb2). Добавить; echo $? после команды dd copy. Итак: sudo dd if = ... of = ... bs = 4M; echo $? Если commandd заканчивается, возвращаемое значение должно быть 0.
я выполнил ваши шаги, но он также создает те же файлы, что и sudo umount /dev/sdb sudo dd if=/path/to/ubuntu.iso of=/dev/sdb bs=1M create.It не создает никаких ubninit,ldlinux.sys,etc файлы, которые в основном важны для Linux. - Avinash Raj
Я бы установил grub на MBR USB-диска в качестве последнего шага. - Elder Geek
простой с помощью встроенных инструментов, использующих терминал, - использовать dd как описано здесь. Он работает со всеми гибридными файлами iso. Но dd является опасным инструментом, потому что он делает то, что вы говорите, чтобы обойтись без вопросов. Поэтому, если вы скажете ему стереть семейные фотографии ... и это небольшая ошибка ввода. Многие инструменты более безопасны. Они помогают определить и выбрать целевой диск и предоставить конечную контрольную точку, где вы можете дважды проверить, что вы будете писать на правильный диск. Большинство из них - инструменты графического интерфейса, некоторые могут работать и в текстовом режиме, например. mkusb-dus, - sudodus
Следующая ссылка показывает пример, где внутренний диск был перезаписан по ошибке, когда в командной строке с dd был использован для создания загрузочного USB-накопителя Ubuntu USB, askubuntu.com/questions/982552/accidentally-did-dd-dev-sda - sudodus


Ответы:


Вы можете использовать dd,

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

где <?><?> это письмо, за которым следует номер, ищите его. Затем, следующее:

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

где input.iso является входным файлом, и /dev/sd<?> это устройство USB, которое вы пишете (запустите lsblk увидеть все диски, чтобы узнать, что <?> для вашего USB).

Этот метод быстрый и никогда не подводил меня.


EDIT: для тех, кто на Mac заканчивается здесь, используйте строчные буквы для bs=4m:

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

EDIT: Если USB-накопитель не загружается (это случилось со мной), это связано с тем, что целью является конкретный раздел на диске вместо диска. Таким образом, цель должна быть / dev / sdc, а не dev / sdc <?> Для меня это было / dev / sdb.

Справка: https://superuser.com/a/407327 а также https://askubuntu.com/a/579615/669976


287
2017-11-13 11:51



это не работает для меня. - Avinash Raj
В самом деле? Вы уверены, что у вас есть правильное имя файла .iso, включая путь, и правильный / dev для вашего USB-накопителя? Как это происходит? Есть ли сообщение об ошибке, или он просто не загружается? Вы уверены, что .iso не поврежден? - Marc
У вас может быть коррумпированное .iso. вы проверили? Вы уверены, что .iso на самом деле является копией чего-то, что является загрузочный? - Marc
Исходный вопрос и самый верный ответ - это тот же человек, который сказал, что этот метод не работает для него. ;-) Для меня утвержденный ответ не работает, и этот делает. :-) Upvoting. - Drachenfels
использование df -lh проверить, что dev/sdc это ваш /media/user/XXXX-YYY (имя интерфейса USB) - Peter Krauss


Создание загрузочного USB-накопителя Ubuntu с терминала

  • Поместите ubuntu.iso файл в любом разделе жесткого диска.

  • Затем установите ubuntu.iso файл с приведенными ниже командами в терминале:

    sudo mkdir /media/iso/
    sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • Вставьте USB-накопитель. Мой диск /dev/sdd, Вот скриншот:

GParted screenshot

  • Ваш привод может быть автоматически установлен внутри /media/, Предположим, что он был установлен в /media/xxx/,

  • Скопируйте все файлы из /media/iso/ к установленному USB-флеш-накопителю, выполнив команду ниже (обязательно включите точку):

    cp -a /media/iso/. /media/xxx/
    
  • Затем вам понадобится ldlinux.sys файл на флеш-накопителе USB, чтобы сделать USB загрузочный, Мой раздел USB /dev/sdd1; войти lsblk чтобы посмотреть, что твой. Выполните следующие команды:

    sudo apt-get install syslinux mtools
    sudo syslinux -s /dev/sdd1
    
  • Перейдите к /media/xxx скопируйте папку и переименуйте isolinux каталог для syslinux, Затем перейдите в переименованную папку и переименуйте файл isolinux.cfg в syslinux.cfg,

  • Перезагрузите компьютер и измените порядок загрузки в BIOS, чтобы разрешить загрузку с USB-накопителя. Теперь ваш USB-накопитель Ubuntu загрузится, и вы сможете его установить.

Этот метод будет работать для любого дистрибутива Linux, а не только для Ubuntu. Вам не нужно устанавливать стороннее программное обеспечение для создания флеш-накопителя Linux USB,


82
2017-11-07 18:19



На данный момент я пытаюсь это сделать, не могли бы вы указать, что / почему вы используете: cp -a, а не cp -r - moldovean
Тебе нужно sudo для syslinux команда. - Cammy_the_block
Этот метод не работал для меня. Cp -a дает: 'cp: не может создать символическую ссылку' /media/xxx/./ubuntu ': операция не разрешена' и другие подобные, так как целью является fat32. Я попытался игнорировать это ... не работал - sheß
Важно отметить, что usb должен быть файловой системой fat32, иначе syslinux не будет работать - Ricardo BRGWeb
Консоль показывает мне ту же ошибку, что и @ sheß. Я проверил файловую систему (FAT32) и флаг BOOT. - Chofoteddy


Ты почти там с dd, но вам не хватает шага.

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

где sdX является вашим устройством USB (это можно проверить с помощью lsblk).

sync бит важен как dd может вернуться до завершения операции записи.


74



+1 для упоминания sync, Без этого вы не знаете, действительно ли контент был скопирован. Кроме того, если вы не спешите, вы должны md5sum оба файла просто вдвойне уверены. - Dave
Возможно, стоит упомянуть, что USB, возможно, должен быть (повторно) отформатирован как FAT32 с sudo mkfs.msdos -F 32 /dev/sdX первый? - Nemo
@Nemo, возможно ли это изменить ситуацию? dd to / dev / sdX перезапишет любую существующую файловую систему. - mwfearnley
sync здесь бессмысленно. Это влияет только на действия файловой системы. - punund
conv=fdatasync - физически записывать данные выходных файлов до завершения должен позаботиться о синхронизации, но хороший вызов, чтобы убедиться, что устройство размонтировано первым. - Johnathon Havens


У вас есть два варианта.

Если вам нужен графический интерфейс, используйте usb-creator (он находится в репозиториях ubuntu)

enter image description here

Если вам нужен инструмент командной строки, используйте dd

#Replace X accordingly in both commands

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

Просто убедитесь /dev/sdX это флеш-накопитель, который вы хотите использовать (он уничтожит данные на флеш-накопителе).

Видеть https://help.ubuntu.com/community/Installation/FromUSBStickдля получения дополнительной информации.


36



Мне нужны только инструменты командной строки, а не инструмент gui (например, создатель автозагрузки). dd метод, только 3 папки и 1 файл были созданы в моем usb.While я пытаюсь загрузить это говорит operating system not found error.Files like ubninit,menu.c32,ubnpathl.txt,ubnfilel.txt,ldlinux.sys (которые очень важны для загрузки live ubuntu usb). - Avinash Raj
Я попробовал dd-метод с ubuntu.iso, и он сработал! это слишком много времени, однако, чтобы быть написанным на USB. Интересно, что означает bs = 1M. Я нашел этот сайт manpages.ubuntu.com/manpages/karmic/en/man1/dd.1.html , Теперь мне интересно, изменит ли значение скорость копирования на USB быстрее? И каковы риски ... может быть, кто-то знает. - moldovean
Bs - размер блока. dd будет считывать 1 МБ данных в память, а затем переходить к записи на диск в целом. Используя очень небольшой размер блока, вы получите много накладных расходов на процессор. Использование очень большого размера блока может привести к неожиданным побочным эффектам, например. более длительные паузы в отсутствии активности диска и / или использование большой ОЗУ. 1M или 4M обычно является хорошим значением при создании диска из ISO. Дополнительная информация о размерах блоков: stackoverflow.com/questions/6161823/... - ApolloLV
Я полагаю, что создание загрузочного USB - это то, что я делаю нечасто, но когда я это делаю, я хочу, чтобы все было правильно. Меньший размер блока может занять больше времени, но это проблема? Неа. - Marc
@Marc. Единственная проблема - скорость, меньший размер блока не более или менее подвержен ошибкам, чем больший размер блока и, следовательно, меньший размер блока! = «Сделано правильно». Done right означает проверку md5sum iso и подтверждение md5sum записанного изображения. Как только вы подтвердите m5dsums, вы знаете, что все было сделано правильно. - Panther


Сначала отключите USB-устройство, а затем используйте lsblk для проверки устройства.

Иногда (обычно более старые файлы iso) dd недостаточно, и pendrive не загружается. В этом случае вам может потребоваться установить syslinux:

sudo apt-get install syslinux

а затем выполните следующие команды:

sudo mkfs -t vfat -I /dev/sdX

Вы хотите запустить эту последнюю команду для /dev/sdX а также не  /dev/sdX1,

Затем выполните следующие команды:

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

или, чтобы увидеть ход записи изображения:

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

или вместо dd, вы можете использовать cat вместо:

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

Rememeber для отправки команды синхронизации для сброса кеша записи

sync

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


23



Мне нужно упомянуть, что для меня все остальное не удалось, но это сработало - я выбрал cat команда. - Digital Dracula
Для тех, кто настаивает на том, что dd достаточно одного, мне тоже нужно было работать. - GuiRitter
Если вы хотите использовать инструмент, который использует dd когда ISO является гибридным и монтирует, копирует ISO-файл + устанавливает SYSLINUX, когда ISO нет, используйте bootiso вместо. - Jules Randolph


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

Не используйте путь к бит.

  1. Использовать cd для доступа к папке, содержащей файл .iso
  2. используйте команду dd if=FILE NAME HERE.iso of=/dev/sdX bs=1MB
  3. Подождите, пока вывод консоли выглядит примерно так:

    1028+1 records in
    1028+1 records out
    1028653056 bytes (1.0 GB) copied, 55.4844 s, 18.5 MB/s
    
  4. Загрузитесь с USB.

Примечание. Убедитесь, что вы пишете на правильном устройстве, USB-накопитель не всегда будет установлен на: dev/sdX где X может быть любой буквой.


6



каково значение bs = 1MB в команде dd ??? - juggernaut1996
@ juggernaut1996 нет. Это размер блока, который нужно использовать при копировании. Поскольку аргумент count не был предоставлен, он скопирует весь вход в 1MB-блоки. Его можно удалить. - sjbx
«Не использовать путь к биту» - это дезинформация. Сам процесс не испекает компоненты пути в скопированное изображение на любом этапе, поэтому не имеет значения, если вы перейдете к каталогу, содержащему образ ISO, или просто укажите полный путь. Более того, dd также может принимать входные данные от stdin, поэтому вы можете просто подключить два dd в eachother, чтобы убедиться, что в изображение не было никакого пути. - Gabor Garami
Это будет работать только для гибридных ISO, которые сегодня заполняют хорошее большинство случаев, но есть заметные исключения, такие как UltimateBootCD. использование bootiso вместо. - Jules Randolph


Если под «сторонним» вы подразумеваете «gui», Я предлагаю легкий сценарий с именем bootiso после Авинаш Радж ответ, потому что dd не всегда работает. Большой плюс - это очень безопасно (выполняет множество проверок безопасности, чтобы не испортить систему), легко устанавливается и переносится.

Также, bootiso проверит ISO-файл на выбор из двух режимов: копирование изображения (dd), когда файл ISO является гибридным, то есть USB-совместимым. И режим mount-rsync, когда файл ISO не является гибридным, и в этом случае загрузчик SYSLINUX будет автоматически установлен, если поддерживается [подробнее об автоматическом поведении].

Как это использовать

Первый вариант, просто укажите ISO как первый аргумент, и вам будет предложено выбрать диск среди списка, извлеченного из lsblk:

bootiso myfile.iso

Или явно укажите USB-устройство:

bootiso -d /dev/sde myfile.iso

Быстрая установка

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

Смотрите в действии:


5



Я согласен, это очень хороший скрипт, который выдает страшные бит из процесса. Подробнее здесь: tecmint.com/create-bootable-usb-in-linux-commandline - kr37