GNU/Linux >> Znalost Linux >  >> Linux

Změňte číslo oddílu z sda1 na sda2

Udělal jsem to jednodušším způsobem:

# sfdisk -d /dev/sdb > sdb.bkp

pro jistotu zanechte kopii

# cp sdb.bkp sdb.new 

nyní upravte sdb.new změnou POUZE pořadí řádků a čísel oddílů, jako v mém případě:

od

# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=  1026048, size=975747120, Id=83
/dev/sdb2 : start=     2048, size=   204800, Id=83
/dev/sdb3 : start=   206848, size=   819200, Id= b
/dev/sdb4 : start=        0, size=        0, Id= 0

do

# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=     2048, size=   204800, Id=83
/dev/sdb2 : start=   206848, size=   819200, Id= b
/dev/sdb3 : start=  1026048, size=975747120, Id=83
/dev/sdb4 : start=        0, size=        0, Id= 0

pak jej hodit zpět do tabulky rozdělení disku?

# sfdisk /dev/sdb < sdb.new

Moje posloupnost číslování byla narušena poté, co jsem zmenšil a posunul doprava jediný oddíl (sdb1), abych přidal dva menší oddíly na začátek disku pomocí gparted .

Pokud poslední příkaz nefunguje, jako v mém případě, změňte jej na:

# sfdisk --no-reread -f /dev/sdb < sdb.new

FYI, to je špatný nápad a můžeš přijít o všechno. Pokud to přesto chcete udělat, zde jsou kroky:

  1. Ne Udělej to. Pokud to nepomůže, pak:
  2. Použijte sfdisk tool:Nejprve vytvořte zálohu tabulky oddílů pomocí

    sfdisk -d /dev/sda > sda.out
    

    Pak jděte do toho:

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

    Uvidíte něco takového

    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 :
    

Nyní vás žádá o zadání nových podrobností pro oddíl 'sda1'. Takže zde musíte zadat čísla sda2. Takže sem vložím '6 1012' a stisknu Enter:

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

Nyní zkontrolujte pokud jsou čísla vytištěná po stisknutí klávesy Enter přesně stejné jako ty vytištěné dříve pro sda2. Pokud je to v pořádku, pokračujte v zadávání nových čísel pro sda2:

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

Tentokrát v mém případě stačilo zadat "0" - ale musíte se ujistit, že čísla nejsou zmatená ve vašem.

Dále pokračujte s ostatními oddíly stejným způsobem. Pokud jste se již dostali na konec disku, stačí stisknout Enter. Nakonec znovu zkontrolujte, zda jsou všechna čísla v pořádku a uložte tabulku oddílů (nebo ne). Pokud jste něco pokazili, podívejte se na man sfdisk a popis možností '-d', '-O' a '-I'.

Všimněte si také, že jakmile provedete šílené změny, možná budete muset spustit „synchronizaci“, aby se oddíly znovu načetly, než se je pokusíte připojit.


Všechna existující řešení vypadají velmi bezpečně, ale ve výsledku poměrně komplikovaně.

Chtěl jsem znovu objednat vše moje oddíly, aby byly v pořádku.

Pokud jste zkušenější, máte nepodstatná nebo zálohovaná data a rádi opravíte případné problémy, můžete zavést systém z Live CD a provést to takto:

sudo fdisk /dev/sdX

pak:

  • x pro vstup do expertního režimu
  • f opravit pořadí jednotek (možná i v případě potřeby ignorovat všechna varování)
  • r pro návrat do normálního režimu
  • w pro zápis změn na disk a ukončení

Další

Nepamatuji si přesné další kroky, protože jsem to udělal pouze jednou a znovu jsem to netestoval, ale protože jsem také přesouval instalaci, připojil jsem také oddíly a zkopíroval všechny soubory:

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

A pak získal ID oddílů:

sudo blkid

a aktualizoval následující, aby odrážely nové hodnoty UUID oddílů:

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

Poté jsem aktualizoval GRUB2:

sudo grub-install --root-directory=/mnt/sda5 /dev/sda

Linux
  1. Linux – Jak spustit oddíl Windows z příkazového řádku Grub?

  2. Ignoruje smyčka změnu proměnné z podskořápky na pozadí?

  3. Linux – změnit číslo oddílu z Sda1 na Sda2?

  1. Změnit zdroje softwaru z příkazového řádku?

  2. Změňte výchozí číslo portu serveru SSH

  3. Jak změnit výchozí jádro (zavedení ze starého jádra) v CentOS/RHEL 8

  1. Jak mohu omezit počet výsledků vrácených z grep?

  2. Jak mohu získat poslední číslo z řetězce v bash?

  3. Jak změnit kurzor terminálu z pole na řádek?