Создать USB-установщик для установки Ubuntu из командной строки?

22

Я пытаюсь создать загрузочный образ USB для установки Ubuntu на новый компьютер.

Я сделал это до того, как следовал инструкциям « создать USB-накопитель » для рабочего стола Ubuntu, но у меня нет рабочего стола Ubuntu.

Как я могу сделать то же самое, используя только командную строку?

Вещи, которые я пробовал:

  • Создайте загрузочный USB на Mac OS X, следуя инструкциям ubuntu.com «создать USB диск» для Mac: не загружается.
  • usb-creatorПо данным apt-cache search usb-creatorи википедии usb-создатель существует только как графический инструмент.
  • «Создание вручную» инструкции на help.ubuntu.com: Ни один из файлов и каталогов не описано (например casper, filesystem.manifest, menu.lst) существует в образе ISO, и я не знаю , что заменил их.
  • Скрипты unetbootin : требуется X-сервер (поддержка графики), даже если он полностью написан. (Команда sudo unetbootin lang=en method=diskimage isofile=~/ubuntu-10.10-server-amd64.iso installtype=USB targetdrive=/dev/sdg1 autoinstall=yesвыдает сообщение об ошибке unetbootin: cannot connect to X server.)

Обновить

Также пробовал GRUB возиться: слияние информации из

Я смог добраться на полпути - он загрузился с USB, отобразил меню grub и начал установку, но установка не завершилась.

Для справки, это самое близкое, что я получил:

sudo su
  # mount USB pen
mount /dev/sd[X]1 /media/usb
  # install GRUB
grub-install --force --no-floppy --root-directory=/media/usb /dev/sd[X]
  # copy ISO image to USB
cp ~/ubuntu-10.10-server-amd64.iso /media/usb
  # mount ISO image, copy existing grub.cfg
mount ~/ubuntu-10.10-server-amd64.iso /media/iso/ -o loop
cp /media/iso/boot/grub/grub.cfg /media/usb/boot/grub/

Затем я отредактировал, /media/usb/boot/grub.cfgчтобы добавить петлю .iso, пример записи grub:

menuentry "Install Ubuntu Server" {
  set gfxpayload=keep
  loopback loop /ubuntu-10.10-server-amd64.iso  
  linux (loop)/install/vmlinuz  file=(loop)/preseed/ubuntu-server.seed iso-scan/filename=/ubuntu-10.10-server-amd64.iso quiet --
  initrd (loop)/install/initrd.gz
}

При загрузке с USB это даст мне загрузочное меню Grub и запустит установщик, но установщик сдался после пары экранов, жалуясь, что не может найти привод CD-ROM. (Естественно, поскольку в коробке, на которую я устанавливаю, нет оптического привода.)

Я решил эту конкретную проблему, отказавшись и выполнив процедуру «создания USB-накопителя» с помощью настольного компакт-диска Ubuntu Live (на компьютере с оптическим приводом), после чего установка USB работает.

Но я ожидаю, что есть какой-то способ сделать это из командной строки системы Ubuntu без X-сервера и без оптического привода, поэтому вопрос остается в силе.

Кто-нибудь знает как?

JG-Фауст
источник
попробуйте unetbootin.
RolandiXor
@Roland unetbootin: cannot connect to X server - кажется, требует X, даже когда он полностью написан ( unetbootin lang=en method=diskimage isofile=/srv/share/ubuntu-10.10-server-amd64.iso installtype=USB targetdrive=/dev/sdg1 autoinstall=yes), и я бы предпочел остаться без головы. Спасибо за совет, хотя; Я могу установить X, если у меня заканчиваются другие варианты.
jg-faustus
Они выглядят многообещающе: pendrivelinux.com/install-grub2-on-usb-from-ubuntu-linux и unix.stackexchange.com/questions/665/… Нужно немного доработать , но попробую.
jg-faustus
@ JG-Faustus: Если бы все было так сложно, я бы отказался от Linux, может быть. использовать dd. Это драгоценный камень. не могу сказать достаточно. И в каждом дистрибутиве Linux есть dd; Таким образом, у вас есть универсальное решение, без сценария / записи / настройки. только одна красивая линия.
Махеш
Эта grub.cfgзапись должна быть написана file=/cdrom/preseed/ubuntu-server.seedв linuxстроке (а не file=(loop)/preseed/ubuntu-server.seed), чтобы избежать фатальной ошибки «Не удалось получить файл предварительной конфигурации» после успешного обнаружения образа компакт-диска.
Пол Уиттакер

Ответы:

9

При загрузке с USB это даст мне загрузочное меню Grub и запустит установщик, но установщик сдался после пары экранов, жалуясь, что не может найти привод CD-ROM.

Это известная ошибка с сервером ubuntu iso (рабочий стол iso работает просто отлично), но есть исправление для получения пакетов от iso на USB-диске: один раз в установщике, Ctrl + Alt + f2, чтобы открыть tty и в терминал:

mount -t vfat /dev/sdX1 /mnt
ln -sf /mnt/ubuntu-server.iso /dev/sr0

Затем вернитесь к установщику и повторите сканирование пакетов. Он должен работать.

