sda5 の名前を sda4 に変更する方法はありますか?
うん {それで、この質問の下に長い回答が存在するのです}
私の USB ペンドライブ /dev/sdc を例に取っています。状況に応じて変更してください
最初にドライブを確認してください:{目的のディスクを使用しているかどうかを確認するため }
<ブロック引用>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
注意
- パーティション テーブルの編集プロセス中に、すべてのパーティションがアンマウントされていることを確認してください。
- ディスクにアクセスしたり、その内容を変更したりするアプリケーションはありません。
作業ツールを知る - sfdisk
マンページより
sfdisk は、任意のブロック デバイスを分割するためのスクリプト指向のツールです。
詳細を知りたい??
実行:man sfdisk
目的のドライブでツールを試す
sfdisk -d /dev/sdc
/dev/sdc
の場合 ターゲットディスクです;
最初にパーティション テーブルをバックアップします sdc.bak
sfdisk -d /dev/sdc > sdc.bak
作業コピーを取得します - sdc.new
cp sdc.bak sdc.new
手を汚そう
sdc.new
を開く お気に入りのエディターで
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
パーティションの順序に注意してください
/dev/sdc1
/dev/sdc2
/dev/sdc3
/dev/sdc4
/dev/sdc5
パーティション シーケンスを次のようにしたい
/dev/sdc3
/dev/sdc4
/dev/sdc1
/dev/sdc2
/dev/sdc5
要するに、私の必要な変更:
/dev/sdc1 ------------> /dev/sdc3
/dev/sdc2 ------------> /dev/sdc4
/dev/sdc3 ------------> /dev/sdc1
/dev/sdc4 ------------> /dev/sdc2
/dev/sdc5 ------------> /dev/sdc5
sdc.new
を編集 それに応じて
注-
- パーティション番号以外の番号は変更しないでください。理由はご存知だと思います。
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
パーティションテーブルを書き戻す
sfdisk /dev/sdc < sdc.new
サンプル出力:
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.
クロスチェックの時間
<ブロック引用>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
バックアップ パーティション テーブル sdc.bak
からの復元がうまくいかない場合 -
sfdisk /dev/sdc < sdc.bak
これの一部を手伝うことができます。
ディスクが MBR パーティション テーブルを使用している場合、MBR は 4 つのプライマリ パーティションしかサポートできないため、ご想像のとおり、拡張パーティションを使用する必要があります。これが、GPT パーティション テーブルが好まれる理由の 1 つです。彼らにはその制限がありません。また、より大きなパーティションもサポートします。
Linux はディスク ドライブを調べると、ドライブ上で見つかった各パーティションにデバイスを順番に割り当てます。そのドライブが最初に検出されたドライブである場合、それは /dev/sda と呼ばれ、その上のパーティションは /dev/sda1 から始まるように割り当てられます。したがって、これらの名前を変更することはできません。
発生している問題の種類をデバイス名に依存しないことをお勧めします。ほとんどの人は、パーティションの UUID を使用してそれらを参照していますが、これは大きな改善です。私はさらに一歩進んで、一意で人間が読める意味のあるパーティション ラベルを使用してパーティションを参照します。複数のドライブがある場合、起動のたびにそれらが同じ順序で認識されるとは限りません。そのため、一度は /dev/sdb だったデバイスが、別のときには /dev/sdc になる可能性があります。システムに物理的に接続されるまでデバイス ファイルを取得できないリムーバブル ディスクがあると、状況はさらに悪化します。 UUID はより不変ですが、パーティションのサイズを変更したり移動したりすると変更されます。ラベルは変更されませんが、独自の名前を付ける必要があります。
/dev/sda4 がスキップされる理由がわかりません - 特にスワップがすでに /dev/sda2 に割り当てられている場合。それを修正する方法がわかりません。新しいドライブを見ると、/dev/sda4 があるはずの場所に「何か」があるはずです。 /dev/sda3 がディスクの残りの部分をいっぱいにするかもしれませんが、そうであったとしても、/dev/sda4 は依然としてその中の最初の拡張パーティションになると思います。または、逆に、ディスクの残りがいっぱいにならないため、/dev/sd3 拡張パーティション全体の後のスペースに /dev/sd4 が予約されています。
考えられる回避策として、別のコンピューターにアクセスできる場合は、その上に新しいドライブを構築し、すべての新しいパーティションの UUID またはラベルを取得してから、sed を介してすべてのスクリプトを実行し、すべてのデバイス参照を UUID を使用するように変更するか、ラベル。必要に応じて、GPT パーティショニング スキームに切り替えることもできます。