私のディスクには、sda1とsda2という2つのパーティションがあります。 sda1の数をsda2に、sda2の数をsda1に変更したいと思います。
可能は一点過程が覚えていませんね。つまり、最初のパーティションはsda2で、2番目のパーティションはsda1なので、fdisk -> x -> fなどの自動順序ではなく手動順序を指定する必要があります。
注文をどのように変更できますか?マニュアルやチュートリアルへのリンクも歓迎します。
ありがとうございます。
理由:sda1からデータを読み取る必要があるアプリケーションがあり、データはsda2にあります。この問題を解決する最速の方法は、パーティションテーブルを変更することです。システムは重要ではありませんが、システムがあまりにも長い間ダウンすることを望まない。
修正する:OpenBSDのfdiskバージョンにはこの機能が含まれています。
答え1
私はもう少し簡単な方法で試しました。
# sfdisk --dump /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
ディスクの先頭に2つの小さなパーティションを追加するために、唯一のパーティション(sdb1)を縮小して右に移動した後、番号付け順序が壊れていますgparted
。
最後のコマンドが機能しない場合(私の場合のように)、次のように変更してください。
# sfdisk --no-reread --force /dev/sdb < sdb.new
答え2
参考までに、これは悪い考えです。すべてを失う可能性があります。それでもこれを行うには、次の手順に従います。
- いいえします。役に立たない場合は、次の手順を実行してください。
ツールを使用するには、
sfdisk
まず次のコマンドを使用してパーティションテーブルをバックアップします。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」オプションの説明を確認してください。
また、途方もない変更を行った後、パーティションをマウントする前に「同期」を実行してパーティションを再度読み取る必要があります。
答え3
既存のすべてのソリューションは非常に安全なように見えますが、非常に複雑です。
再注文したいみんな私のパーティションはクリーンアップされています。
経験豊富で不要なデータやバックアップデータがあり、問題を解決したい場合は、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
答え4
順序を変更するには、ドライブパーティションテーブルを再作成する必要がありますが、これは少し危険です。私があなたなら、デバイス名の順序を変更してパーティションを維持したい問題を解決します。
たとえば、2台のコンピュータで実行する必要があるスクリプトがあり、同じデバイスにアクセスしたい場合は、両方のサーバーで同じ名前の別のディレクトリ(/ devではない)にリンクを作成します。 / 1つはdev / sda1、もう1つは/ dev / sda2です。
パーティションエディタ(fdisk
またはcfdisk
)を使用してパーティションを編集できますが、現在の設定を記録するか、画面の写真を撮る必要があります。両方のパーティションを削除し、正しい値を指定して手動で作成します。 LiveCDを使用してシステムを起動します。