GNU/Linux >> Linux の 問題 >  >> Linux

パーティションの番号を sda1 から sda2 に変更します

私はこれをより簡単な方法で行いました:

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

安全のためにコピーを残す

# cp sdb.bkp sdb.new 

私の場合のように、行の順序とパーティション番号のみを変更して、sdb.new を編集します。

から

# 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

# 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

その後、ディスク パーティション テーブルに戻しますか?

# sfdisk /dev/sdb < sdb.new

gparted を使用してディスクの先頭に 2 つの小さなパーティションを追加するために唯一のパーティション (sdb1) を縮小して右にシフトした後、番号付けシーケンスが壊れました。 .

私の場合のように、最後のコマンドが機能しない場合は、次のように変更します。

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

参考までに、<​​strong>それは悪い考えです そして、あなたはすべてを失う可能性があります。それでもやりたい場合は、次の手順を実行してください:

<オール>
  • しない やれ。これで問題が解決しない場合:
  • sfdisk を使用 tool:まず、

    を使用してパーティション テーブルのバックアップを作成します。
    sfdisk -d /dev/sda > sda.out
    

    それでは、やってみましょう:

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

    このようなものが表示されます

    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 :
    
  • ここで、「sda1」パーティションの新しい詳細を提供するよう求めています。したがって、ここで sda2 の番号を指定する必要があります。そこで、ここに「6 1012」と入力して Enter キーを押します:

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

    今すぐチェック Enter を押した後に表示された数値が正確である場合 sda2 について以前に印刷されたものと同じです。よろしければ、sda2 の新しい番号を指定してください:

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

    今回は私の場合は「0」を入力するだけで十分でしたが、数字が間違っていないことを確認する必要があります。

    次に、同じ方法で他のパーティションを続行します。すでにディスクの終わりに達している場合は、Enter キーを押すだけで十分です。最後に、すべての数値に問題がないことを再度確認し、パーティション テーブルを保存します (または保存しません)。何かを台無しにした場合は、man sfdisk を見てください。 「-d」、「-O」、「-I」オプションの説明。

    また、クレイジーな変更を行ったら、'sync' を実行して、マウントする前にパーティションを再読み込みする必要があるかもしれないことに注意してください。


    既存のソリューションはすべて非常に安全に見えますが、結果として非常に複雑です。

    すべてを並べ替えたかった

    経験が豊富で、重要でないデータまたはバックアップ データがあり、結果として問題があれば喜んで修正する場合は、Live CD から起動して、次の方法で実行できます。

    sudo fdisk /dev/sdX
    

    次に:

    • x エキスパートモードに入る
    • f ドライブの順序を修正します (おそらく i 必要に応じて警告を無視します)
    • r 通常モードに戻る
    • w 変更をディスクに書き込んで終了する

    追加

    一度だけ実行しただけで再テストしていないため、正確な次の手順は思い出せませんが、インストールを移動していたので、パーティションもマウントし、すべてのファイルをコピーしました:

    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
    

    そして、パーティション ID を取得しました:

    sudo blkid
    

    新しいパーティションの UUID 値を反映するために以下を更新しました:

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

    次に、GRUB2 を更新しました:

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

    Linux
    1. Linux – GrubコマンドラインからWindowsパーティションを起動する方法は?

    2. ループはバックグラウンドのサブシェルからの変数変換を無視しますか?

    3. コマンドラインからソフトウェアソースを変更しますか?

    1. Bash履歴に保存されるコマンドの数を変更する方法

    2. Ubuntu でホスト名を変更する方法

    3. bashで文字列から最後の数字を取得するにはどうすればよいですか?

    1. Linux –パーティションの数をSda1からSda2に変更しますか?

    2. ターミナルカーソルをボックスから行に変更するには?

    3. コマンド ラインからパーティション ラベルを一覧表示する