GNU/Linux >> Belajar Linux >  >> Linux

Menyalin struktur partisi hard drive

Apakah ada cara untuk mengganti nama sda5 menjadi sda4?

Yup {dan itulah mengapa ada jawaban panjang di bawah pertanyaan ini}

Saya mengambil flashdisk USB saya /dev/sdc sebagai contoh. Ubah sesuai kasus Anda

Kenali terlebih dahulu drive Anda :{Hanya untuk memeriksa apakah Anda menggunakan disk yang diinginkan }

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 berpisah -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

Catatan

  • Pastikan semua partisi dilepas selama proses pengeditan tabel partisi.
  • Tidak ada aplikasi yang mengakses disk / mengubah isinya.

Ketahui alat kerja Anda - sfdisk

Dari halaman manual

sfdisk adalah alat berorientasi skrip untuk mempartisi perangkat blok apa pun.

Ingin detail lebih lanjut ??

Jalankan :man sfdisk

Coba alat ini di drive yang diinginkan

sfdisk -d /dev/sdc

Jika /dev/sdc adalah disk target;

Cadangkan tabel partisi terlebih dahulu sdc.bak

sfdisk -d /dev/sdc > sdc.bak

Dapatkan sendiri copy pekerjaan - sdc.new

cp sdc.bak sdc.new

Kotor tangan Anda

Buka sdc.new di editor favorit Anda

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

Perhatikan urutan partisi

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

Sekarang saya ingin urutan partisi menjadi seperti ini

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

Singkatnya, perubahan yang saya perlukan :

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

Edit sdc.new yang sesuai

Catatan-

  • Jangan ubah nomor apa pun kecuali nomor partisi. Saya yakin Anda tahu alasannya.

sdc.baru

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

Tulis tabel partisi kembali

sfdisk /dev/sdc < sdc.new

Contoh Keluaran :

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.

Saatnya memeriksa ulang

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 berpisah -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

Jika terjadi kekacauan, pulihkan dari tabel partisi cadangan sdc.bak -

sfdisk /dev/sdc < sdc.bak

Saya dapat membantu sebagian dari ini.

Jika disk menggunakan tabel partisi MBR, maka harus menggunakan partisi extended seperti yang Anda duga karena MBR hanya dapat mendukung empat partisi utama. Inilah salah satu alasan tabel partisi GPT disukai. Mereka tidak memiliki batasan itu. Mereka juga mendukung partisi yang lebih besar.

Saat Linux melihat disk drive, ia menetapkan perangkat ke setiap partisi yang ditemukan secara berurutan di drive. Jika drive itu adalah drive pertama yang dilihatnya, drive tersebut akan memanggilnya /dev/sda dan partisi di dalamnya akan ditetapkan dimulai dengan /dev/sda1. Jadi Anda tidak dapat mengganti nama ini.

Sebaiknya jangan mengandalkan nama perangkat untuk jenis masalah yang Anda hadapi. Kebanyakan orang menggunakan UUID partisi untuk merujuknya yang merupakan peningkatan besar. Saya melangkah lebih jauh dan menggunakan label partisi yang unik, dapat dibaca manusia/bermakna untuk merujuk ke partisi. Jika Anda memiliki banyak drive, Anda tidak dapat menjamin bahwa drive tersebut akan dikenali dalam urutan yang sama pada setiap boot, sehingga perangkat yang pernah menjadi /dev/sdb di satu waktu mungkin menjadi /dev/sdc di lain waktu. Ini menjadi lebih buruk ketika Anda memiliki disk yang dapat dilepas yang bahkan tidak mendapatkan file perangkat sampai terpasang secara fisik ke sistem. UUID lebih invarian, tetapi juga akan berubah jika Anda mengubah ukuran atau memindahkan partisi. Label tidak diubah, tetapi bergantung pada Anda untuk menamainya secara unik.

Saya tidak tahu mengapa /dev/sda4 dilewati - terutama jika swap sudah ditetapkan ke /dev/sda2. Saya tidak tahu cara memperbaikinya. Jika Anda melihat drive baru, seharusnya ada "sesuatu" di mana /dev/sda4 seharusnya berada. Mungkin /dev/sda3 mengisi sisa disk, tetapi meskipun demikian, saya akan berpikir /dev/sda4 akan tetap menjadi partisi tambahan pertama di dalamnya. Atau, mungkin sebaliknya, itu tidak mengisi sisa disk sehingga /dev/sd4 dicadangkan untuk ruang setelah seluruh /dev/sd3 perluasan partisi.

Sebagai solusi yang memungkinkan, jika Anda memiliki akses ke komputer lain, Anda dapat membuat drive baru di atasnya, mendapatkan UUID atau label dari semua partisi baru, lalu menjalankan semua skrip Anda melalui sed untuk mengubah semua referensi perangkat untuk menggunakan UUID atau label. Anda bahkan dapat beralih ke skema partisi GPT jika Anda mau.


Linux
  1. Pemulihan Data Hard Drive Sederhana

  2. Menemukan Ukuran Sektor Dari Sebuah Partisi?

  3. Mengapa Nomor Drive/partisi Masih Digunakan?

  1. Cara mengisi hard drive di Linux

  2. Bagaimana cara mencegah pengguna menyalin file ke hard drive lain?

  3. Hapus 1MB terakhir dari Hard drive

  1. Berbagai Metode untuk Memasang Drive di Linux?

  2. Perbedaan Antara Volume, Partisi, dan Drive?

  3. Bagaimana cara menginstal GRUB di drive baru?