Buat penginstal USB untuk menginstal Ubuntu dari baris perintah?

22

Saya mencoba membuat image USB yang dapat di-boot untuk menginstal Ubuntu di komputer baru.

Saya telah melakukan ini sebelum mengikuti instruksi " buat drive USB " untuk desktop Ubuntu, tetapi saya tidak memiliki desktop Ubuntu yang tersedia.

Bagaimana saya bisa melakukan hal yang sama hanya menggunakan baris perintah?

Hal yang saya coba:

  • Buat USB yang dapat di-boot pada Mac OS X dengan mengikuti "buat drive USB" di ubuntu.com untuk Mac: Tidak bisa boot.
  • usb-creator: Menurut apt-cache search usb-creatordan Wikipedia usb-creator hanya ada sebagai alat grafis.
  • "Buat secara manual" petunjuk di help.ubuntu.com: Tak satu pun dari file dan direktori yang dijelaskan (misalnya casper, filesystem.manifest, menu.lst) ada di gambar ISO, dan saya tidak tahu apa yang telah menggantikan mereka.
  • unetbootin scripting : Memerlukan server X (dukungan grafis) untuk dijalankan, bahkan ketika skrip sepenuhnya. (Perintah sudo unetbootin lang=en method=diskimage isofile=~/ubuntu-10.10-server-amd64.iso installtype=USB targetdrive=/dev/sdg1 autoinstall=yesmemberikan pesan kesalahan unetbootin: cannot connect to X server.)

Memperbarui

Juga mencoba mengutak-atik GRUB: Menggabungkan informasi dari

Saya bisa mendapatkan setengah jalan - boot dari USB, menampilkan menu grub dan memulai instalasi, tetapi instalasi tidak selesai.

Untuk referensi, ini yang paling dekat yang saya dapatkan:

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/

Saya kemudian diedit /media/usb/boot/grub.cfguntuk menambahkan .iso loopback, contoh entri 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
}

Ketika mem-boot dari USB, ini akan memberi saya menu boot Grub dan memulai installer, tetapi installer menyerah setelah beberapa layar mengeluh bahwa ia tidak dapat menemukan drive CD-ROM. (Tentu saja, karena kotak yang saya pasang tidak memiliki drive optik.)

Saya mengatasi masalah khusus ini dengan menyerah dan melakukan rutinitas "buat drive USB" menggunakan CD desktop Ubuntu Live (pada komputer yang memiliki drive optik), kemudian instal USB berfungsi.

Tapi saya berharap ada beberapa cara untuk melakukan ini dari baris perintah sistem Ubuntu tanpa server X dan tanpa drive optik, jadi pertanyaannya tetap ada.

Adakah yang tahu bagaimana caranya?

jg-faustus
sumber
coba unetbootin.
RolandiXor
@Roland unetbootin: cannot connect to X server - tampaknya membutuhkan X bahkan ketika skrip lengkap ( unetbootin lang=en method=diskimage isofile=/srv/share/ubuntu-10.10-server-amd64.iso installtype=USB targetdrive=/dev/sdg1 autoinstall=yes), dan saya lebih suka tetap tanpa kepala. Terima kasih atas tipnya; Saya dapat menginstal X jika saya kehabisan opsi lain.
jg-faustus
Ini terlihat menjanjikan: pendrivelinux.com/install-grub2-on-usb-from-ubuntu-linux dan unix.stackexchange.com/questions/665/… Butuh beberapa penyesuaian, tetapi akan mencobanya.
jg-faustus
@ jg-faustus: Jika semuanya begitu rumit, saya mungkin sudah meninggalkan linux, mungkin. gunakan dd. Ini permata. tidak bisa mengatakan cukup. Dan setiap distro linux memiliki dd; jadi Anda memiliki solusi universal, tanpa menggunakan skrip / tulis / konfigurasi. hanya satu garis yang indah.
Mahesh
Yang grub.cfgmasuk perlu untuk mengatakan file=/cdrom/preseed/ubuntu-server.seedpada linuxbaris (dan tidak file=(loop)/preseed/ubuntu-server.seed), untuk menghindari fatal 'Gagal mengambil file preconfiguration' kesalahan sekali gambar CD telah berhasil dideteksi.
Paul Whittaker

Jawaban:

9

Ketika mem-boot dari USB, ini akan memberi saya menu boot Grub dan memulai installer, tetapi installer menyerah setelah beberapa layar mengeluh bahwa ia tidak dapat menemukan drive CD-ROM.

