web-dev-qa-db-fra.com

Changez le numéro de la partition de SDA1 en SDA2

J'ai un disque avec deux partitions: SDA1 et SDA2. Je voudrais changer le nombre de SDA1 à SDA2 et SDA2 à SDA1.

C'est possible mais je ne me souviens pas de la procédure. I.e. Ma première partition sera SDA2 et la deuxième SDA1, donc j'ai besoin de spécifier une commande manuelle, pas une commande automatique comme dans FDISK -> x -> f.

Comment puis-je changer la commande? Les liens vers des manuels ou des tutoriels sont également les bienvenus.

Merci.

La raison: j'ai une application qui doit lire des données de SDA1, mais les données sont en SDA2. Changer le tableau de partition est la solution la plus rapide de ce problème. Le système n'est pas critique mais je ne veux pas garder le système arrêté trop de temps.

Mise à jour: La version FDISK de OPENBSD inclut cette fonctionnalité.

22
Rufo El Magufo

FYI, c'est une mauvaise idée et vous pouvez tout perdre. Si vous voulez toujours le faire, voici les étapes:

  1. Ne pas Faites-le. Si cela n'aide pas, alors:
  2. Utilisez l'outil sfdisk: Premièrement, faites une sauvegarde de la table de partition à l'aide de

    sfdisk -d /dev/sda > sda.out
    

    Ensuite, allez-y:

    sfdisk /dev/sda -O sda-partition-sectors.save
    

    Vous verrez quelque chose comme ça

    Checking that no-one is using this disk right now ...
    OK
    
    Disk /dev/sda: 1018 cylinders, 124 heads, 62 sectors/track
    Old situation:
    Units = cylinders of 3936256 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sda1          0+      5       6-     23063+  83  Linux
    /dev/sda2          6    1017    1012    3890128   83  Linux
    /dev/sda3          0       -       0          0    0  Empty
    /dev/sda4          0       -       0          0    0  Empty
    Input in the following format; absent fields get a default value.
    <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>
    Usually you only need to specify <start> and <size> (and perhaps <type>).
    
    /dev/sda1 :
    

Maintenant, il vous demande de donner les nouveaux détails de la partition "SDA1". Vous devez donc donner le nombre de SDA2 ici. Donc, je mets '6 1012' ici et appuyez sur Entrée:

    /dev/sda1 :6 1012
    /dev/sda1          6    1017    1012    3890128   83  Linux
    /dev/sda2 :

Maintenant Vérifiez Si les numéros imprimés après avoir appuyé sur Entrée sont exactement de la même manière que celles imprimées précédemment pour SDA2. Si tout va bien, continuez à donner les nouveaux numéros pour SDA2:

    /dev/sda2 :0
    /dev/sda2          0+      5       6-     23063+  83  Linux
    /dev/sda3 :

Cette fois, il suffisait d'entrer "0" dans mon cas - mais vous devez vous assurer que les chiffres ne sont pas gâchés dans la tienne.

Ensuite, continuez avec les autres partitions de la même manière. Si vous avez déjà atteint la fin du disque, appuyez sur Entrée suffit. Enfin, vérifiez à nouveau que tous les chiffres sont corrects et enregistrez la table de partition (ou non). Si vous avez gâché quelque chose, regardez man sfdisk et les descriptions des options '-D' -D ',' -o 'et' -i '.

Notez également qu'une fois que vous avez apporté les modifications folles, vous devrez peut-être exécuter "Sync" afin que les partitions soient relues avant d'essayer de les monter.

18
rozcietrzewiacz

Vous devriez réécrire la table de partition du lecteur pour inverser la commande, ce qui est un peu risqué. Si j'étais vous, je corrigerais le problème qui vous donne envie d'échanger l'ordre des noms de périphérique et de laisser les partitions seules.