Orvidia
источник
У меня нет системы, чтобы попробовать ее в данный момент, но да - похоже, она должна работать :) Спасибо!
jg-faustus
Я обнаружил, что пункт меню «Обнаружить и смонтировать CD-ROM» вернется /dev/sr0, отменив lnи вернув его в исходное (поврежденное) состояние. Тем не менее, если я дождался "Повторить попытку установки компакт-диска?" подскажите, сделал lnв tty2, а затем вернулся, чтобы нажать «Да», все заработало. (Это диалоговое окно «Повторить?» Появилось бы только после того, mountкак была дана команда.)
Пол Уиттакер
10

Вы пробовали с # dd if=path/to/image.iso of=/dev/sd# ?

aqui_c
источник
Это драгоценный камень. Лучший. работает на любом дистрибутиве Linux. но вы должны быть очень осторожны. добавление bs=20Mили любое другое подходящее значение ускоряет процесс. за подробностями обращайтесьman dd
Mahesh
1
@Mahesh Нет, некоторые дистрибутивы Linux не работают даже с этой командой, одним из них является OpenSUSE
Anwar
или MeeGo и производные эти изображения называются гибридными
rzr
5

Допустим, у вас есть только подсказка. Если у вас есть графический интерфейс, вы можете открыть терминал и сделать все, что описано здесь. Или вы можете использовать tty.

ПРЕДУПРЕЖДЕНИЕ.
Во избежание возможного повреждения очень внимательно следуйте инструкциям.

  • Переключитесь на приглашение root, набрав sudo su

    Определите, какое устройство USB.

  • tail -f /var/log/syslog

Теперь у вас есть живое представление в системном журнале. Подключите USB-накопитель. Вы должны увидеть некоторые сообщения на экране. Что-то вроде этого.

May 27 00:35:07 Mahesh kernel: [ 5054.646585] usb 2-1.1: new high-speed USB device number 5 using ehci_hcd
May 27 00:35:07 Mahesh kernel: [ 5054.741437] scsi8 : usb-storage 2-1.1:1.0
May 27 00:35:07 Mahesh mtp-probe: checking bus 2, device 5: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1"
May 27 00:35:07 Mahesh mtp-probe: bus: 2, device: 5 was not an MTP device
May 27 00:35:08 Mahesh kernel: [ 5055.739177] scsi 8:0:0:0: Direct-Access     JetFlash TS2GJFV30        8.07 PQ: 0 ANSI: 2
May 27 00:35:08 Mahesh kernel: [ 5055.740198] sd 8:0:0:0: Attached scsi generic sg3 type 0
May 27 00:35:08 Mahesh kernel: [ 5055.741593] sd 8:0:0:0: [sdc] 4005888 512-byte logical blocks: (2.05 GB/1.91 GiB)
May 27 00:35:08 Mahesh kernel: [ 5055.742214] sd 8:0:0:0: [sdc] Write Protect is off
May 27 00:35:08 Mahesh kernel: [ 5055.742218] sd 8:0:0:0: [sdc] Mode Sense: 03 00 00 00
May 27 00:35:08 Mahesh kernel: [ 5055.742712] sd 8:0:0:0: [sdc] No Caching mode page present
May 27 00:35:08 Mahesh kernel: [ 5055.742715] sd 8:0:0:0: [sdc] Assuming drive cache: write through
May 27 00:35:08 Mahesh kernel: [ 5055.745326] sd 8:0:0:0: [sdc] No Caching mode page present
May 27 00:35:08 Mahesh kernel: [ 5055.745329] sd 8:0:0:0: [sdc] Assuming drive cache: write through
May 27 00:35:08 Mahesh kernel: [ 5055.781564]  sdc: sdc1
May 27 00:35:08 Mahesh kernel: [ 5055.784191] sd 8:0:0:0: [sdc] No Caching mode page present
May 27 00:35:08 Mahesh kernel: [ 5055.784196] sd 8:0:0:0: [sdc] Assuming drive cache: write through
May 27 00:35:08 Mahesh kernel: [ 5055.784200] sd 8:0:0:0: [sdc] Attached SCSI removable disk

посмотрите на это и найдите одну вещь в квадратных скобках, повторяющуюся? sdcв этом случае. Запишите это на листе бумаги. Введите Ctrl+, Cчтобы получить приглашение.

Найдите ISO-файл для записи на USB.

Если файл iso находится в /path/to/iso/somecd.iso; запишите этот путь на листе бумаги.

Запись на USB

Предупреждение:

Это сотрет весь USB-диск. Резервное копирование, прежде чем продолжить.

  • dd if=/path/to/iso/somecd.iso of=/dev/sdc ibs=20M obs=20M

Замените /path/to/iso/somecd.isoфактическим путем к вашему iso-файлу.

Замените /dev/sdcна то, что вы записали ранее. Если повторяющаяся часть есть sdb; использовать /dev/sdbи так далее.

Предупреждение:

Неправильный ввод буквы диска приведет к постоянной потере данных на другом диске. Обратите особое внимание при выдаче ddкоманды.

