0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2025年09月版】rsyncで /dev/sda から /dev/sdb に Ubuntu をコピーして起動可能にするメモ【UEFIからBIOS版】

Last updated at Posted at 2025-09-17

はじめに

  • OSをそのまま別ディスクにコピーしたい、けど、単なるコピーでは無理な方向けの記事
    • 大きいディスクを小さいディスクにしたいなど
  • 移行元HDDが、移行先HDDより大きい場合で、ddなどではコピーできない場合の手法
  • rsyncで /dev/sda (64GB) から /dev/sdb (16GB) に Ubuntu をコピーして起動可能にするメモ
  • ubuntu24.04 をコピーしています
  • /dev/sda から /dev/sdb にコピーします
  • BIOS環境

/dev/sda には 以下のパーティションのみがある場合の手順です。

$ lsblk
NAME                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                    8:0    0   64G  0 disk 
├─sda1                 8:1    0    1G  0 part /boot/efi
├─sda2                 8:2    0    2G  0 part /boot
└─sda3                 8:3    0 60.9G  0 part 
  └─ubuntu--vg-lv--0 252:0    0 60.9G  0 lvm  /

手順

  • コピー先のディスクの準備
  • rsync でコピー
  • システム設定修正
  • 起動テスト

コピー先のディスクの準備

/dev/sda と /dev/sdb の状態

$ lsblk
NAME                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                    8:0    0   64G  0 disk 
├─sda1                 8:1    0    1G  0 part /boot/efi
├─sda2                 8:2    0    2G  0 part /boot
└─sda3                 8:3    0 60.9G  0 part 
  └─ubuntu--vg-lv--0 252:0    0 60.9G  0 lvm  /
sdb                    8:16   0   16G  0 disk 

パーティション作成

sudo parted /dev/sdb -- mklabel msdos
sudo parted /dev/sdb -- mkpart primary ext4 1MiB 1GiB     # /boot
sudo parted /dev/sdb -- mkpart primary ext4 1GiB 100%     # LVM PV

フォーマット

# /boot
sudo mkfs.ext4 /dev/sdb1

# LVM
sudo pvcreate /dev/sdb2
sudo vgcreate ubuntu-vg-b /dev/sdb2
sudo lvcreate -l 100%FREE -n lv-0 ubuntu-vg-b
sudo mkfs.ext4 /dev/ubuntu-vg-b/lv-0

マウント

sudo mount /dev/ubuntu-vg-b/lv-root /mnt
sudo mkdir /mnt/boot
sudo mount /dev/sdb1 /mnt/boot

rsync でコピー

除外リストをつけてルートを丸ごとコピー

sudo rsync -aAXHv --progress / /mnt \
  --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}

-aAXH : パーミッション・ACL・ハードリンク保持
--progress : 進行状況表示
--exclude : 除外、ランタイム系ディレクトリ(/dev, /proc, …)

システム設定修正

UUID の取得

UUID を控える

sudo blkid /dev/sdb1 /dev/ubuntu-vg-b/lv-0

/mnt/etc/fstab の修正

控えた UUID に変更。

sudo vim /mnt/etc/fstab

例:

UUID=<uuid-of-sdb1>       /boot     ext4  defaults  0 2
UUID=<uuid-of-lv0>        /         ext4  defaults  0 1

GRUB をインストール

sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run
sudo chroot /mnt

# initramfs 再生成
update-initramfs -u -k all
# BIOS 用に GRUB インストール
grub-install --target=i386-pc /dev/sdb
update-grub
exit

アンマウント

sudo umount -R /mnt

起動テスト

/dev/sda のHDDを、/dev/sdb のHDDと交換して、BIOS でブート順を指定して起動する。

起動しない場合は、Live USB で起動して再度 grub-install と update-grub を実行するとうまくいくこともある。

さいごに

かんたんでしたね。

リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?