SDカードにインストール済みのRaspbianをUSB接続HDDにコピーする
Raspbian入りSDカードを外付HDDにコピーする。
必要なもの
- 所要時間: 4h
- Raspberry pi 3 Model B
- SDカード
- TS32GUSD300S-AE
- Raspbian
- 外付HDD (USB接続)
- HDD: MQ01ABD100
- HDDケース: TS0GSJ25S3
前提
方法
ラズパイを起動し、HDDをUSB接続する。マウントするダイアログに従う。
- HDDのデバイス名を確認する
- HDDを初期化する
- SDカードにあるRaspbianをHDDにコピーする
- ブート設定する
手順
1. HDDのデバイス名を確認する
$ df -h
サイズなどで判断すること。ここではHDDのデバイス名が/dev/sdb
だと仮定する。
2. HDDを初期化する
概要
パーティション種別 | フォーマット | サイズ | 用途 |
---|---|---|---|
プライマリ | FAT32 | 100MB | ブート領域 |
プライマリ | ext4 | 残り全部 | システム領域 |
注意! 全データ消去される。
2-1. パーティション作成
- ターミナルを起動する
- パーティション作成ツール
parted
を実行する
$ sudo parted /dev/sdb
以下の待ち受けにコマンドを入力していく。
(parted)
mktable msdos mkpart primary fat32 0% 100M mkpart primary ext4 100M 100% print quit
途中でYes/No
やIgnore/Cancel
のような選択肢が出ることがある。そのときは頭文字y
,n
,i
,c
を入力してEnterキー押下することで決定できる。
もしパーティションが既存なら
既存パーティション番号を一覧する。
(parted) p
指定した番号のパーティションを削除する。
(parted) rm 1
これを全パーティションに対して行う。
2-2. HDDをフォーマットする
sudo mkfs.vfat -n BOOT -F 32 /dev/sdb1 sudo mkfs.ext4 /dev/sdb2
3. SDカードにあるRaspbianをHDDにコピーする
sudo mkdir -p /mnt/target sudo mount /dev/sdb2 /mnt/target/ sudo mkdir -p /mnt/target/boot sudo mount /dev/sdb1 /mnt/target/boot/ sudo rsync -ax --progress / /boot /mnt/target
コピーに数時間かかった。
4. ブート設定する
ブート時に参照するシステム領域をHDDにする。(SDカードのパーティションを指したままなので)
HDDにコピーした以下のファイルを修正する。
- cmdline.txt
- fstab
4-1. デバイスのpart uuidを確認
ls -l /dev/disk/by-partuuid/
合計 0 ... lrwxrwxrwx 1 root root 10 8月 17 15:51 82c65ae3-01 -> ../../sdb1 lrwxrwxrwx 1 root root 10 8月 17 15:51 82c65ae3-02 -> ../../sdb2 lrwxrwxrwx 1 root root 15 8月 17 15:51 c06b0477-01 -> ../../mmcblk0p1 lrwxrwxrwx 1 root root 15 8月 17 15:51 c06b0477-02 -> ../../mmcblk0p2
SDカード | HDD | |
---|---|---|
ブート領域 | c06b0477-01 | 82c65ae3-01 |
システム領域 | c06b0477-02 | 82c65ae3-02 |
4-2. cmdline.txt
$ sudo leafpad /mnt/target/boot/cmdline.txt
root=PARTUUID=
の値はSDカードのc06b0477-02
だが、これをHDDの82c65ae3-02
に変更する。
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=82c65ae3-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles
4-3. fstab
$ sudo leafpad /mnt/target/etc/fstab
UUIDをSDカードのものからHDDのものへ修正する。
before
proc /proc proc defaults 0 0 PARTUUID=c06b0477-01 /boot vfat defaults 0 2 PARTUUID=c06b0477-02 / ext4 defaults,noatime 0 1
after
proc /proc proc defaults 0 0 PARTUUID=82c65ae3-01 /boot vfat defaults 0 2 PARTUUID=82c65ae3-02 / ext4 defaults,noatime 0 1
完了。