====== Introduc ====== Liens: * dd : http://wiki.linuxquestions.org/wiki/Dd ====== monter une partition d'une image disk ====== ===== kpartx ===== Soit un disk: # fdisk -l /dev/vgraid1/win2k_test Disk /dev/vgraid1/win2k_test: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x6a4a6e04 Device Boot Start End Blocks Id System /dev/vgraid1/win2k_test1 * 1 1304 10474348+ 7 HPFS/NTFS On aimerait bien mounter “win2k_test1” … Lister les partitions existentes: # kpartx -l /dev/vgraid1/win2k_test vgraid1-win2k_test1 : 0 20948697 /dev/vgraid1/win2k_test 63 Ajouter les partitions a son systeme: # kpartx -a /dev/vgraid1/win2k_test Et voila les partitions dans /dev/mapper/… : brw-rw---- 1 root disk 253, 27 mai 17 20:44 vgraid1-win2k_test brw-rw---- 1 root disk 253, 28 mai 18 11:51 vgraid1-win2k_test1 Maintenant, on peut mounter comme d'hab: # mount -o loop /dev/mapper/vgraid1-win2k_test1 /mnt/win aprés utilisation, a la fin, on démounter: # umount /mnt/win Et puis: # kpartx -d /dev/vgraid1/win2k_test ===== a la main ===== A la main, on aurait fait comme cela: # fdisk -ul eeePC_backup_2009-09-20.dd You must set cylinders. You can do this from the extra functions menu. Disk eeePC_backup_2009-09-20.dd: 0 MB, 0 bytes 255 heads, 63 sectors/track, 0 cylinders, total 0 sectors Units = sectors of 1 * 512 = 512 bytes Disk identifier: 0x3c173c16 Device Boot Start End Blocks Id System eeePC_backup_2009-09-20.dd1 * 63 192779 96358+ 83 Linux eeePC_backup_2009-09-20.dd2 192780 7807589 3807405 83 Linux Récupérer l'information de la partition visé dans la colonne "Start" ("Debut"): 192780 Notons bien que "Units = sectors of 1 * 512 = 512 bytes". Ainsi, nous avons une position relativement au debut: 512*192780 ... qu'on utilise pour monter cette partition: # mount -o loop,offset=$((512*192780)) eeePC_backup_2009-09-20.dd /mnt/test et voila, la partition est visible dans **''/mnt/test''** ;) ====== Undelete ====== Recuperer des fichiers effacés sur une partition ext3:\\ Lien: *http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html *http://www.linux.com/feature/141074 *http://www.cure.nom.fr/blog/archives/176-Recuperation-de-fichiers-sur-ext3.html (pas essayé) ====== GRUB ====== ===== GRUB 2 ===== Liens: *http://www.linuxpedia.fr/doku.php/expert/grub2 *http://ubuntuforums.org/showthread.php?t=1195275 ==== RAID 1 et boot ==== Si on a un RAID 1 (avec mdadm), GRUB plante si on essaye de demarrer sur le 2ieme disk. La solution: Forcer le mode "console" ajoutant (ou décommentant) la ligne: GRUB_TERMINAL=console Et voila. ==== default ==== Choisir l'entrée par defaut, en modifiant le fichier **''/etc/default/grub''** : GRUB_DEFAULT=4 Et puis: # update-grub2 ==== lvm/xen ==== Virer les entrées "parasites" , comme des partitions "lvm/xen". Modifier le fichier **''/etc/default/grub''** et ajouter: GRUB_DISABLE_OS_PROBER="true" Et puis: # update-grub2 ==== vga ==== "vga=" est obsolete! Il y a 2 mode graphique géré par grub: #la resolution du menu grub #la resolution de la console linux, aprés le passage par le menu grub Pour connaitre les résolutions possibles: #reboot sur le menu grub #taper la touche "c" pour entrer dans le shell #entrer "vbeinfo" et on voit la liste... Exemple: 640x400x16 800x600x32 1024x768x32 1280x1024x32 Rien de plus que "1280x..." dommage :-( Retour sous linux, il faut modifier le fichier **''/etc/default/grub''** et faire, par exemple: # TJ ------------- GRUB_GFXMODE=800x600 GRUB_GFXPAYLOAD_LINUX=1280x1024x32 # ---------------- *"gfxmode" est la resolution du menu grub. *"gfxpayload" est la resolution sous linux # update-grub # reboot ==== device.map ==== Lien: http://www.cepcasa.info/blog/?p=193 Il n'existe plus, en theorie. En pratique, pour ajouter ou retirer un disk du "pool grub", il faut faire: # dpkg-reconfigure grub-pc Et suivre et modifier des trucs... Voila. ===== GRUB 1 ===== ==== Ecrasement MBR et SuperGrub ==== Aprés installation de XP, qui a joyeusement écrasé la MBR, je n'ai pas reussi a reinstaller GRUB par les methodes manuelles. J'ai utilisé le CD bootable **''supergrub''** qui est ici:\\ http://supergrub.forjamari.linex.org ==== Grub et Splash ==== # apt-get install grub-splashimages Ensuite, editer grub afin d'ajouter: splashimage=/grub/splashimages/firework.xpm.gz On peut aussi essayé le logiciel ''grime'' ou ''grubconf''. * http://grime.sourceforge.net * http://grubconf.sourceforge.net ====== Deplacer une partition ====== Preambule: Le CD bootable GParted est trés bien pour cela aussi. Aprés avoir agrandi mon disk, j'ai voulu deplacer la partition linux a la fin... Ca ressemblait à ça: # fdisk -u -l Disque /dev/hda: 80.0 Go, 80026361856 octets 255 têtes, 63 secteurs/piste, 9729 cylindres, total 156301488 secteurs Unités = secteurs de 1 * 512 = 512 octets Périphérique Amorce Début Fin Blocs Id Système /dev/hda1 * 63 16771859 8385898+ 7 HPFS/NTFS /dev/hda2 16771860 37254734 10241437+ 5 Extended /dev/hda3 37254735 78172289 20458777+ 83 Linux /dev/hda4 78172290 80292869 1060290 82 Linux swap / Solaris /dev/hda5 16771923 37254734 10241406 7 HPFS/NTFS En clair, au dela des 40 Go (37254734+1), j'ai que du vide. On souhaite conserver l'ordre des partitions... c-a-d: le swap aprés la partition Linux. On va faire ça par étape: ===== Deplacer la partition Linux ===== En etat du disk: Le dernier secteur du disk est le numéro: 156301487 (la numérotation commence a 0) Il y a donc 156301488 secteurs en tout, soit: 156301488*512 = 80026361856 => 80026361856/1024^3 , soit 74 Go... La taille de la partition Linux est: (78172289-37254735)+1 = 40917555 , soit 19 Go La taille du swap est (etait): (80292869-78172290)+1 = 2120580 , soit 1 Go Donc, la nouvelle partition aura pour 1er secteur: 156301488-2120580-40917555 = 113263353 Et pour le swap: 113263353+40917555 = 154180908 En clair: | Fin du disk | 156301488 | | Swap dernier secteur | 156301487 | | Swap premier secteur | 154180908 | | Linux dernier secteur | 154180907 | | Linux premier secteur | 113263353 | | en dessous... | 113263352 | | Debut du disk | Notez qu'il peut être encore temps de decider d'agrandir ou reduire la taille de la partition SWAP. Ici, on part du principe qu'on veut avoir la même taille qu'avant. ==== Copier la partition Linux ==== Il faut d'abord booter sur un live cd, genre Kubuntu. Il y a trop de partition pour cela (en tout cas, **fdisk** refuse d'en ajouter une) donc on va d'abord supprimer le swap. # fdisk -u /dev/hda (d) delete (4) partition swap Ensuite, on cree une nouvelle partition Linux de la même taille que celle qu'on va copier, mais a la fin du disk. (n) (p) primary partition la partition aura le numero 4 First sector: 113263353 Last sector: 154180907 Maintenant on ecrit sur disk: (w) ecriture Et on sort: (q) On verifie que le systeme voit bien ce qu'on a fait (problème de synchro disk): # fdisk -u -l Ok... Maintenant on lance la copie et on va prendre un café: # dd if=/dev/hda3 of=/dev/hda4 Quelques minutes plus tard, on 2 partitions identique :-) Effacer la partition /dev/hda3 ! on en a plus besoin !\\ Il y a aussi beaucoup plus rapide avec: # dd if=/dev/hda3 of=/dev/hda4 bs=4k ==== Effacer la partition Linux hda3 ==== # fdisk -u /dev/hda (d) delete (3) partition hda3 Maintenant, il faut recreer le swap... ==== Creer le swap ==== Ce n'est pas indispensable, vous pouvez sauter cette etape si vous voulez booter sans swap... (c'est curieux non?) # fdisk -u /dev/hda (n) new (p) primary partition First sector: 154180908 Last sector: 156301487 La partition /dev/hda3 est créé ! Oups, les partitions sont inversés... pas de problème (x) Menu expert (f) fix order je sais pas quoi (p) print Et voila (r) retour au menu principal Marquer correcter le type de partition en SWAP: (t) toggle (4) choisir /dev/hda4 (82) pour swap C'est presque fini.\\ Revenir sous shell et faire: # mkswap -c /dev/hda4 ==== Un premier bilan ==== On a alors: # fdisk -u -l Périphérique Amorce Début Fin Blocs Id Système /dev/hda1 * 63 16771859 8385898+ 7 HPFS/NTFS /dev/hda2 16771860 113258249 48243195 5 Extended /dev/hda3 113263353 154180907 20458777+ 83 Linux /dev/hda4 154180908 156301487 1060290 82 Linux swap / Solaris /dev/hda5 16771923 37254734 10241406 7 HPFS/NTFS Maintenant, il faut un peu bidouiller les fichiers dans Linux.\\ Au final, ca m'a semblé inutile, mais il faut verifier cela. ==== Mounter la partition Linux ==== # mkdir /mnt/a # mount /dev/hda3 /mnt/a === Le mystère UUID === Avant de continuer, il faut que vous sachiez qu'Ubuntu a pris la mauvaise habitude de remplacer les **/dev/hdxxx** par leur equivalent UUID... parait que c'est top mieux. On voit la relation **/dev/hdxxx** vers UUID (ou l'inverse) dans: /dev/disk/by-uuid Avec ca, vous etes a la suite. === GRUB === Il faut que GRUB retrouve ses petits disk, donc on verifie que les UUID n'ont pas changé, dans le doute, on rajoute une entrée au menu (par exemple) en précisant que le disk **root** est **/dev/hda3** === fstab === Editer /mnt/a/etc/fstab Et verifier que les UUID des disks ne vont pas poser de problèmes, dans le doute, remplacer par: **/dev/hda3** et **/dev/hda4** là où c'est necessaire. ==== Reboot ==== On reboot... c'est beau... ca marche.... Enfin presque. Le SWAP a peut être besoin d'être remonté (ca m'est arrivé): D'abord est-ce qu'il existe: # free Swap est a 0 0 ??? Et aussi: # cat /proc/swaps ne renvoit rien... Donc, pas de swap: pas grave: # mkswap -c /dev/hda4 (ce qu'on a deja fait, mais bon...)\\ Si necessaire, verifier que le **/etc/fstab** reference bien le swap # swapon -a Ou bien: # swapon /dev/hda4 Si on est pas certain de **fstab** Et voila ? Ca devrait fonctionner. ===== Redimensionner les partitions NTFS ===== Pour resumé, rien ne fonctionnait... ni Qparted sous Kubuntu, ni resizentfs...\\ Et puis j'ai booté sur une image iso GParted-Clonezilla: http://gparted.sourceforge.net/livecd.php Et avec GParted , c'etait super facile. ====== Mounter un disk FreeBSD ====== (Enfin presque) # mount -r -t ufs -o ufstype=44bsd /dev/hda1 /mnt/a Par exemple... Ou essayer /dev/hda5 /dev/hda8 etc... Ou bien ca aussi: # mount -r -t ufs -o ufstype=ufs2 /dev/hda5 /mnt/a ====== Formater un disk ====== ===== partitionner ===== Utiliser **fdisk**. Par exemple: # fdisk /dev/hdb Et puis, effacer les partitions: > d Creer une nouvelle partition (linux): > n Et suivre les instructions...\\ On verifie l'etat des partitions (non encore sauvegardé): > p Et on ecrit: > w Et on sort: > q ===== Effacer tout un disk ===== C'est simple lorsqu'on le sait: # dd if=/dev/zero of=/dev/hdb Le disque est alors rempli de zero... (et on est bon pour re-creer les partitions !) Pour savoir ou en est **dd** dans son traitement: # kill -USR1 pid_du_dd (sur l'ecran du dd (ou screen)): 30536961+0 records in 30536961+0 records out 15634924032 bytes (16 GB) copied, 874.499 seconds, 17.9 MB/s ===== Effacer tout un disk, avec des données aleatoires !!!! ===== Trucs pour les espions: # dd if=/dev/urandom of=/dev/hdb J'ai juste un doute sur la vitesse du traitement... | :!: le plus simple, c'est de remplir de **zero** , car il n'est pas prouvé qu'on puisse recupérer des données d'un disk aprés ça | --