web-dev-qa-db-fra.com

Créer un programme d'installation USB pour installer Ubuntu à partir de la ligne de commande?

J'essaie de créer une image USB amorçable pour installer Ubuntu sur un nouvel ordinateur.

Je l'ai fait avant de suivre les instructions " créer une clé USB " pour le bureau Ubuntu, mais je n'ai pas de bureau Ubuntu disponible.

Comment puis-je faire la même chose en utilisant uniquement la ligne de commande?

Choses que j'ai essayées:

  • Créez une clé USB amorçable sur Mac OS X en suivant les instructions "Créez un lecteur USB" d'ubuntu.com pour Mac: ne démarre pas.
  • usb-creator : Selon apt-cache search usb-creator et Wikipedia usb-creator n’existe que sous forme d’outil graphique.
  • Instructions "Créer manuellement" sur help.ubuntu.com: aucun des fichiers et répertoires décrits (par exemple, casper, filesystem.manifest, menu.lst) n'existe dans l'image ISO et je ne sais pas ce qui les a remplacés. .
  • script unetbootin : Nécessite le serveur X (support graphique) pour s'exécuter, même s'il est entièrement scripté. (La commande Sudo unetbootin lang=en method=diskimage isofile=~/ubuntu-10.10-server-AMD64.iso installtype=USB targetdrive=/dev/sdg1 autoinstall=yes donne un message d'erreur unetbootin: cannot connect to X server.)

Mettre à jour

Aussi essayé GRUB fiddling: Fusion des informations de

Je pouvais y arriver à mi-chemin - il a démarré à partir de l'USB, a affiché le menu grub et a démarré l'installation, mais l'installation ne s'est pas terminée.

Pour référence, c'est le plus proche que j'ai eu:

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/

J'ai ensuite édité /media/usb/boot/grub.cfg pour ajouter un bouclage .iso, exemple d'entrée 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
}

Lors du démarrage à partir de l'USB, cela me donnerait le menu de démarrage Grub et lancerait le programme d'installation, mais celui-ci a abandonné après quelques écrans se plaignant de l'impossibilité de trouver le lecteur de CD-ROM. (Naturellement, la boîte sur laquelle j'installe ne possède pas de lecteur optique.)

