Nous sommes actuellement le Sam 25 Mai 2013, 12:23
Messages depuis 12 | 24 | 36 heures.




 [ 1 message ]  Publier une réponse
 Sujet du message: [grub2] un SuperDiskGrub2 Arch
MessagePublié: Dim 04 Sep 2011, 18:39 
yeomen

Inscrit le: Dim 19 Juin 2011, 18:53
Messages: 108
Localisation: dans le neuf trois
Bonjour,
Ayant constaté que SuperDiskGrub2 n'a pas été maintenu depuis aout 2010 et que la détection d'OS ne fonctionne pas sur les distibutions arch 2.6 ou 3.0.,
je me suis fait mon SuperDiskGrub2 personnel.

La méthode est simple: installation légère d'Archlinux i686 en chroot avec grub2 et os-prober.
Je me suis librement inspiré du Install_chroot

Préalables:
Créer une partition de 800Mo avec parted ou fdisk.
télécharger le chroot i686 de tuxce et le copier dans $source_path
récupérer os-prober-1.49-1-i686.pkg.tar.xz depuis aur et le copier dans $source_path
sauvegarder le code ci-dessous dans $sourc_path/grub2_chroot.sh
suivre les instructions du script.
Code:
#!/bin/bash
#
#   ouvrir un terminal en root
#   valoriser les variables à exporter
#   sourcer ce script
#   exécuter successivement dans le terminal root
#
#   set_vars
#   create_fs
#   prep_chroot
#   mon_chroot
#   mon_pacman
#
#


function resource {    #mise à disposition des modifs de ce script
   [ -r $source_path/grub2_chroot.sh ] && . $source_path/grub2_chroot.sh && return
   . /etc/bash.bashrc  #mise à disposition pour le chroot au cas où
}

function set_vars {
   export arch="i686"
   export fs_name="supergrub2"
   export source_path="/media/backup-sdb/archlinux"
   export install_path="/media/$fs_name"
   export targetdev=/dev/sdb13
   export grub2_uuid=ac4dc5d8-7831-4365-b75d-xxxxxxxxxxxx    #via uuidgen
   export os_prober="os-prober-1.49-1-$arch.pkg.tar.xz"
   export dnsservers='nameserver 212.27.40.240\nnameserver 212.27.40.241'
   export miroirs='Server = http://mir.archlinux.fr/$repo/os/$arch\nServer = http://mir1.archlinux.fr/archlinux/$repo/os/$arch'
}

function create_fs {
   echo "montage de $targetdev en $fs_name"
   udisks --unmount $targetdev
   mkfs.ext2 -L $fs_name -U $grub2_uuid $targetdev
}

function prep_chroot {
   udisks --mount $targetdev
   mkdir $install_path/tmp
   chmod 1777 $install_path/tmp
   cd $install_path
   tar zxf $source_path/archlinux.chroot.$arch.tgz
   mkdir $install_path/etc/pacman.d
   mkdir -p $install_path/$source_path
   cp $source_path/grub2_chroot.sh $install_path/etc/bash.bashrc #pour exécution dans le chroot
   
   echo -e $dnsservers > $install_path/etc/resolv.conf
   echo -e $miroirs > $install_path/etc/pacman.d/mirrorlist

   mount -o bind /proc $install_path/proc
   mount -o bind /dev $install_path/dev
   mount -o bind /sys $install_path/sys
   mount -o bind $source_path $install_path/$source_path
   mount -o bind $source_path/cache_pacman32 $install_path/var/cache/pacman/pkg #gain de temps si on recommence
}

function mon_chroot {
   chroot $install_path /bin/bash
}

function mon_pacman {
   pacman -Syf linux sudo sed initscripts e2fsprogs
   echo -e $dnsservers > /etc/resolv.conf
   pacman -S grub2
   pacman -U /var/cache/pacman/pkg/$os_prober
   grub-mkconfig > /boot/grub/grub.cfg

   mk_fstab
   mk_rc_conf
   echo -e 'MODULES=""\nBINARIES=""\nFILES=""\nHOOKS="base udev autodetect pata scsi sata usb filesystems"' > /etc/mkinitcpio.conf
   echo -e 'en_US.UTF-8 UTF-8\nen_US ISO-8859-1\nfr_FR.UTF-8 UTF-8\n#fr_FR ISO-8859-1\nfr_FR@euro ISO-8859-15' > /etc/locale.gen
   locale-gen
}

function mk_fstab {
   echo "# <file system>        <dir>         <type>    <options>          <dump> <pass>
devpts                 /dev/pts      devpts    defaults            0      0
shm                    /dev/shm      tmpfs     nodev,nosuid        0      0
UUID=$grub2_uuid / ext2 defaults 0 1
tmpfs   /tmp tmpfs defaults,size=4g 0 0" > /etc/fstab
}

function mk_rc_conf {
   echo 'LOCALE="fr_FR.UTF-8"
HARDWARECLOCK="UTC"
TIMEZONE="Europe/Paris"
KEYMAP="fr-latin9"
CONSOLEFONT="lat9v-10"
CONSOLEMAP=
USECOLOR="yes"

MODULES=()
UDEV_TIMEOUT=30
USEDMRAID="no"
USEBTRFS="no"
USELVM="no"

HOSTNAME="myhost"
interface=eth0
address=' > /etc/rc.conf
}


un grub-install sur /dev/sdX de votre choix et ça roule.
démarrer une fois sur la distribution installée,
regénérer initramfs-linux.img pour prendre en compte l'usb.

reste à réduire la taille de la partition à 42 cylindres (350-400Mo),
la sauvegarder avec un dd,
la copier sur une clé usb amorçable.
et vous aurez un SuperDiskGrub2 pas aussi bien que le vrai,
mais qui fonctionne et que vous pourrez maintenir.

Fonctionnement:
booter l'ordinateur à réparer sur la clé
démarrer le distibution SuperDiskGrub2
se logger en root
génerer le grub.cfg: grub-mkconfig >/boot/grub/grub.cfg
rebootez: les distributions de l'ordinateur sont disponibles dans le menu grub2.

Précisions:
En préparant os-prober-1.49-1-i686.pkg.tar.xz à l'avance on évite l'installation des paquets de base-devel


Haut
 Profil  
 
Afficher les messages publiés depuis:  Trier par  
 [ 1 message ]  Répondre au sujet


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Rechercher pour:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction réalisée par Maël Soucaze © 2010 phpBB.fr
phpBB SEO


© 2009-2010 Archlinux.fr ~ Communauté Francophone Arch Linux