GNU/Linux >> Znalost Linux >  >> Linux

Kopírování struktury oddílu pevného disku

Existuje způsob, jak přejmenovat sda5 na sda4?

Ano {a proto existuje dlouhá odpověď pod touto otázkou}

Jako příklad beru svůj USB pendrive /dev/sdc. Podle toho upravte pro váš případ

Nejprve zjistěte svůj disk:{Jen pro kontrolu, zda používáte požadovaný disk }

sudo fdisk -l /dev/sdc

Disk /dev/sdc: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Cruzer Blade    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xba104c33

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc2        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc3       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc4       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

sudo sfdisk -d /dev/sdc

label: dos
label-id: 0xba104c33
device: /dev/sdc
unit: sectors
sector-size: 512

/dev/sdc1 : start=        2048, size=     3424256, type=83
/dev/sdc2 : start=     3426304, size=     9472000, type=83
/dev/sdc3 : start=    12898304, size=     7229440, type=b
/dev/sdc4 : start=    20127744, size=     7249920, type=5
/dev/sdc5 : start=    20129792, size=     2103296, type=83

sudo parted -l /dev/sdc

Model: SanDisk Cruzer Blade (scsi)
Disk /dev/sdc: 15.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  1754MB  1753MB  primary   ext4
 2      1754MB  6604MB  4850MB  primary   btrfs
 3      6604MB  10.3GB  3701MB  primary   fat32
 4      10.3GB  14.0GB  3712MB  extended
 5      10.3GB  11.4GB  1077MB  logical   ext2

Poznámka

  • Ujistěte se, že všechny diskové oddíly byly během procesu úpravy tabulky oddílů odpojeny.
  • Žádné aplikace nemají přístup k disku / neupravují jeho obsah.

Poznejte svůj pracovní nástroj – sfdisk

Z manuálové stránky

sfdisk je skriptově orientovaný nástroj pro rozdělení libovolného blokového zařízení.

Chcete více podrobností?

Spustit:man sfdisk

Vyzkoušejte nástroj na požadované jednotce

sfdisk -d /dev/sdc

Pokud /dev/sdc je cílový disk;

Nejprve zazálohujte tabulku oddílů sdc.bak

sfdisk -d /dev/sdc > sdc.bak

Pořiďte si pracovní kopii – sdc.new

cp sdc.bak sdc.new

Ušpinit si ruce

Otevřete sdc.new ve vašem oblíbeném editoru

label: dos
label-id: 0xba104c33
device: /dev/sdc
unit: sectors
sector-size: 512

/dev/sdc1 : start=        2048, size=     3424256, type=83
/dev/sdc2 : start=     3426304, size=     9472000, type=83
/dev/sdc3 : start=    12898304, size=     7229440, type=b
/dev/sdc4 : start=    20127744, size=     7249920, type=5
/dev/sdc5 : start=    20129792, size=     2103296, type=83

Všimněte si pořadí oddílů

/dev/sdc1
/dev/sdc2
/dev/sdc3
/dev/sdc4
/dev/sdc5

Nyní chci, aby sekvence oddílů byla takto

/dev/sdc3
/dev/sdc4
/dev/sdc1
/dev/sdc2
/dev/sdc5

Ve zkratce mé požadované změny:

/dev/sdc1 ------------> /dev/sdc3
/dev/sdc2 ------------> /dev/sdc4
/dev/sdc3 ------------> /dev/sdc1
/dev/sdc4 ------------> /dev/sdc2
/dev/sdc5 ------------> /dev/sdc5

Upravit sdc.new podle toho

Poznámka-

  • Neměňte žádná čísla kromě čísel oddílů. Jsem si jistý, že víte proč.

sdc.new

label: dos
label-id: 0xba104c33
device: /dev/sdc
unit: sectors
sector-size: 512

/dev/sdc3 : start=        2048, size=     3424256, type=83
/dev/sdc4 : start=     3426304, size=     9472000, type=83
/dev/sdc1 : start=    12898304, size=     7229440, type=b
/dev/sdc2 : start=    20127744, size=     7249920, type=5
/dev/sdc5 : start=    20129792, size=     2103296, type=83

Zapište tabulku oddílů zpět

sfdisk /dev/sdc < sdc.new

Ukázkový výstup:

Checking that no-one is using this disk right now ... OK

Disk /dev/sdc: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Cruzer Blade    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xba104c33

