Tạo trình cài đặt USB để cài đặt Ubuntu từ dòng lệnh?


22

Tôi đang cố gắng tạo một hình ảnh USB có thể khởi động để cài đặt Ubuntu trên một máy tính mới.

Tôi đã thực hiện việc này trước khi làm theo hướng dẫn " tạo ổ đĩa USB " cho máy tính để bàn Ubuntu, nhưng tôi không có sẵn máy tính để bàn Ubuntu.

Làm thế nào tôi có thể làm tương tự bằng cách chỉ sử dụng dòng lệnh?

Những điều tôi đã thử:

  • Tạo USB có thể khởi động trên Mac OS X theo hướng dẫn "tạo ổ đĩa USB" của ubfox.com cho Mac: Không khởi động.
  • usb-creator: Theo apt-cache search usb-creatorvà Wikipedia usb-creator chỉ tồn tại như một công cụ đồ họa.
  • "Tạo bằng tay" hướng dẫn tại help.ubuntu.com: Không ai trong số các tập tin và thư mục được mô tả (ví dụ casper, filesystem.manifest, menu.lst) tồn tại trong tập tin ảnh ISO, và tôi không biết điều gì đã thay thế chúng.
  • unetbootin scripting : Yêu cầu máy chủ X (hỗ trợ đồ họa) để chạy, ngay cả khi được viết hoàn chỉnh. (Lệnh sudo unetbootin lang=en method=diskimage isofile=~/ubuntu-10.10-server-amd64.iso installtype=USB targetdrive=/dev/sdg1 autoinstall=yesđưa ra thông báo lỗi unetbootin: cannot connect to X server.)

Cập nhật

Cũng đã thử GRUB fiddling: Hợp nhất thông tin từ

Tôi đã có thể đi được nửa đường - nó khởi động từ USB, hiển thị menu grub và bắt đầu cài đặt, nhưng quá trình cài đặt không hoàn tất.

Để tham khảo, đây là lần gần nhất tôi có:

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/

Sau đó tôi đã chỉnh sửa /media/usb/boot/grub.cfgđể thêm một vòng lặp .iso, ví dụ mục 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
}

Khi khởi động từ USB, điều này sẽ cho tôi menu khởi động Grub và khởi động trình cài đặt, nhưng trình cài đặt đã bỏ cuộc sau một vài màn hình phàn nàn rằng nó không thể tìm thấy ổ đĩa CD-ROM. (Đương nhiên, vì hộp tôi đang cài đặt không có ổ đĩa quang.)

Tôi đã giải quyết vấn đề cụ thể này bằng cách từ bỏ và thực hiện thói quen "tạo ổ đĩa USB" bằng đĩa CD máy tính để bàn Ubuntu Live (trên máy tính có ổ đĩa quang), sau đó cài đặt USB hoạt động.

Nhưng tôi hy vọng rằng có một số cách để làm điều này từ dòng lệnh của hệ thống Ubuntu không có máy chủ X và không có ổ đĩa quang, vì vậy câu hỏi vẫn còn.

Có ai biết làm thế nào không?


thử unetbootin.
RolandiXor

@Roland unetbootin: cannot connect to X server - dường như yêu cầu X ngay cả khi kịch bản hoàn chỉnh ( unetbootin lang=en method=diskimage isofile=/srv/share/ubuntu-10.10-server-amd64.iso installtype=USB targetdrive=/dev/sdg1 autoinstall=yes) và tôi muốn duy trì trạng thái không đầu. Cảm ơn các mẹo mặc dù; Tôi có thể cài đặt X nếu hết các tùy chọn khác.
jg-faustus

Chúng trông có vẻ đầy hứa hẹn: Pendrivelinux.com/install-grub2-on-usb-from-ubfox-linuxunix.stackexchange.com/questions/665/ cần một số điều chỉnh, nhưng sẽ thử.
jg-faustus

@ jg-faustus: Nếu mọi thứ quá phức tạp, tôi có thể đã chia sẻ linux, có thể. sử dụng dd. Đó là một viên đá quý. Không thể nói đủ. Và mọi bản phân phối linux đều có dd; Vì vậy, bạn có một giải pháp phổ quát, không có gì để script / write / configure. Chỉ cần một dòng đẹp.
Mahesh

grub.cfgMục nhập đó cần phải nói file=/cdrom/preseed/ubuntu-server.seedtrên linuxdòng (và không file=(loop)/preseed/ubuntu-server.seed), để tránh lỗi nghiêm trọng 'Không thể truy xuất tệp cấu hình sẵn' sau khi phát hiện thành công hình ảnh CD.
Paul Whittaker

Câu trả lời:


9

