LoginSignup
1
2

More than 1 year has passed since last update.

Linuxのシステムドライブお引越し手順

Last updated at Posted at 2023-03-02

ことのはじめ

先日システムドライブで使っていたSSDからSMARTエラーが
出ちゃったのでシステムドライブのお引越しをキメてみた。

作業の流れ

  • LiveCDから起動
  • 新規SSDにパーティション作成
  • rsyncでシステムドライブの中身をコピー
  • GRUBのインストール

用意するもの

  • Linuxが稼働しているPC
  • 稼働しているOSと同じバージョンのLiveCD
  • 新しいSSD
  • 折れない心

新旧SSDとデバイス名の関係

旧SSD:/dev/sda
新SSD:/dev/sdb

LiveCDから起動する

BIOSのブートオプションからLiveCDのドライブを選択し起動する

rootになる

以下のコマンドでrootになる。

sudo su -

新SSDにパーティションを作成

fdisk /dev/sdb
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4):1
First cylinder (1-767) :1
Last cylinder or +size or +sizeM or +sizeK: <そのままEnter>
Command (m for help): t
Partition number (1-4):1
Hex code (type L to list codes) : 83
Command (m for help): w

新SSDをext4でフォーマット

mkfs.ext4 /dev/sdb1

rsyncでシステムドライブの中身をコピー

LiveCDから起動し、新SSDと旧SSDをそれぞれマウント。

mkdir /mnt/old
mount /dev/sda1 /mnt/old
mkdir /mnt/new
mount /dev/sdb1 /mnt/new

rsyncで特殊フォルダを除外してコピー。

rsync -aAXHv --exclude={"/mnt/old/dev/*","/mnt/old/proc/*","/mnt/old/sys/*","/mnt/old/tmp/*","/mnt/old/run/*","/mnt/old/lost+found"} /mnt/old/ /mnt/new

特殊フォルダをバインド

特殊フォルダ /sys /proc /dev をバインド。

mount --bind /sys /mnt/new/sys
mount --bind /proc /mnt/new/proc
mount --bind /dev /mnt/new/dev

GRUBのインストール

以下のコマンドを実行してGRUBをインストールし、ブート構成情報を再作成する。

chroot /mnt/new
grub-install --recheck /dev/sdb
update-grub

システムドライブのUUIDを更新する

通常システムドライブはUUIDでマウントされているため、
コピーしたままのfstabでは起動できない。
そのため、新SSDのUUIDを調べてfstabに反映させる必要がある。

blkid /dev/sdb

UUID="新SSDのUUID" をfstabのrootファイルシステムの行にある
UUIDと置き換える
(ダブルクォーテーションは外した方がいいかも)

fstab
#UUID=旧SSDのUUID / ext4 noatime,errors=remount-ro 0 1
UUID=新SSDのUUID / ext4 noatime,errors=remount-ro 0 1

再起動する

再起動し、動作確認してみる。

reboot
1
2
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
1
2