Dời Ubuntu sang ổ đĩa khác

Thông thường đĩa được chia thành 3 partition: boot (label system-boot), OS (label writable) và data. Partition OS và data có thể sao chép dữ liệu dễ dàng sang các partition tương ừng ở ổ đĩa mới bằng cách dùng rsync từ đĩa Ubuntu đang chạy.

:~# lsblk
sda      8:0    0  250G  0 disk
├─sda1   8:1    0  250M  0 part /boot/firmware
├─sda2   8:2    0   40G  0 part /
└─sda3   8:3    0  210G  0 part /mnt
sdb      9:0    0  500G  0 disk
├─sdb1   9:1    0  200M  0 part
├─sdb2   9:2    0   40G  0 part
└─sdb3   9:3    0  460G  0 part

# Sao chép file
:~# mount /dev/sdb2 /media
:~# rsync -avx --delete / /media
:~# umount /media

Riêng partition boot thì không thể vì khi boot xong thì Ubuntu đã di dời các file hệ thống sang thư mục con firmware và thay bằng các symlink và các file hệ thống khác ở thư mục gốc.

Vì vậy chỉ có thể sync từ một thẻ SD card/USB mới và không tham gia khởi động, sau đó tạo boot từ USB cho ổ đĩa mới. Dung lượng tối thiểu cho partition boot là 200MB.

:~# lsblk
sda      8:0    0  250G  0 disk
├─sda1   8:1    0  250M  0 part /boot/firmware
├─sda2   8:2    0   40G  0 part /
└─sda3   8:3    0  210G  0 part /mnt
sdb      9:0    0  500G  0 disk
├─sdb1   9:1    0  200M  0 part
├─sdb2   9:2    0   40G  0 part
└─sdb3   9:3    0  460G  0 part
sdc     32:0   0 29.8G  0 disk
├─sdc1  32:1   0  250M  0 part
└─sdc2  32:2   0 29.6G  0 part

sdc là thẻ nhớ không tham gia khởi động nên sdc1 chưa bị thay đổi. Sao chép file sang sdb1:

:~# mkdir -p /media/{boot,new}
:~# mount /dev/sdc1 /media/boot
:~# mount /dev/sdb1 /media/new
:~# rsync -avx --delete /media/boot/ /media/new
:~# umount /media/boot
:~# umount /media/new
:~# rmdir /media/{boot,new}

Cuối cùng tạo khởi động từ USB cho sdb.

Update:

Một cách khác để sao chép boot từ ổ đĩa khởi động: mount partition khởi động chứ không dùng thư mục /boot, sau đó sync sang partition mới.

Chú thích

Nếu tạo bản sao cho đĩa với mục đích làm đĩa dự phòng, sync lại khi cần, tốt nhất là tạo PARTUUID cho giống với đĩa gốc. Có thể làm điều này với fdisk.

:~# fdisk /dev/sdc

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): x                    # nhập x để vào expert menu

Expert command (m for help): i             # nhập i để thay đổi identifier của đĩa

Enter the new disk identifier: 0x13579bdf  # phải có 0x dẩn đầu

Disk identifier changed from 0x02468ace to 0x13579bdf.

Expert command (m for help): r             # nhập r để trở về menu chính

Command (m for help): w                    # nhập w để ghi vào MBR

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Comments Off on Dời Ubuntu sang ổ đĩa khác

Filed under Software

Comments are closed.