Par exemple, si vous avez un script qui doit fonctionner sur les deux machines et que vous souhaitez accéder au même appareil, créez un lien dans un répertoire différent (non/dev) qui est le même nom sur les deux serveurs, mais des liens vers/Dev/SDA1 sur un, et/dev/SDA2 de l'autre.

Vous pouvez utiliser n'importe quel éditeur de partition (fdisk ou cfdisk) pour éditer les partitions, mais vous devez écraser les paramètres actuels ou prendre une photo de l'écran. Supprimez les deux partitions, puis créez-les manuellement, spécifiant toutes les valeurs correctes. Démarrez le système avec un LiveCD pour le faire.

3
Michael Dillon

Toutes les solutions existantes sont très sûres, mais aussi compliquées.

Je voulais réorganiser Tout Mes partitions afin qu'ils soient en ordre.

Si vous êtes plus expérimenté, avez des données non essentielles ou sauvegardées et êtes heureux de résoudre les problèmes de résultat, vous pouvez démarrer à partir d'un CD en direct et le faire de cette façon :

Sudo fdisk /dev/sdX

alors:

  • x pour entrer en mode expert
  • f _ pour corriger l'ordre du lecteur (éventuellement i pour ignorer les avertissements si nécessaire)
  • r pour revenir en mode normal
  • w pour écrire des modifications sur le disque et quitter

Supplémentaire

Je ne me souviens pas des prochaines étapes exactement comme je l'ai fait une seule fois et je n'ai pas retiré, mais comme je déplace également l'installation, j'ai également monté les partitions et copié tous les fichiers :

Sudo mkdir /mnt/sda4
Sudo mount /dev/sda4 /mnt/sda4
Sudo mkdir /mnt/sda5
Sudo mount /dev/sda5 /mnt/sda5
date;cp -a /mnt/sda4/* /mnt/sda5;date

Puis a obtenu les identifiants de la partition:

Sudo blkid

et mis à jour les éléments suivants pour refléter les nouvelles valeurs UUID de partitions:

  • /mnt/sda5/boot/grub/grub.cfg
  • /mnt/sda5/etc/fstab

J'ai alors Mise à jour grub2 :

Sudo grub-install --root-directory=/mnt/sda5 /dev/sda
3
SharpC

Tout d'abord, tout est un exercice pour faire de votre mieux pour casser les choses, mais de toute façon, voici une autre approche que vous pouvez essayer.

Remarque: vous n'avez pas mentionné où vous démarrez, et cette solution, et pas d'autre à l'époque où je vais écrire cela, vous adressez à ce que vous devriez faire pour obtenir Lilo ou GRUB Pour fonctionner correctement.

/dev/sda1 et /dev/sda2 sont des dispositifs de blocage (8,1) et (8,2). Vous pouvez essayer d'utiliser mknod pour simplement échanger les deux.

telinit 1
(...)
rm -f /dev/sda{1,2}; mknod /dev/sda1 b 8 2; mknod /dev/sda2 b 8 1
chmod 640 /dev/sda{1,2}; chown root:disk /dev/sda{1,2}
reboot

N'oubliez pas que cet échange ne se produira qu'après votre partition contenant /dev/ est chargé lors du démarrage, de sorte que le initrd _ aura toujours les "corrects", sauf si vous y réparez là aussi (exercice pour le lecteur - mkinitrd copier l'étrangeté?) Cela n'adresse pas non plus aux contextes SELINUX.

2
Aaron D. Marasco

- Modification des partitions/Dev/SDA3 à/dev/SDA2 dans le terminal en tant que root -

  1. Table de partition de sauvegarde

    sFDISK -D/DEV/SDA> SDA.BKP

  2. Copier la sauvegarde de la table de partition sur la nouvelle table de partition

    cp sda.bkp sda.new

  3. Modifier la nouvelle table de partition

    gedit sda.new

enter image description here

Sauvegarder et fermer

  1. Réinstallez la nouvelle table de partition

    sFDISK --NO-RERAD -F/Dev/SDA <SDA.NEW

  2. Redémarrer l'ordinateur

0
user264681