J'ai résolu ce problème en abandonnant et en effectuant la procédure "créer un lecteur USB" à l'aide du CD de bureau Ubuntu Live (sur un ordinateur équipé d'un lecteur optique), puis l'installation par USB fonctionne.

Mais je pense qu’il est possible de le faire à partir de la ligne de commande d’un système Ubuntu sans serveur X et sans lecteur optique. La question est donc toujours d'actualité.

Est-ce que quelqu'un sait comment?

22
j-g-faustus

Lors du démarrage à partir de l'USB, cela me donnerait le menu de démarrage Grub et lancerait le programme d'installation, mais celui-ci a abandonné après quelques écrans se plaignant de l'impossibilité de trouver le lecteur de CD-ROM.

Il s’agit d’un bogue connu avec le serveur iso ubuntu (le bureau iso fonctionnant parfaitement), mais il existe un correctif pour obtenir les paquetages de l’iso sur le lecteur USB: une fois sur le programme d’installation, Ctrl + Alt + f2 pour ouvrir un tty et le terminal:

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

Revenez ensuite à l'installateur et réessayez d'analyser cd pour les paquets. Ça devrait marcher.

9
Orvidia

Avez-vous essayé avec # dd if=path/to/image.iso of=/dev/sd#?

10
aqui_c

Supposons que vous n'avez rien d'autre qu'une invite devant vous. Si vous avez une interface graphique, vous pouvez ouvrir un terminal et faire tout ce qui est décrit ici. Ou vous pouvez utiliser un tty.

ATTENTION:
Pour éviter tout dommage éventuel, suivez les instructions avec la plus grande attention.

  • Passez à une invite racine en tapant Sudo su

    Détectez quel périphérique USB est.

  • tail -f /var/log/syslog

Vous avez maintenant une vue en direct sur syslog. Branchez votre clé usb. Vous devriez voir des messages à l'écran. Quelque chose comme ça.

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

regardez-le et trouvez une chose entre crochets qui se répète? sdc dans ce cas. Notez-le sur un morceau de papier. Type Ctrl+C pour arriver à l'invite.

Localisez le fichier ISO à graver sur USB.

Si le fichier ISO est à /path/to/iso/somecd.iso; notez ce chemin sur un morceau de papier.

Écrire sur USB

Attention:

Cela va effacer la totalité du disque USB. Sauvegardez avant de continuer.

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

Remplacez /path/to/iso/somecd.iso par le chemin d'accès réel à votre fichier ISO.

Remplacez /dev/sdc par tout ce que vous avez noté précédemment. Si la partie répétée est sdb; utilisez /dev/sdb et ainsi de suite.

Attention:

Si vous saisissez une lettre de lecteur erronée, vous perdrez définitivement des données sur un lecteur différent. Portez une attention particulière lors de l’émission de la commande dd.

5
Mahesh

Créer une clé USB bootable Ubuntu à partir d'un terminal

  • Montez le fichier ubuntu.iso.Pour cela, exécutez les commandes ci-dessous dans le terminal,

    Sudo mkdir /media/iso
    Sudo mount -o loop /path/to/ubuntu.iso /media/iso
    
  • Copiez ensuite tous les fichiers de /media/iso dans votre dossier de lecteur flash USB monté dans /media.

    Insérez votre clé USB.

    Votre partition USB doit être montée dans /media. Supposons que votre lecteur USB soit monté dans le dossier /media/xxxx.Ensuite, exécutez la commande ci-dessous,

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

    Exécutez la commande lsblk pour connaître la partition de périphérique USB.

  • Ensuite, collez le fichier ldlinux.sys dans la partition de votre clé USB (Dans mon cas / dev/sdd1) pour rendre le sb bootable .Pour cela, exécutez les commandes ci-dessous,

    Sudo apt-get install syslinux mtools
    syslinux -s /dev/sdd1
    
  • Accédez au dossier /media/xxx et renommez le répertoire isolinux en syslinux. Ensuite, accédez au dossier renommé syslinux et renommez le fichier isolinux.cfg en syslinux.cfg.

       mv /media/xxx/isolinux /media/xxx/syslinux
       mv /media/xxx/syslinux/isolinux.cfg /media/xxx/syslinux/syslinux.cfg
    
  • Redémarrez votre ordinateur et remplacez le boot-order dans le bios par USB.Maintenant, votre clé USB à mémoire flash ubuntu va démarrer et vous pouvez l’installer.

Cette méthode fonctionnera pour toutes les distributions Linux, pas seulement pour Ubuntu.

2
Avinash Raj

J'ai résolu ce problème en utilisant le CD de bureau Ubuntu Live.

En démarrant le Live CD sur un ordinateur équipé d'un lecteur optique, je pouvais utiliser les instructions du bureau Ubuntu pour créer le programme d'installation du stylet USB sans toucher à l'installation existante.

1
j-g-faustus

Vous pouvez pirater usb-creator pour le faire.

Vous devriez déjà avoir une seule partition vfat en tant que partition 1 sur le périphérique usb (l’étape d’effacement du disque de usb-creator-gtk le fait) et elle devrait être marquée comme étant amorçable.

Ensuite, nous aurons le code usb-creator python pour nous aider.

$ Sudo apt-get install usb-creator

ou

$ bzr branch lp:usb-creator

créez un fichier avec ce contenu et nommez-le usb-creator-cli. Si vous utilisez bzr à la dernière étape, placez ce fichier dans le répertoire usb-creator (racine de la branche 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()

Le rendre exécutable

$ chmod +x usb-creator-cli

Maintenant, montez votre iso sur/iso et montez votre périphérique usb sur/mnt

$ Sudo mkdir /iso ; Sudo mount ubuntu-server-12.10-AMD64.iso /iso
$ Sudo mount /dev/sdb1 /mnt

Si vous voulez des messages très détaillés sur votre console, vous pouvez utiliser ~/.cache/usb-creator.log

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

Maintenant, lancez le script usb-creator-cli

$ Sudo ./usb-creator-cli

Et regardez tous les messages défiler.

Lorsque vous revenez à l'invite, n'oubliez pas de démonter/mnt avant de retirer votre périphérique de stockage USB.

1