Old situation:

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc2        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc3       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc4       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xba104c33.
/dev/sdc1: Created a new partition 3 of type 'Linux' and of size 1.6 GiB.
Partition #3 contains a ext4 signature.
/dev/sdc4: Created a new partition 4 of type 'Linux' and of size 4.5 GiB.
Partition #4 contains a btrfs signature.
/dev/sdc5: Created a new partition 1 of type 'W95 FAT32' and of size 3.4 GiB.
Partition #1 contains a vfat signature.
/dev/sdc2: Created a new partition 2 of type 'Extended' and of size 3.5 GiB.
/dev/sdc3: Created a new partition 5 of type 'Linux' and of size 1 GiB.
Partition #5 contains a ext2 signature.
/dev/sdc6: Done.

New situation:
Disklabel type: dos
Disk identifier: 0xba104c33

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc2       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc3           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc4        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

Partition table entries are not in disk order.

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Čas na křížovou kontrolu

sudo fdisk -l /dev/sdc

Disk /dev/sdc: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Cruzer Blade    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xba104c33

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc2       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc3           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc4        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

Partition table entries are not in disk order.

sudo parted -l /dev/sdc

Model: SanDisk Cruzer Blade (scsi)
Disk /dev/sdc: 15.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 3      1049kB  1754MB  1753MB  primary   ext4
 4      1754MB  6604MB  4850MB  primary   btrfs
 1      6604MB  10.3GB  3701MB  primary   fat32
 2      10.3GB  14.0GB  3712MB  extended
 5      10.3GB  11.4GB  1077MB  logical   ext2

V případě, že se něco pokazí, obnovte zálohu ze záložní tabulky oddílů sdc.bak -

sfdisk /dev/sdc < sdc.bak

Mohu pomoci s částmi tohoto.

Pokud disk používá tabulku oddílů MBR, musí podle vašeho podezření použít rozšířený oddíl, protože MBR může podporovat pouze čtyři primární oddíly. To je jeden z důvodů, proč jsou preferovány tabulky oddílů GPT. To omezení nemají. Podporují také větší oddíly.

Když se Linux podívá na diskovou jednotku, přiřadí zařízení postupně ke každému oddílu, který na disku najde. Pokud je tato jednotka první jednotkou, kterou uvidí, bude ji volat /dev/sda a oddíly na ní budou přiřazeny počínaje /dev/sda1. Nemůžete je tedy přejmenovat.

Je dobrým zvykem nespoléhat se na názvy zařízení přesně pro ten typ problémů, se kterými se setkáváte. Většina lidí používá k odkazování na oddíly UUID, což je velké zlepšení. Jdu ještě o krok dále a k odkazování na oddíly používám jedinečné, člověkem čitelné/smysluplné štítky oddílů. Pokud máte více disků, nemůžete zaručit, že budou rozpoznány ve stejném pořadí při každém spouštění, takže zařízení, které bylo jednou /dev/sdb, může být jindy /dev/sdc. Je to ještě horší, když máte vyměnitelné disky, které ani nezískají soubor zařízení, dokud nejsou fyzicky připojeny k systému. UUID jsou více invariantní, ale změní se také, pokud změníte velikost nebo přesunete oddíl. Štítky se neupravují, ale spoléháme na to, že je pojmenujete jedinečně.

Nevím, proč se /dev/sda4 přeskakuje - zvláště pokud je swap již přiřazen k /dev/sda2. Nevím, jak to opravit. Pokud se podíváte na nový disk, mělo by tam být „něco“, kde má být /dev/sda4. Možná, že /dev/sda3 zaplní zbytek disku, ale i kdyby ano, myslím, že /dev/sda4 by byl stále prvním rozšířeným oddílem v něm. Nebo, možná naopak, nezaplní zbytek disku a tak je /dev/sd4 rezervováno pro místo za celým rozšířeným oddílem /dev/sd3.

Jako možné řešení, pokud máte přístup k jinému počítači, můžete na něm sestavit nový disk, získat UUID nebo štítky všech nových oddílů a poté spustit všechny své skripty přes sed, abyste změnili všechny odkazy na zařízení tak, aby používala UUID nebo štítky. Pokud byste chtěli, můžete dokonce přejít na schéma rozdělení GPT.


Linux
  1. Jednoduchá obnova dat z pevného disku

  2. Různé metody připojení disku v Linuxu?

  3. Zjištění velikosti sektoru oddílu?

  1. Proč se stále používá číslo disku/diskového oddílu?

  2. Připojit /tmp a /home k samostatnému pevnému disku?

  3. Jak zkontrolovat stav pevného disku

  1. Jak zaplnit pevný disk v linuxu

  2. Jak mohu zabránit uživateli v kopírování souborů na jiný pevný disk?

  3. Jak vytvořím nové oddíly a naformátuji pevný disk na části?