web-dev-qa-db-fra.com

Comment créer manuellement Ubuntu Live USB

La chose que j'essaye de faire:

  1. Créez une clé USB amorçable avec deux partitions (FAT32 amorçable et NTFS pour les données). (TERMINÉ)
  2. Installez GRUB2 sur la partition FAT32. (TERMINÉ)
  3. Rendre la partition FAT32 multiboot, avec Ubuntus installé persistant.

Le dernier ne devrait pas être si difficile, mais maintenant, ma tête est sur le point de souffler ... Je ne trouve nulle part d'instructions détaillées sur la procédure d'installation persistante d'Ubuntu sur une partition et non dans le répertoire racine. (dans le dossier ubuntu12.04 par exemple). A cette époque, j'ai rassemblé des informations qui ressemblent à tout Internet et voici ce que j'ai fait:

  1. Extrait ISO du LiveCD Ubuntu 12.04 dans le répertoire /ubuntu12.04.
  2. Création du fichier /ubuntu12.04/casper-rw avec dd et mkfs.ext2 it.
  3. Ajouté menuentry à grub.cfg:

    menuentry "Run Ubuntu 12.04.2 Live" {
        linux   /ubuntu12.04/casper/vmlinuz  file=/ubuntu12.04/preseed/ubuntu.seed boot=casper persistent rw quiet splash --
        initrd  /ubuntu12.04/casper/initrd.lz
    }
    

Mais les résultats sont toujours les mêmes:

(initramfs): Unable to find a medium containing a live file system.

Où dois-je placer le fichier casper-rw pour que initramfs le trouve? Ou n'importe quoi pour obtenir ce dont j'ai besoin.

2
MadBrozzeR

Pour Ubuntu 12.04.2, le noyau est /casper/vmlinuz.efi. Notez que le .efi a été ajouté récemment.

De plus, vous n'avez pas besoin d'extraire les fichiers du CD, vous pouvez démarrer directement à partir de .iso. Voici un modèle que j'utilise pour le multi-démarrage USB:

menuentry "YOUR TITLE" {
    insmod ntfs
    insmod iso9660
    loopback loop /distros/FILENAME.ISO
    linux (loop)/casper/vmlinuz.efi persistent boot=casper iso-scan/filename="/distros/FILENAME.ISO" noeject noprompt splash toram --
    initrd (loop)/casper/initrd.lz
}

De cette façon, je peux conserver toutes les distributions/versions comme fichiers .iso dans un répertoire /distros à l'intérieur de la partition de données NTFS. Grub2 est installé sur le MBR et ses fichiers /boot (y compris le /boot/grub/grub.cfg manuscrit ci-dessus) se trouvent également dans la partition de données. Grub2 a été installé en tant que:

Sudo grub-install --no-floppy --root-directory="/PATH/TO/MOUNTED/USB" "/dev/sdX"
3
MestreLion

La création manuelle du disque de démarrage à l'aide de grub est assez fragile d'après mon expérience. Si elle est faite sur un système efi, cela ne fonctionnera pas sur les systèmes bios, échouant avec l'erreur

error:invalid Arch independent ELF magic.
grub rescue>

Sur les systèmes efi uniquement, les bootloaders du BIOS peuvent ne fonctionnent pas. Le mieux est d’utiliser à la fois grub-efi et syslinux, à l’instar du live CD créé automatiquement.

Vous voudrez peut-être faire cela pour

a) empêcher les dossiers et fichiers bazilion d’encombrer votre clé USB et de la rendre inutilisable à toute autre fin

b) démarrage multiple


La technique que j'utilise est la suivante: put grub:

Sudo grub-install --removable --root-directory=/path/to/mount /dev/sdx

le --removable semble être nécessaire ou il produit des erreurs d'installation amusantes sur certains ordinateurs avec efi

Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
Try 'modprobe efivars' as root.

cela crée un dossier boot et un dossier efi. Pour installer syslinux dans le dossier boot (contrairement au cd live standard):

cd /path/to/mount
Sudo syslinux --directory boot/syslinux --install /dev/sdx

extraire l'iso d'ubuntu dans un dossier dit ubuntu (/path/to/mount/ubuntu) éditer /path/to/mount/boot/grub/grub.cfg pour contenir:

menuentry "Ubuntu" {
    set gfxpayload=keep
    linux   /ubuntu/casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash live-media-path=/ubuntu/casper --
    initrd  /ubuntu/casper/initrd.lz
}

puis configurez syslinux: copy vesamenu.c32 à partir du répertoire isolinux situé dans l'iso vers /path/to/mount/boot/syslinux/vesamenu.c32 create /path/to/mount/boot/syslinux/slax.cfg afin qu'il contienne:

Prompt 0
TIMEOUT 90
DEFAULT /boot/syslinux/vesamenu.c32


LABEL Ubuntu
MENU LABEL Ubuntu
    kernel  /ubuntu/casper/vmlinuz.efi  
    append initrd=/ubuntu/casper/initrd.lz boot=casper live-media-path=/ubuntu/casper quiet splash --
0
staticd