Ini adalah bug yang dikenal dengan iso server ubuntu (desktop iso berfungsi dengan baik), tetapi ada perbaikan untuk mendapatkan paket dari iso pada drive usb: sekali pada installer, Ctrl + Alt + f2 untuk membuka tty dan di terminal:

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

Kemudian kembali ke penginstal dan coba lagi untuk memindai cd untuk paket. Itu harus bekerja.

Orvidia
sumber
Saya tidak memiliki sistem untuk mencobanya saat ini, tapi ya - sepertinya itu harus bekerja :) Terima kasih!
jg-faustus
Saya menemukan bahwa opsi menu "Detect and mount CD-ROM" akan mengembalikan /dev/sr0, membatalkan lndan mengembalikannya ke keadaan semula (rusak). Namun, jika saya menunggu di "Coba lagi memasang CD-ROM?" cepat, lakukan lndi tty2, dan kemudian kembali untuk menekan "Ya", itu berhasil. (Dialog "Coba lagi?" Itu hanya akan muncul begitu mountperintah telah diberikan.)
Paul Whittaker
10

Sudahkah Anda mencoba dengan # dd if=path/to/image.iso of=/dev/sd# ?

aqui_c
sumber
Yang ini permata. Yang terbaik. bekerja pada distro linux apa pun. tetapi Anda harus ekstra hati-hati. menambah bs=20Matau nilai cocok lainnya mempercepat. untuk perinciannya, lihatman dd
Mahesh
1
@ Mahesh Tidak, beberapa distro linux tidak berfungsi bahkan dengan perintah ini, Salah satunya adalah OpenSUSE
Anwar
atau MeeGo dan menurunkan gambar-gambar itu disebut gambar hibrid
rzr
5

Biarkan kami menganggap Anda tidak memiliki apa-apa selain konfirmasi sebelum Anda. Jika Anda memiliki GUI, Anda dapat membuka terminal dan melakukan semua yang dijelaskan di sini. Atau Anda dapat menggunakan tty.

PERINGATAN:
Untuk menghindari kemungkinan kerusakan, ikuti instruksi dengan sangat hati-hati.

  • Beralih ke prompt root dengan mengetik sudo su

    Mendeteksi perangkat apa itu usb.

  • tail -f /var/log/syslog

Anda sekarang memiliki tampilan langsung di syslog. Tancapkan usb drive Anda. Anda akan melihat beberapa pesan di layar. Sesuatu seperti ini.

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

lihat itu, dan temukan satu hal dalam kurung kotak yang berulang? sdcpada kasus ini. Catat di selembar kertas. Ketik Ctrl+ Cuntuk membuka prompt.

Temukan file iso untuk dibakar ke usb.

Jika file iso di /path/to/iso/somecd.iso; perhatikan jalan ini di selembar kertas.

Tulis ke USB

Peringatan:

Ini akan menghapus seluruh disk USB. Cadangkan sebelum melanjutkan.

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

Ganti /path/to/iso/somecd.isodengan jalur aktual ke file iso Anda.

Ganti /dev/sdcdengan apa pun yang Anda catat sebelumnya. Jika bagian berulang adalah sdb; gunakan /dev/sdbdan sebagainya.

Peringatan:

Mengetik huruf drive salah akan mengakibatkan hilangnya data permanen pada drive yang berbeda. Berikan perhatian ekstra saat mengeluarkan ddperintah.

Mahesh
sumber
2
Dalam rangka untuk menghindari kehilangan data dengan memilih disk yang salah disarankan untuk menggunakan /dev/disk/by-label/LABELbukannya/dev/sdc
totti
1
Saran yang masuk akal. Tetapi ketika Anda tidak yakin dengan labelnya, atau Anda memiliki satu ton 'Volume baru', itu menjadi menyakitkan. Saya selalu lebih suka yang sdX, tapi itu adalah pilihan pribadi.
Mahesh
1
Jawaban Terbaik. Salah satu perbaikan yang disarankan adalah menggunakan pv pada input stream untuk dd, sehingga pengguna mendapat umpan balik kemajuan (yaitu pv membaca iso, stream ke dd, dan menampilkan progres pada stderr).
Stabledog
2

