Створити інсталятор USB для встановлення Ubuntu з командного рядка?


22

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

Я робив це перед тим, як слідувати інструкціям " створити USB-накопичувач " для робочого столу Ubuntu, але у мене немає робочого столу Ubuntu.

Як я можу зробити те ж саме, використовуючи лише командний рядок?

Те, що я спробував:

  • Створіть завантажувальний USB на Mac OS X, дотримуючись інструкцій ubuntu.com "створити USB-накопичувач" для Mac: не завантажується.
  • usb-creator: За даними apt-cache search usb-creatorWikipedia, usb-Creator існує лише як графічний інструмент.
  • «Створення вручну» інструкції на 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 та без оптичного приводу, тому питання все ще стоїть.

Хтось знає як?


спробуйте 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), щоб уникнути фатальної помилки "Не вдалося отримати файл попередньої конфігурації" після успішного виявлення образу CD.
Пол Уіттакер

Відповіді:


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

Потім поверніться до інсталятора та повторіть сканування компакт-диска на наявність пакунків. Це має працювати.


На даний момент у мене немає системи, щоб це спробувати, але так - це здається, що це має працювати :) Дякую!
jg-faustus

Я виявив, що опція меню "Виявити та встановити компакт-диск" повернеться /dev/sr0, скасувавши lnта повернувши його до початкового (зламаного) стану. Однак якщо я зачекав на "Повторити монтаж CD-ROM?" підказав, зробив lnв tty2, а потім повернувся, щоб натиснути "Так", він спрацював. (Це діалогове вікно "Повторити?" З'явиться лише після того, як mountкоманда була надана.)
Пол Уіттакер

10

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


Цей - дорогоцінний камінь. Найкращий. працює на будь-якому дистрибутиві Linux. але потрібно бути особливо обережним. додавання bs=20Mабо будь-яке інше відповідне значення прискорює роботу. Докладніше див.man dd
Махеш

1
@Mahesh Ні, деякі дистрибутиви Linux не працюють навіть з цією командою. Один з них - OpenSUSE
Anwar

або MeeGo та похідні ці зображення називаються гібридними
rzr

5

Припустимо, перед вами нічого, крім підказки. Якщо у вас є графічний інтерфейс, ви можете відкрити термінал і зробити все, що описано тут. Або ви можете використовувати tty.

ПОПЕРЕДЖЕННЯ.
Щоб уникнути можливих пошкоджень, дуже уважно дотримуйтесь інструкцій.

  • Перейдіть до кореневого запиту, ввівши sudo su

    Визначте, яким пристроєм є USB.

  • tail -f /var/log/syslog

Зараз у вас є прямий перегляд у 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.

Якщо ізо-файл у /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
totti

1
Розумна пропозиція. Але коли ви не впевнені в етикетці або у вас є тонна "Нового тома", це стає болем. Я завжди віддаю перевагу sdX, але це особистий вибір.
Махеш

1
Найкраща відповідь. Одним із запропонованих вдосконалень є використання pv у вхідному потоці до dd, тому користувач отримує зворотній зв'язок про хід (тобто pv зчитує iso, передає його в dd та відображає прогрес на stderr).
Stabledog

2

Створення завантажувальної флешки Ubuntu USB з терміналу

  • Встановіть ubuntu.isoфайл. Для цього запустіть команди нижче в терміналі,

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

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

    Він автоматично встановлюється, коли ви вставляєте його. Ваш 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-orderбіоси на USB.Зараз ваш флеш-диск ubuntu завантажиться, і ви можете встановити його.

Цей метод працює для будь-яких дистрибутивів Linux, не тільки для ubuntu.


1

Я вирішив цю конкретну проблему, використовуючи настільний компакт-диск Ubuntu Live.

Завантаживши живий компакт-диск на комп'ютері з оптичним приводом, я міг використовувати інструкції на робочому столі Ubuntu для створення інсталятора USB-ручки, не торкаючись існуючої установки.


1

Ви можете зламати usb-creator для цього.

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

Далі ми отримаємо код пітону 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.


-2

Ви можете встановити командний рядок (CLI) Ubuntu за допомогою альтернативної установки або mini iso (яка повинна вміщуватися на вашій палиці 512mb)

Потім встановіть Crunchbang, використовуючи альтернативний метод: http://crunchbanglinux.org/forums/topic/26/crunchbang-linux-81001-alternative-installation/

Ви також можете спробувати Lite версію CrunchBang, яка менше 512 Мб.

Ви можете використовувати Unetbootin для підготовки USB-накопичувача.


хрускіт? ха-ха?
RolandiXor

У мене немає проблеми з встановленням ISO на палиці (це 16 Гб), це більше питання про те, як я можу створити USB-накопичувач, який завантажується в ISO, в першу чергу, і створити його, використовуючи нічого, крім CLI.
jg-faustus

І unetbootin, на жаль, не працює, але, здається, потрібна підтримка графіки, навіть коли ви запускаєте її з командного рядка.
jg-faustus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.