Махеш
источник
2
Чтобы избежать потери данных при выборе неправильного диска, рекомендуется использовать /dev/disk/by-label/LABELвместо/dev/sdc
тотти
1
Разумное предложение. Но когда вы не уверены в лейбле или у вас есть тонна «Новых томов», это становится болью. Я всегда предпочитаю sdX, но это личный выбор.
Махеш
1
Лучший ответ. Одним из предлагаемых улучшений является использование pv во входном потоке для dd, чтобы пользователь получал обратную связь о прогрессе (т.е. pv читает iso, передает его в dd и отображает прогресс на stderr).
Конюшня
2

Создание загрузочной флешки Ubuntu USB из терминала

  • Смонтируйте ubuntu.isoфайл. Для этого выполните следующие команды в терминале:

    sudo mkdir /media/iso
    sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • Затем скопируйте все файлы /media/isoв папку подключенной флешки в /media.

    Вставьте USB-флешку.

    Он будет автоматически монтироваться всякий раз, когда вы его вставляете. Ваш USB-раздел должен быть смонтирован внутри. /mediaДавайте предположим, что ваш USB-диск смонтирован внутри /media/xxxxпапки. Затем выполните следующую команду:

    cp -a /media/iso/. /media/xxx
    

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

  • Затем вставьте ldlinux.sysфайл в раздел вашего флэш-накопителя USB (в моем случае / dev / sdd1 ), чтобы сделать USB загрузочным. Для этого выполните следующие команды:

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

       mv /media/xxx/isolinux /media/xxx/syslinux
       mv /media/xxx/syslinux/isolinux.cfg /media/xxx/syslinux/syslinux.cfg
    
  • Перезагрузите компьютер и измените boot-orderBIOS в USB. Теперь USB-флешка Ubuntu загрузится, и вы сможете установить ее.

Этот метод будет работать для любых дистрибутивов Linux, не только для Ubuntu.

Авинаш Радж
источник
1

Я решил эту конкретную проблему с помощью рабочего стола Ubuntu Live CD.

Загрузив Live CD на компьютер с оптическим приводом, я мог использовать настольные инструкции Ubuntu для создания установщика USB-пера, не затрагивая существующую установку.

JG-Фауст
источник
1

Вы можете взломать usb-creator, чтобы сделать это.

У вас уже должен быть один раздел vfat в качестве раздела 1 на устройстве usb (это выполняется на шаге стирания диска usb-creator-gtk), и он должен быть помечен как загрузочный.

Далее, мы получим код Python usb-creator, чтобы помочь нам.

$ sudo apt-get install usb-creator

или

$ bzr branch lp:usb-creator

создайте файл с этим содержимым и назовите его usb-creator-cli, если вы используете bzr на последнем шаге, поместите этот файл в каталог usb-creator (корень ветви bzr)

#!/usr/bin/env python
from __future__ import print_function
from usbcreator.misc import sane_path, setup_gettext, setup_logging, text_type

from usbcreator.install import install

sane_path()
setup_logging()
setup_gettext()

#/dev/sdb1 should be mounted on /mnt
#iso should be mounted to /iso
dev = '/dev/sdb1'
source = '/iso'
target = '/mnt' 
ugh = install(source, target, False, device=dev)
ugh.success = print
ugh.failure = print
ugh.progress = print
ugh.progress_message = print
ugh.progress_pulse = print
ugh.progress_pulse_stop = print
ugh.retry = print
ugh.run()

Сделайте это исполняемым

$ chmod +x usb-creator-cli

Теперь смонтируйте ваш iso в / iso и подключите USB-устройство к / mnt

$ sudo mkdir /iso ; sudo mount ubuntu-server-12.10-amd64.iso /iso
$ sudo mount /dev/sdb1 /mnt

Если вам нужны очень подробные сообщения на вашей консоли, вы можете написать ~ / .cache / usb-creator.log

$ tail -f ~/.cache/usb-creator.log &

Теперь запустите этот скрипт usb-creator-cli

$ sudo ./usb-creator-cli

И смотреть все сообщения прокрутки.

Когда вы вернетесь к подсказке, не забудьте размонтировать / mnt, прежде чем выдернуть USB-накопитель.

Джей _silly_evarlast_ Рен
источник
-2

Вы можете установить Ubuntu из командной строки (CLI), используя Alternate Install или Mini iso (который должен уместиться на вашей 512 Мб флешке)

Затем установите Crunchbang, используя альтернативный метод: http://crunchbanglinux.org/forums/topic/26/crunchbang-linux-81001-alternative-installation/

Вы также можете попробовать облегченную версию CrunchBang, которая составляет менее 512 МБ.

Вы можете использовать Unetbootin для подготовки флешки.

сен
источник
CrunchBang? ха - ха?
RolandiXor
У меня нет проблем с установкой ISO на флешку (это 16 ГБ), это больше вопрос о том, как я могу создать USB-флешку, которая в первую очередь загружается в ISO, и создавать ее, используя только CLI.
jg-faustus
И, к сожалению, unetbootin не работает - кажется, что требуется поддержка графики, даже когда вы запускаете его из командной строки.
jg-faustus