まとまりのないブログ

something which something is something

Tips

容量の大きいディスクから小さいディスクへddコマンドでクローンする場合

投稿日:2020年7月30日 更新日:

linuxのターミナルで使うことができるddコマンドについて、ddコマンドとはディスクのクローンを作るときに使われるコマンドで、あるディスクとそっくりそのままの内容を別のディスクへ複製することができる。ただし条件があり、
・元となるディスクと同じ容量か大きいディスクのみクローン作成可能
・元となるディスクより容量が小さいディスクへはクローンできない
といった条件がある。

またddコマンドができることは
・ディスクのクローン作成
・パーティションのコピー
といったことができる。

で、大きい容量から小さい容量のディスクへコピーする場合について。たとえばubuntuのOSが入っているディスクのクローンを作成する場合、パーティションが切られているのが普通であり、ブートローダがあるバーティション、本体のファイルシステムがあるパーティションといった具合に存在する。容量の大きいディスクから小さいディスクへのクローン作成は本体のファイルシステムのあるパーティションをddコマンドでコピーすることで目的を達成することにした。

Ubuntuでクローンを作成する場合
手順としては、

  1. 元となるディスクの最も大きいパーティションのサイズをgpartedを使って小さいディスクの容量に収まるようにリサイズする。
  2. 移行先となる容量の小さいディスクに元となるディスクに存在するOSと同じものをクリーンインストールする
  3. ubunbtuのインストールメディアをusbかなんかに保存してliveインストールディスクとして使えるようにする。(遊んでるlinuxマシンがある人はそちらで可)
  4. 3で作ったインストールディスクでliveOSを起動する(この起動するマシンに移行元と移行先のディスクをあらかじめ接続しておく)
  5. liveOSでデスクトップが起動したらターミナルを起動してddコマンドを実行してパーティションをコピーする
    例:# dd if=/dev/sda2 of=/dev/sdb2 bs=4M

以上のような手順でとりあえずディスクのクローンという目的は達成することができた。容量大から容量小へのddコマンドディスク複製の実行はたとえパーティションサイズが同じであってもディスク全体の容量が違うということでコマンドを完遂することができない。当たり前といえば当たり前だけれども。パーティションサイズを整えて使用済みの容量と移行先の容量は揃えたからあとはddコマンドさんよろしく・・・というようなことはできない模様。ifには元となるディスクまたはパーティションを指定、ofには移行先となるディスクまたはパーティションを指定。

ディスクをクローンする場合
例:# dd if=/dev/sda of=/dev/sdb bs=4M

パーティションをクローンする場合
例:# dd if=/dev/sda2 of=/dev/sdb2 bs=4M

詳しくは # fdisk -l とかしてディスク状況を確認するといいかもしれない。bsのサイズは適当。

-Tips

執筆者:


  1. より:

    特定のパーテーションだけコピーする場合、OSならブートローダー部分はどうするんですか? これならファイルコピーと同じじゃないですか?

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

NTTデータが運営するブログサービス「Doblog」が2009年5月30日で終了

2009年2月8日にサーバに障害が発生してからサービスの提供を中断していたブログサービス「Doblog」が2009年5月30日で終了することが決まった模様。終了する理由は、「Doblog」の目的である …

no image

raspberry pi zero の usb gadget mode 接続できない・見つからない

raspberry pi zeroをwin10とusbのデータ接続してssh接続ができなかったのでメモ。初めのラズパイゼロの設定は他のサイトと同じ(config.txtの最後に追記とcmdline.t …

cocos2d-jsとcocos2d-html5の違い

cocos2dのウェブ版としてcocos2d-jsというものがあるが、cocos2d-html5という名前のものもあって同じものだと思っていたがどうも若干違うらしい。cocos2d-html5で検索す …

no image

tensorflow 1.5 をインストールしようとしてみたが断念

最新のtensorflowのバージョンは現在のところ2.4がリリースされているが、バージョン1.6以降のtensorflowはAVX(Advanced Vector Extensions)をサポートし …

no image

必須モジュール gd がインストールされていないか、無効化されています

# apt-get install php-gd # /etc/init.d/apache2 restart