Khi khởi động từ USB, điều này sẽ cho tôi menu khởi động Grub và khởi động trình cài đặt, nhưng trình cài đặt đã bỏ cuộc sau một vài màn hình phàn nàn rằng nó không thể tìm thấy ổ đĩa CD-ROM.

Đây là một lỗi đã biết với máy chủ ubfox iso (máy tính để bàn hoạt động tốt), nhưng có một cách khắc phục để lấy các gói từ iso trên ổ đĩa USB: một lần trên trình cài đặt, Ctrl + Alt + f2 để mở một tty và trong thiết bị đầu cuối:

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

Sau đó chuyển trở lại trình cài đặt và thử lại để quét cd cho các gói. Nó nên hoạt động.


Tôi không có một hệ thống để dùng thử vào lúc này, nhưng ừ - có vẻ như nó sẽ hoạt động :) Cảm ơn!
jg-faustus

Tôi thấy rằng tùy chọn menu "Phát hiện và gắn CD-ROM" sẽ hoàn nguyên /dev/sr0, hoàn tác lnvà trả nó về trạng thái ban đầu (bị hỏng). Tuy nhiên, nếu tôi đợi ở "Thử lại gắn CD-ROM?" nhắc nhở, đã thực hiện lntrong tty2 và sau đó quay lại nhấn "Có", nó đã hoạt động. ( mountTuy nhiên, hộp thoại "Thử lại?" Sẽ chỉ xuất hiện khi lệnh đã được đưa ra.)
Paul Whittaker

10

Bạn đã thử với # dd if=path/to/image.iso of=/dev/sd# ?


Đây là một viên đá quý. Tốt nhất. hoạt động trên bất kỳ distro linux. nhưng bạn cần phải hết sức cẩn thận thêm bs=20Mhoặc bất kỳ giá trị phù hợp khác làm tăng tốc mọi thứ. để biết chi tiết, tham khảoman dd
Mahesh

1
@Mahesh Không, một số bản phân phối linux không hoạt động ngay cả với lệnh này, Một trong số đó là OpenSUSE
Anwar

hoặc MeeGo và tạo ra những hình ảnh đó được gọi là hình ảnh lai
rzr

5

Hãy để chúng tôi cho rằng bạn không có gì ngoài một lời nhắc nhở trước bạn. Nếu bạn có GUI, bạn có thể mở một thiết bị đầu cuối và làm mọi thứ được mô tả ở đây. Hoặc bạn có thể sử dụng một tty.

CẢNH BÁO:
Để tránh thiệt hại tiềm tàng, hãy làm theo các hướng dẫn rất cẩn thận.

  • Chuyển sang dấu nhắc gốc bằng cách gõ sudo su

    Phát hiện usb là thiết bị gì.

  • tail -f /var/log/syslog

Bây giờ bạn đang có một cái nhìn trực tiếp tại syslog. Cắm ổ đĩa USB của bạn. Bạn sẽ thấy một số tin nhắn trên màn hình. Một cái gì đó như thế này.

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

nhìn vào nó, và tìm thấy một điều trong dấu ngoặc vuông lặp đi lặp lại? sdctrong trường hợp này. Lưu ý nó xuống một mảnh giấy. KiểuCtrl + Cđể đến dấu nhắc.

Xác định vị trí tệp iso để ghi vào usb.

Nếu tập tin iso ở /path/to/iso/somecd.iso ; lưu ý đường dẫn này trên một mảnh giấy

Ghi vào USB

Cảnh báo:

Điều này sẽ xóa toàn bộ đĩa USB. Sao lưu trước khi tiến hành.

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

Thay thế /path/to/iso/somecd.iso bằng đường dẫn thực tế đến tập tin iso của bạn.

Thay thế /dev/sdcbằng bất cứ điều gì bạn ghi nhận xuống trước đó. Nếu phần lặp lại là sdb; sử dụng /dev/sdbvà như vậy.

Cảnh báo:

Nhập sai ký tự ổ đĩa sẽ dẫn đến mất dữ liệu vĩnh viễn trên một ổ đĩa khác. Hãy chú ý hơn trong khi ban hành ddlệnh.


2
Để tránh mất dữ liệu bằng cách chọn sai đĩa, bạn nên sử dụng /dev/disk/by-label/LABELthay vì/dev/sdc
totti

1
Gợi ý hợp lý. Nhưng khi bạn không chắc chắn về nhãn hiệu, hoặc bạn có một tấn 'Âm lượng mới', nó sẽ trở thành một nỗi đau. Tôi luôn thích sdX, nhưng đó là một lựa chọn cá nhân.
Mahesh

