Linux全体のディスクを縮小、複製、起動するには?

Linux全体のディスクを縮小、複製、起動するには?

1024 GBのディスク(ドライブA)でUbuntu 14.04を実行しており、最大130 GBのスペースしか使用していません。 256GB SSDディスク(ディスクB)に複製したいです。しかし、それは失敗しました。

gpartedBドライブを正常に準備するために、Aドライブのパーティションを180GB程度に減らしたことがあります。

どこで間違っているのか教えてもらえますか?

1) パーティションテーブルの復元

Aドライブのパーティションテーブルをバックアップしました。

└──╼ $ sudo sfdisk -d /dev/sda
# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=     2048, size=   997376, Id=83, bootable
/dev/sda2 : start=   999424, size= 15624192, Id=82
/dev/sda3 : start= 16623616, size=337020928, Id=83
/dev/sda4 : start=        0, size=        0, Id= 0

ヒント

/dev/sda1のため/boot/dev/sda2のためswap/dev/sda3のため/

パーティションテーブルの保存

sudo sfdisk -d /dev/sda > partition.table

/dev/sdcその後、パーティションテーブルをBドライブ(この場合)に復元しようとしました。

私はファイルsdaに置き換えました。それでは、次のようになります。sdcpartition.table

# partition table of /dev/sdc
unit: sectors

/dev/sdc1 : start=     2048, size=   997376, Id=83, bootable
/dev/sdc2 : start=   999424, size= 15624192, Id=82
/dev/sdc3 : start= 16623616, size=337020928, Id=83
/dev/sdc4 : start=        0, size=        0, Id= 0

これで回復に成功しました。

sudo sfdisk /dev/sdc < partition.table

2) ディスクパーティションの内容の移行

sudo dd if=/dev/sda1 of=/dev/sdc1

sudo dd if=/dev/sda2 of=/dev/sdc2

sudo dd if=/dev/sda3 of=/dev/sdc3

移行後、/dev/sdc でそのパーティションをマウントして表示できます。

失敗する

ただし、ノートブックにSSDディスク(ディスクB)を挿入すると、一部のThinkpad BIOS出力後にノートブックが起動しなくなります。エラーは発生しませんが、カーソルが点滅します...

/bootBIOSが起動時にディスクBを検出できませんでした。

助けてください?とても感謝しています!


修正する

誰かが私にそれを使ってgrub-install /dev/sdcトリックを実行するように提案しました。

私はgrub-install能力のある人を検索しました。協会やってみようディスクA(MBRが取り付けられている)が確実です。


修正する

完了後にdd if=/dev/sda of=/dev/sdc bs=512 count=1ドライブBのみを挿入すると、カーソルは点滅し続けます。 BIOSの後には何もありません。

作業が完了した後、起動してみるとgrub-install --boot-directory=/mnt/mypartition/boot /dev/sdcBドライブしかありませんでした。

しかし、グラップコンソールが出ました。そして報告した

ここに画像の説明を入力してください。


修正する

今動作します!

私はこのようにディスクAをOS、ディスクB(/dev/sdc)をUSBハードドライブとして実行しました。

sudo mount /dev/sdc3 /mnt
sudo mount /dev/sdc1 /mnt/boot

sudo grub-install --boot-directory=/mnt/boot /dev/sdc3

その後、/mnt/boot/grub/grub.cfgファイルの2つの項目を置き換えましたgrub.cfg。 (ファイルに書き込み権限を付与することを忘れないでくださいgrub.cfg

hd1使用。 。 。交換hd0

/dev/sdc3使用。 。 。交換/dev/sda3

次にファイルを保存します。 -> コンピュータの電源を切る -> SATAを介してBドライブを挿入し、Aドライブを完全に取り外します。 ->ブート->grubエラーが表示されますが、まだブートされます。

エラーが発生した場合は、Error: invalid environment block. Press any key to continueこの問題を確認して解決してください。いずれかのキーを押すとシステムが起動します。https://askubuntu.com/questions/191852/error-invalid-environment-block-press-any-key-to-continue

sudo -i

その後、各コマンドを1つずつ実行します。

cd /boot/grub
rm grubenv
grub-editenv grubenv create
grub-editenv grubenv set default=0
grub-editenv grubenv list
update-grub

今再起動するだけです!

これが私が1024GBディスクドライブのサイズを縮小し、システム全体を新しい256GB SSDディスクに移動した方法です。

ベストアンサー1

私はそれに慣れていませんがsfdiskdd

これは私のメモです。私は作者ではありません。

バックアップMBR

MBRはディスクの最初の512バイトに保存されます。これは3つの部分で構成されています。

  • 最初の446バイトにはブートローダが含まれています。
  • 次の64バイトにはパーティションテーブルが含まれています(それぞれ16バイトのエントリ4つ、各プライマリパーティションのエントリ1)。
  • 最後の2バイトには識別子が含まれています。

MBRをmbr.imgに複製します。

dd if=/dev/sdX of=/path/mbr_file.img bs=512 count=1

パーティションをpX.imgに複製します。

dd if=/dev/sdX of=/path/pX.img bs=1024

MBRを新しいディスクに復元

dd if=/path/mbr_file.img of=/dev/sdY bs=512

パーティションを新しいディスクに復元

dd if=/path/pX.img of=/dev/sdX bs=1024

または

これを使用して、clonezillaオペレーティングシステムのイメージを作成し、パーティションが作成されたディスクに復元できます。

これにより、新しいディスクにgrubを再インストールする必要があります。

grub-install

grub-mkconfig

そして、「新しい」OSでスワップパーティションを設定します。

mkswap

swapon

おすすめ記事