# [install] transférer une installation vers un autre disque

## donald7

bonjour 

je voudrais transférer ma gentoo vers un disque usb pour lequel je booterai dans un premier temps à partir du disque dur puis à partir d'un cd.

A priori le transfert me semble simple mais je m'interroge

- Copier tous les repertoire et fichiers de ma racine vers ma nouvelle racine

- y ajouter les repertoires de /boot qui est actuellement une partion séparée

- adapter mon fichier /etc/fstab

- adapter grub pour pointer vers la nouvelle racine.

J'ai raison ?   :Confused: 

merci de vos commentaires 

donald

----------

## Martin.

Moi ca m'a l'air correct, le plus gros problème sera sans doute la configuration de GRUB.

Pense bien à utiliser cp -a pour garder les permissions sur les fichiers en copiant !

----------

## donald7

 *Martin. wrote:*   

> 
> 
> Pense bien à utiliser cp -a pour garder les permissions sur les fichiers en copiant !

 

 :Shocked:  oups ! pas pensé à cela : j'ai fait un copier / coller dans Konqueror   :Embarassed: 

que vont devenir les permissions dans ce cas ?

donald

----------

## donald7

Les permissions semblent conservées ..

il n'y a pas des répertoires pour lesquels la copie n'a pas de sens genre /proc ?

comment être sûr que je vais obtenir une copie fonctionnelle de gentoo ?

donald

----------

## guilc

Pour etre sur que ça va marcher, fais ta copie à froid, depuis un livecd. C'est beaucoup plus sur que de copier un systeme en fonctionnement...

----------

## donald7

oui ca me partait évident maintenant que tu le dis   :Confused: 

mais quel sont les meilleurs outils pour faire ca ?

google me parle de SystemRescueCD par exemple .

je suis indécis   :Confused: 

donald

----------

## guilc

Peu importe en fait.

Un livecd linux quelconque fait très bien l'affaire !

1) Tu bootes sur livecd

2) tu montes les partitions de ta gentoo et de ton disque USB

Exemple :

mount /dev/sda1 /mnt/gentoo

mount /dev/sda2 /mnt/gentoo/boot (puisque ton /boot est séparé)

mount /dev/sdb1 /mnt/dur_usb

3) cp -a gentoo => usb

Exemple :

cp -a /mnt/gentoo /mnt/dur_usb

Et c'est tout.