1
Câu trả lời tốt nhất. Một cải tiến được đề xuất là sử dụng pv trên luồng đầu vào cho dd, để người dùng nhận được phản hồi tiến trình (tức là pv đọc iso, truyền nó tới dd và hiển thị tiến trình trên stderr).
Stablesog 23/03 '

2

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

  • Gắn kết ubuntu.isotệp. Để điều này chạy 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
    
  • Sau đó sao chép tất cả các tệp từ /media/isothư mục ổ đĩa flash USB được gắn vào của bạn trong/media .

    Chèn ổ đĩa flash USB của bạn.

    Nó sẽ tự động được gắn, bất cứ khi nào bạn chèn nó. Phân vùng usb của bạn phải được gắn bên trong /media. Hãy cho chúng tôi giả sử ổ USB của bạn được gắn trong thư mục. Sau đó /media/xxxxchạy lệnh bên dưới,

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

    Chạy lsblklệnh để biết phân vùng thiết bị usb.

  • Sau đó dán ldlinux.systệp vào phân vùng ổ flash USB của bạn (Trong trường hợp của tôi / dev / sdd1 ) để làm cho USB có khả năng khởi động . Điều này chạy các lệnh dưới đây,

    sudo apt-get install syslinux mtools
    syslinux -s /dev/sdd1
    
  • Đi vào /media/xxxthư mục và đổi tên thư mục isolinuxthành. syslinuxSau đó vào thư mục syslinux được đổi tên và đổi tên tệp isolinux.cfgthành syslinux.cfg.

       mv /media/xxx/isolinux /media/xxx/syslinux
       mv /media/xxx/syslinux/isolinux.cfg /media/xxx/syslinux/syslinux.cfg
    
  • Khởi động lại máy tính của bạn và thay đổi boot-orderbios trong USB. Bây giờ ổ đĩa flash USB ub 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 bất kỳ bản phân phối linux nào, không chỉ trên Ubuntu.


1

Tôi đã giải quyết vấn đề đặc biệt này bằng cách sử dụng CD máy tính để bàn Ubuntu Live.

Bằng cách khởi động Live CD trên máy tính bằng ổ đĩa quang, tôi có thể sử dụng các hướng dẫn trên màn hình Ubuntu để tạo trình cài đặt bút USB mà không cần chạm vào cài đặt hiện có.


1

Bạn có thể hack usb-creator để làm điều này.

Bạn đã có một phân vùng vfat duy nhất là phân vùng 1 trên thiết bị usb (bước xóa đĩa của usb-creator-gtk làm điều này) và nó sẽ được đánh dấu khả năng khởi động.

Tiếp theo, chúng tôi sẽ nhận được mã python tạo USB để hỗ trợ chúng tôi.

$ sudo apt-get install usb-creator

hoặc là

$ bzr branch lp:usb-creator

tạo một tệp có nội dung này và đặt tên là usb-creator-cli, nếu bạn sử dụng bzr ở bước cuối cùng, hãy đặt tệp này vào thư mục usb-creator (gốc của nhánh 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()

Làm cho nó thực thi

$ chmod +x usb-creator-cli

Bây giờ gắn iso của bạn vào / iso và gắn thiết bị usb của bạn vào / mnt

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

Nếu bạn muốn thông điệp dài dòng trong bảng điều khiển của mình, bạn có thể theo đuôi ~ / .cache / usb-creator.log

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

Bây giờ hãy chạy tập lệnh usb-creator-cli

$ sudo ./usb-creator-cli

Và xem tất cả các tin nhắn cuộn qua.

Khi bạn quay lại dấu nhắc, đừng quên ngắt kết nối / mnt trước khi bạn lấy thiết bị lưu trữ usb của mình.


-2

Bạn có thể cài đặt một dòng lệnh (CLI) Ubuntu bằng cách sử dụng Cài đặt thay thế hoặc Mini iso (phù hợp với thanh 512mb của bạn)

Sau đó cài đặt Crunchbang bằng phương pháp thay thế: http://crunchbanglinux.org/forums/topic/26/crunchbang-linux-81001-alternative-installation/

Bạn cũng có thể dùng thử phiên bản Lite của CrunchBang, có dung lượng dưới 512mb.

Bạn có thể sử dụng Unetbootin để chuẩn bị thanh USB.


crunchbang? haha
RolandiXor

Tôi không gặp vấn đề gì khi lắp ISO trên thanh (đó là 16 GB), vấn đề là làm thế nào tôi có thể tạo một thanh USB khởi động vào ISO ngay từ đầu và tạo ra nó không sử dụng gì ngoài CLI.
jg-faustus

Và unetbootin không hoạt động, thật không may - nó dường như yêu cầu hỗ trợ đồ họa ngay cả khi bạn chạy nó từ dòng lệnh.
jg-faustus
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.