Membuat flash drive USB Ubuntu bootable dari terminal

  • Pasang file. Untuk ubuntu.isoini jalankan perintah di bawah ini di terminal,

    sudo mkdir /media/iso
    sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • Kemudian salin semua file dari /media/isoke folder usb flash drive yang Anda pasang di /media.

    Masukkan usb flash drive Anda.

    Ini akan secara otomatis dipasang, setiap kali Anda memasukkannya. Partisi usb Anda harus dipasang di dalam. /mediaMari kita asumsikan drive usb Anda terpasang di dalam /media/xxxxfolder. Kemudian jalankan perintah di bawah ini,

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

    Jalankan lsblkperintah untuk mengetahui partisi perangkat usb.

  • Kemudian tempel ldlinux.sysfile di dalam partisi USB flash drive Anda (Dalam kasus saya / dev / sdd1 ) untuk membuat usb bootable . Untuk ini jalankan perintah di bawah ini,

    sudo apt-get install syslinux mtools
    syslinux -s /dev/sdd1
    
  • Pergilah ke /media/xxxfolder dan ganti nama isolinuxdirektori menjadi. syslinuxLalu masuk ke folder syslinux berganti nama dan ganti nama file isolinux.cfgmenjadi syslinux.cfg.

       mv /media/xxx/isolinux /media/xxx/syslinux
       mv /media/xxx/syslinux/isolinux.cfg /media/xxx/syslinux/syslinux.cfg
    
  • Nyalakan kembali komputer Anda dan ubah boot-orderbios di dalam USB. Sekarang flash drive usb ubuntu Anda akan di-boot dan Anda dapat menginstalnya.

Metode ini akan berfungsi untuk distribusi linux apa pun, tidak hanya ubuntu.

Avinash Raj
sumber
1

Saya memecahkan masalah khusus ini dengan menggunakan CD desktop Ubuntu Live.

Dengan mem-boot Live CD di komputer dengan drive optik, saya bisa menggunakan instruksi desktop Ubuntu untuk membuat installer pena USB tanpa menyentuh instalasi yang ada.

jg-faustus
sumber
1

Anda dapat meretas usb-creator untuk melakukan ini.

Anda seharusnya sudah memiliki satu partisi vfat sebagai partisi 1 di perangkat usb (langkah hapus disk dari usb-creator-gtk melakukan ini) dan partisi tersebut harus ditandai bootable.

Selanjutnya, kita akan mendapatkan kode python usb-creator untuk membantu kita.

$ sudo apt-get install usb-creator

atau

$ bzr branch lp:usb-creator

buat file dengan konten ini dan beri nama usb-creator-cli, jika Anda menggunakan bzr di langkah terakhir, letakkan file ini di direktori usb-creator (root dari cabang 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()

Buat itu bisa dieksekusi

$ chmod +x usb-creator-cli

Sekarang pasang iso Anda ke / iso dan pasang perangkat usb Anda ke / mnt

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

Jika Anda ingin pesan yang sangat bertele-tele di konsol Anda, Anda dapat mengeklik ~ / .cache / usb-creator.log

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

Sekarang jalankan script usb-creator-cli

$ sudo ./usb-creator-cli

Dan tonton semua pesan gulir oleh.

Ketika Anda kembali ke prompt, jangan lupa unmount / mnt sebelum Anda menarik perangkat penyimpanan usb Anda.

Jay _silly_evarlast_ Gelatik
sumber
-2

Anda dapat menginstal Ubuntu command line (CLI) menggunakan Alternate Install atau Mini iso (yang harus pas dengan stik 512mb Anda)

Kemudian instal Crunchbang menggunakan metode alternatif: http://crunchbanglinux.org/forums/topic/26/crunchbang-linux-81001-alternative-installation/

Anda juga dapat mencoba versi Lite dari CrunchBang, yang kurang dari 512mb.

Anda dapat menggunakan Unetbootin untuk menyiapkan stik USB.

Sen
sumber
crunchbang? ha ha?
RolandiXor
Saya tidak punya masalah pas ISO pada tongkat (ini 16GB), itu lebih merupakan pertanyaan tentang bagaimana saya bisa membuat USB stick yang boot ke ISO di tempat pertama, dan membuatnya menggunakan apa-apa selain CLI.
jg-faustus
Dan unetbootin tidak berfungsi, sayangnya - tampaknya membutuhkan dukungan grafis bahkan ketika Anda menjalankannya dari baris perintah.
jg-faustus