Kinaconの技術ブログ

Ubuntuはじめました。

ラズベリーパイをUSB(SSD)で起動させる

f:id:m-oota-711:20180813114502p:plain

MicroSDは壊れやすい?!
ラズベリーパイはMicroSDで起動してるので、使い方にもよりますが壊れることが多いようです。
そこで、USB接続したHDD/SSDで起動することで防止できるようです。


以下のサイト参考に実行しました。
Raspberry PiをUSB(HDD)で起動させる | 純規の暇人趣味ブログ



実行環境

・Raspberry Pi3 Model B V1.2
 OS: Raspbian GNU/Linux 9.4 (stretch)

・PC(Panasonic Let's note CF-SX2)
 OS: Ubuntu 18.04.1 LTS


準備品
※すべて家にあったものを流用

microSD 2GB(メーカ不明)※容量は128MB以上ならOK
SSD 64GB(SAMSUNG 2.5インチ SATAⅡ)
・2.5インチHDDケース(GW2.5CR-U3)


作業内容

ファームウェアのアップデート

sudo apt update
sudo apt upgrade
sudo rpi-update

SDDをフォーマット・マウント

sudo parted /dev/sda

(parted)Yes/no?の後が入力値

GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.                                      
(parted) mklabel msdos                                                    
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost.
Do you want to continue?
Yes/No? yes                                                               
(parted) mkpart primary ext4 0% 100%                                      
(parted) p                                                                
Model: Generic External (scsi)
Disk /dev/sda: 63.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  63.3GB  63.3GB  primary  ext4         lba

(parted) q                                                                
Information: You may need to update /etc/fstab.

microSDから全データのコピー

データを移すパーティションをフォーマットしてマウント

sudo mkfs.ext4 /dev/sda1
sudo mount -t ext4 -o defaults /dev/sda1 /mnt

コピー

sudo rsync -ax --progress / /mnt

SSDのfstab修正

PARTUUID確認

sudo blkid
/dev/sda1: UUID="448b5015-56c3-4b46-9e0d-9b7e43dc8801" TYPE="ext4" PARTLABEL="primary" PARTUUID="f742c79f-21dc-4b28-936c-a7727b5c7014"
/dev/mmcblk0: PTUUID="84388539" PTTYPE="dos"
/dev/mmcblk0p1: LABEL="RECOVERY" UUID="3010-0B2A" TYPE="vfat" PARTUUID="84388539-01"
/dev/mmcblk0p5: LABEL="SETTINGS" UUID="782e5b00-71ef-4c16-9621-8b6e93d3eb8c" TYPE="ext4" PARTUUID="84388539-05"
/dev/mmcblk0p6: LABEL="boot" UUID="C900-6377" TYPE="vfat" PARTUUID="84388539-06"
/dev/mmcblk0p7: LABEL="root" UUID="a8436a24-d165-4c79-9998-8a5782445204" TYPE="ext4" PARTUUID="84388539-07"

sda1のPARTUUIDを確認
f742c79f-21dc-4b28-936c-a7727b5c7014

fstab変更

sudo nano /mnt/etc/fstab
編集前
proc                       /proc  proc    defaults                0       0
/dev/mmcblk0p6    /boot  vfat     defaults                0       2
/dev/mmcblk0p7    /         ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that
編集箇所

/dev/mmcblk0p6 ⇒ /dev/mmcblk0p1
/dev/mmcblk0p7 ⇒ PARTUUID=f742c79f-21dc-4b28-936c-a7727b5c7014

編集後
proc                      /proc  proc    defaults                0       0 
/dev/mmcblk0p1   /boot  vfat     defaults                0       2
PARTUUID=f742c79f-21dc-4b28-936c-a7727b5c7014   /         ext4    defaults,noatime  0       1

PCでmicroSDのデータをコピー

※ラズパイからMicroSDを抜いて、PCに接続します。

MicroSDの「boot」フォルダの中身をPCへコピー

「boot」の中の「cmdline.txt」を編集する

root=/dev/mmcblk0p7 
⇒ root=PARTUUID=f742c79f-21dc-4b28-936c-a7727b5c7014

編集前
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait splash plymouth.ignore-serial-consoles
編集後
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=f742c79f-21dc-4b28-936c-a7727b5c7014 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait splash plymouth.ignore-serial-consoles

新しいmicroSDにコピーした「boot」の中身をコピー

ラズパイを起動

SSDと新しいmicroSDを接続する



以上


Transcend microSDカード 2GB TS2GUSD

Transcend microSDカード 2GB TS2GUSD