En faisant une copie à froid ainsi, tu évites les problèmes de partitions virtuelles (du genre /dev, /proc, /sys), tu ne copie pas plein de trucs qui servent a rien et qui cradent le système (du genre /var/run/*, /var/lock/*, etc...) et tu évite les copies à des instants pouvant faire foirer la copie...

----------

## donald7

super clair   :Very Happy: 

merci  

donald

----------

## donald7

il y a un fonctionnement de cp qui m'échappe

j'ai monté mes trois partitions et fais un

```
cp -a /mnt/gentoo /mnt/gentoousb
```

le premier répertoire copié dans /gentoousb (mon disque usb de destination) a été /gentoo au lieu de /boot par exemple

je n'ai pas besoin d'avoir /gentoo comme racine dans mon disque usb de destination.  :Confused: 

ou est mon erreur ?   :Embarassed: 

donald

----------

## donald7

bon il fallait ajouter uné étoile   :Wink: 

```
[root@localhost gentoousb]# cp -a -R /mnt/gentoo/* /mnt/gentoousb

```

je ne suis pas sur que l'option -R apporte grand chose   :Confused: 

donald

----------

## donald7

après un coup de google, j'ai finalement adopté cette syntaxe

```
[root@localhost gentoousb]# cp -a -R /mnt/gentoo/./ /mnt/gentoousb
```

 :Question: 

donad

----------

## gbetous

Oui, je crois qu'il ne faut pas utiliser '*' car il ne considère pas les fichiers commençant par '.'

----------

## ghoti

 *donald7 wrote:*   

> je ne suis pas sur que l'option -R apporte grand chose   

 

En effet :

 *man cp wrote:*   

> OPTIONS GNU
> 
>        -a, --archive
> 
>               Préserver  autant  que  possible  la structure et les attributs du
> ...

 

----------

## donald7

Ca y est gentoo fonctionne sur mon disque USB.   :Very Happy: 

J'ai eu un grand moment de solitude quand, au démarrage de l'interface graphique, l'écran est resté tout noir ... pendant 10 secondes.

Il ne s'agissait   :Confused:  que d'un problème de lenteur pour les accès disques.

Voila ce que j'ai ajouté à grub.conf

```
title=Gentoo Linux USB 2.6.22

root (hd0,8)

kernel /boot/kernel-genkernel-x86-2.6.22-gentoo-r5 root=/dev/ram0 init=linuxrc ramdisk=8192 real_root=/dev/sda8 udev vga=791

initrd /boot/initramfs-genkernel-x86-2.6.22-gentoo-r5
```

je ne fais que modifier l'adresse real_root. Le kernel et le fichier ram-disk restent sur le disque dur principal hda.

Pour pouvoir récupérer complètement  mon autonomie et démarrer gentoo à partir d'un autre PC, je dois donc construire un CD bootable qui me fournisse le kernel et l'initramfs.

J'ai déjà fait un tel CD pour Mandriva en suivant ce tuto Mandriva Linux 2007 sur disque USB. Je n'ai pas tout compris   :Embarassed:  mais je vais essayer de reprendre la même approche pour gentoo   :Wink: 

EDIT : il y a aussi ce lien Comment installer une distribution Debian/Etch sur disque USB avec un chapitre 5 sur la réalisation du CD bootable.

donald

----------

## donald7

bon ca ne marche pas encore.

J'ai bien réussi à générer une image iso. Quand je la monte avec mount -o loop, je peux voir qu'elle a l'air correct.

Mais au boot sur cette image, j'obtiens une erreur du type "noyau linux non trouvé"  :Sad: 

EDIT "could not find kernel image: kernel"

voila le chemin suivi pour créer l'image

j'ai pris isolinux.bin dans le CD minimal d'installation gentoo 2007.0

le probleme vient peut etre de là   :Sad: 

je sèche pour l'instant   :Confused: 

donald

```
gentoo donald# cd /boot

gentoo boot # emerge  mkinitrd

Calculating dependencies... done!

>>> Verifying ebuild Manifests...

>>> Emerging (1 of 1) sys-apps/mkinitrd-3.5.7-r3 to /

..../...

>>> sys-apps/mkinitrd-3.5.7-r3 merged.

>>> Recording sys-apps/mkinitrd in "world" favorites file...

>>> No packages selected for removal by clean

>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

gentoo boot # ls

System.map-genkernel-x86-2.6.22-gentoo-r5  boot  grub  initramfs-genkernel-x86-2.6.22-gentoo-r5  kernel-genkernel-x86-2.6.22-gentoo-r5  lost+found

gentoo boot # mkinitrd -v  --preload=ohci-hcd --preload=uhci-hcd  --preload=usb-storage  --preload=sd_mod /boot/usbinitramfs-2.6.22-gentoo-r5 2.6.22-gentoo-r5

Looking for deps of module ohci-hcd     usbcore

Looking for deps of module usbcore

Looking for deps of module uhci-hcd     usbcore

Looking for deps of module usbcore

Looking for deps of module usb-storage  usbcore

Looking for deps of module usbcore

Looking for deps of module sd_mod

Looking for deps of module ide-disk

Looking for deps of module ext3

Using modules:  ./kernel/drivers/usb/core/usbcore.ko ./kernel/drivers/usb/host/ohci-hcd.ko ./kernel/drivers/usb/host/uhci-hcd.ko ./kernel/drivers/usb/storage/usb-storage.ko

Using loopback device /dev/loop0

/sbin/nash -> /tmp/initrd.faZASS/bin/nash

/sbin/insmod.static -> /tmp/initrd.faZASS/bin/insmod

`/lib/modules/2.6.22-gentoo-r5/./kernel/drivers/usb/core/usbcore.ko' -> `/tmp/initrd.faZASS/lib/usbcore.ko'

`/lib/modules/2.6.22-gentoo-r5/./kernel/drivers/usb/host/ohci-hcd.ko' -> `/tmp/initrd.faZASS/lib/ohci-hcd.ko'

`/lib/modules/2.6.22-gentoo-r5/./kernel/drivers/usb/host/uhci-hcd.ko' -> `/tmp/initrd.faZASS/lib/uhci-hcd.ko'

`/lib/modules/2.6.22-gentoo-r5/./kernel/drivers/usb/storage/usb-storage.ko' -> `/tmp/initrd.faZASS/lib/usb-storage.ko'

Loading module usbcore

Loading module ohci-hcd

Loading module uhci-hcd

Loading module usb-storage

gentoo boot # ls

System.map-genkernel-x86-2.6.22-gentoo-r5  grub                                      kernel-genkernel-x86-2.6.22-gentoo-r5  usbinitramfs-2.6.22-gentoo-r5

boot                                       initramfs-genkernel-x86-2.6.22-gentoo-r5  lost+found

gentoo boot # mkdir /mnt/toto

gentoo boot # mkdir /mnt/toto/isolinux

gentoo boot # mkdir /mnt/toto/isolinux/noyau

gentoo boot # ls /media

Gentoo Linux x86 2007.0

gentoo boot # cd /media

gentoo media # cd "Gentoo Linux x86 2007.0"

gentoo Gentoo Linux x86 2007.0 # ls

Getting_Online.txt  README.txt  gentoo.efimg  image.squashfs  isolinux  livecd

gentoo Gentoo Linux x86 2007.0 # cd isolinux

gentoo isolinux # ls

F2.msg  F3.msg  F4.msg  F5.msg  F6.msg  F7.msg  boot.cat  boot.msg  elilo.efi  gentoo  gentoo.igz  isolinux.bin  isolinux.cfg  kernels.msg  memtest86

gentoo isolinux # cp isolinux.bin /mnt/toto/isolinux

gentoo isolinux # cp /boot/usbinitramfs-2.6.22-gentoo-r5 /mnt/toto/isolinux/noyau/

gentoo isolinux # cd

gentoo ~ # cd /mnt/toto/isolinux

gentoo isolinux # ls

isolinux.bin  noyau

gentoo isolinux # cd noyau

gentoo noyau # ls

usbinitramfs-2.6.22-gentoo-r5

gentoo noyau # cp /boot/kernel-genkernel-x86-2.6.22-gentoo-r5 /mnt/toto/isolinux/noyau/

gentoo noyau # ls

kernel-genkernel-x86-2.6.22-gentoo-r5  usbinitramfs-2.6.22-gentoo-r5

gentoo noyau # cd /mnt/toto

gentoo toto # mkisofs -o /mnt/toto/bootcd.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -l isolinux

Size of boot image is 4 sectors -> No emulation

Total translation table size: 2048

Total rockridge attributes bytes: 754

Total directory bytes: 2048

Path table size(bytes): 24

Max brk space used 0

1510 extents written (2 MB)

gentoo toto # ls

boot.msg  boot.msg~  bootcd.iso  isolinux  isolinux.cfg  isolinux.cfg~

gentoo toto # 
```

voila mon fichier isolinux.cfg

```
gentoo etienne # more /mnt/toto/isolinux.cfg

default usb

timeout 150

prompt 1

display boot.msg

label usb

  kernel /noyau/kernel-genkernel-x86-2.6.22-gentoo-r5

  append initrd=noyau/usbinitramfs-2.6.22-gentoo-r5 ro root=/dev/sda8

gentoo etienne #

```

----------

## bouleetbil

Salut,

Tu est sur que c'est /dev/sda8?

De plus ajoute "scandelay" dans la section append de isolinux, pour que les periphs USB soient montés.

----------

## donald7

oui je suis sur que c'est /dev/sda8 d'autant que je travaille à partir de  cette partition à l'instant même ... mais en ayant booté sur le disque dur.

Le message précis que j'obtiens au boot sur mon CD fraichement gravé est "Could not find kernel image: linux"

c'est où la section append de isolinux ? je ne comprends pas où je devrais ajouter "scandelay"

edit : j'essaye d'ajouter scandelay dans isolinux.cfg

 *Quote:*   

> append initrd=noyau/usbinitramfs-2.6.22-gentoo-r5 scandelay ro root=/dev/sda8

 

A noter toutefois que sur Mandriva, mkinitrd comprend une option "--force-usb" qui n'existe pas dans le mkinitrf que j'ai emergé.

donc ton option "scandelay" me plait 

cela étant, ce n'est pas celà qui bloque pour trouver l'image du kernel, me semble t-il

donald

----------

## donald7

scandelay ne change rien. j'ai le même message

donald

----------

## donald7

bon je progresse : maintenant le kernel et l'initramfs se chargent   :Cool:  mais j'obtiens ensuite un kernel panic   :Crying or Very sad: 

pour en arriver là, je me suis rendu compte que isolinux.cfg n'étais pas pris en compte pour la fabrication de mon image iso.

je l'ai donc transféré de /mnt/toto à /mnt/toto/isolinux

ensuite j'ai donné des noms courts au kernel et à initramfs.

voila mon isolinux.cfg

```
gentoo isolinux # more isolinux.cfg

default usb

prompt 1

timeout 150

display boot.msg

label usb

  kernel noyau/kernel

  append initrd=noyau/usbinitramfs scandelay ro root=/dev/ram0 init=linuxrc ramd

isk=8192 real_root=/dev/sda8 udev vga=791

gentoo isolinux #

```

dans l'écran de boot, apparemment le driver usb mass storage s'active mais curieusement le boot essaie d'activer les partitions sur hda sans y arriver au lieu d'aller voir sur sda

y aurait il un gourou dans la salle ?   :Smile: 

donald

----------

## bouleetbil

salut,

Il ressemble à quoi le fstab?

----------

## donald7

bonjour,

voila mon fstab. Je précise que j'arrive à booter normalement à partir de mon disque dur sur ces partitions. Le kernel panic est lié à mon boot sur CD.

```
# /etc/fstab: static file system information.

#

# <fs>         <mountpoint>   <type>      <opts>      <dump/pass>

/dev/sda8      /      ext3      noatime      0 1

/dev/sda7      none      swap      sw      0 0

/dev/cdroms/cdrom0   /mnt/cdrom   iso9660      noauto,ro   0 0

#/dev/hdc       /mnt/cdrom    auto       umask=0022,users,iocharset=utf8,noauto,ro,exec 0 0

#/dev/fd0      /mnt/floppy   auto      noauto      0 0

# NOTE: The next line is critical for boot!

none         /proc      proc      defaults   0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for 

# POSIX shared memory (shm_open, shm_unlink).

# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will

#  use almost no memory if not populated with files)

none         /dev/shm   tmpfs      nodev,nosuid,noexec   0 0
```

merci

donald

----------

## bouleetbil

salut,

Alors de quelle manière a été compilé le noyau ? (genkernel ou manuel)

Comment a été créé le lanceur ? 

Normalement pour isolinux : 

```

# mkisofs -J -R -l -V "Lanceur" -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4  -c livecd -o /tmp/live.iso /mnt/cle/tmp/lanceur 

```

/mnt/cle/tmp/lanceur contient le répertoire /boot du disque USB

----------

## Bio

J'ai changé mon disque dur hier soir donc j'apporte ma petite pierre à l'édifice.

Le disque original était un 25G partitionné en 3 : /boot en ext2, swap et / en ext3

Son remplaçant un 500G. J'en ai profité pour refaire le plan de partitionnement et j'ai créé une dizaine de partitions en ext3, reiserfs et XFS selon leur usage.

J'ai tout d'abord booté sur le LiveCD. HDA étant le disque source et HDB le disque destination j'ai créé 2 répertoires /mnt/source et /mnt/dest. J'ai tout d'abord monté hda3 (/) sur /mnt/source puis hda1 (/boot) sur /mnt/source/boot. J'ai ensuite monté hdb3 (/) sur /mnt/dest et j'ai créé les répertoires pour chacune de mes partitions dans le répertoire /mnt/dest : boot, var, tmp, home etc... J'ai monté chacune des partitions HDB sur ces nouveaux répertoires.

Une fois ceci fait j'ai tout simplement exécuté la commande 

```

cp -ax /mnt/source/* /mnt/dest/

```

Une fois la copie terminée j'ai tout vérifié avec un petit df -h.

J'éteind le PC, je débranche le disque source et je redémarre sur le LiveCD, je remonte toutes les partitions de HDB qui est devenu HDA (puisque le premier disque est débranché) je me chroot dans l'environnement, j'édite mon fstab pour qu'il match le nouveau plan de partitions et je réinstall grub...

Je reboot et tout fonctionne.

PS : si comme moi en changeant de disque vous modifiez votre plan de partitionnement et en profitez pour changer vos file systems, n'oubliez surtout pas de vérifier que votre kernel supporte les nouveaux FS utilisés, et si ce n'est pas le cas recompilez le avec les bonnes options avant d'effectuer la copie de disque.

----------

