気の向くままに辿るIT/ICT/IoT
ハードウェア

ラズパイシステム用USBメモリ再移行作業

ホーム前へ次へ
Raspberry Piって?

ラズパイシステム用USBメモリ再移行作業

ラズパイシステム用USBメモリ再移行作業

2016/09/15

 ラズパイ/Raspbianをサーバとして運用後、違うUSBメモリを使ってみたらUSBメモリによってうまく機能せず、余計な手間がかかったりと微妙なケースがあることがわかった為、改めて運用中のものと入れ替えるべく、Raspberry Pi用に相性の良かったUSBメモリSilicon Power社製Ultima U02の16GBを予備を含めて2個買った後の実作業。

 たまたま起動していたDebianに接続するとFATでフォーマットされ、HTMLや.exeなどいくつかファイルが入っていました。(とは言ってもWindowsで使うわけではないし、最終的にext4にフォーマットすることもあってこれらは別に要らない。)

 勘違いからMBRではなく、GPTで作成するならgptコマンドを使っておくかと(マルチブート構成にしてある)NetBSDを起動するため、再起動。

 NetBSDでも以前は何の問題もなくできたはずなのに、なぜか、今回、素直にマウントできない為、disklabelを見るとaとdしかなく、aは4.2BSDとなっている。。。

 mbrlabel sd0してみてもラップしまくりで、あらら、結構手直ししなくちゃ状態ですが、うっかり、mbrlabel -rw sd0。

 sudo gpt create sd0を試みるも強制の-fオプションを付けてもダメ、再起動してDebianで確認しても今度は、fdiskの表示が壊れています。

 気を取り直してNetBSDを起動したものの、disklabelを修正するのも面倒なので/dev/zeroで初期化することにし、Ultima U02をUSBポートに挿しました。

dyna_netbsd$ dmesg | grep -i silicon
umass0: UFD 2.0 Silicon-Power16G, rev 2.00/1.00, addr 2
sd0 at scsibus0 target 0 lun 0: <UFD 2.0, Silicon-Power16G, PMAP> disk removable
umass0: UFD 2.0 Silicon-Power16G, rev 2.00/1.00, addr 2
sd0 at scsibus0 target 0 lun 0: <UFD 2.0, Silicon-Power16G, PMAP> disk removable
umass0: UFD 2.0 Silicon-Power16G, rev 2.00/1.00, addr 2
sd0 at scsibus0 target 0 lun 0: <UFD 2.0, Silicon-Power16G, PMAP> disk removable
dyna_netbsd$

 一応、USBに関連付けられたデバイスを確認。

dyna_netbsd$ sudo dd if=/dev/zero of=/dev/rsd0d bs=1m
dd: /dev/rsd0d: end of device
14793+0 records in
14792+0 records out
15510536192 bytes transferred in 924.177 secs (16783079 bytes/sec)
dyna_netbsd$ sudo sync
dyna_netbsd$ sudo sync
dyna_netbsd$ sudo sync
dyna_netbsd$

 /dev/zeroで初期化。

 20〜30分程度か?結構時間がかかりました。

dyna_netbsd$ sudo gpt create sd0
dyna_netbsd$

 gpt createで空のGUID Partition Tableを作成。

dyna_netbsd$ gpt show sd0
gpt: unable to open device 'sd0': Permission denied
dyna_netbsd$ sudo gpt show sd0
  start size index contents
  0 1 PMBR
  1 1 Pri GPT header
  2 32 Pri GPT table
  34 30293949
  30293983 32 Sec GPT table
  30294015 1 Sec GPT header
dyna_netbsd$

 gptコマンドで確認。

dyna_netbsd$ sudo fdisk sd0
Disk: /dev/rsd0d
NetBSD disklabel disk geometry:
cylinders: 3712, heads: 255, sectors/track: 32 (8160 sectors/cylinder)
total sectors: 30294016, bytes/sector: 512
BIOS disk geometry:
cylinders: 684, heads: 63, sectors/track: 0 (0 sectors/cylinder)
total sectors: 30294016
Partitions aligned to 2048 sector boundaries, offset 1
Partition table:
0: GPT Protective MBR (sysid 238)
[1] Floating point exception (core dumped) sudo fdisk sd0
dyna_netbsd$

 一応、fdiskコマンドでも確認。

 ここで気づいた。。。インストーラやレスキュー用Live USBじゃない。。。ラズパイ用でした。。。

 でも、GPTでもMBR使えた気がするし、ラズパイがMBR必須ってわけでもないはず。。。

 というわけでこのままやってみよう。

dyna_netbsd$ sudo gpt add -t linux-data -l RPI sd0
Partition 1 added, use:
dkctl sd0 addwedge <wedgename> 34 30293949 <type>
to create a wedge for it
dyna_netbsd$

 タイプをlinux-data、ラベルをRPIとしてgpt addでパーティションを追加。

 敢えてサイズを指定しなかったのでUSBメモリ全体を使ってパーティションが1つできるはず。

dyna_netbsd$ sudo dkctl sd0 makewedges
 successfully scanned /dev/rsd0d.
dyna_netbsd$

 dkctlコマンドで生成したパーティションを認識させてデバイスに紐付け。

dyna_netbsd$ sudo gpt show sd0
  start size index contents
  0 1 PMBR
  1 1 Pri GPT header
  2 32 Pri GPT table
  34 30293949 1 GPT part - Linux data
  30293983 32 Sec GPT table
  30294015 1 Sec GPT header
dyna_netbsd$

 ちゃんとできているかを確認。

 ext4でフォーマット。。。と思いましたが、NetBSDでは今のところ、newfsでext系だとnewfs_ext2fsしかない。。。

 よって再起動してDebianに切り替え。

user@debian:~$ dmesg | grep -i sd?*
...
 [ 2.681730] sd 2:0:0:0: Attached scsi generic sg2 type 0
 [ 2.682569] sd 2:0:0:0: [sdb] 30294016 512-byte logical blocks: (15.5 GB/14.4 GiB)
 [ 2.684201] sd 2:0:0:0: [sdb] Write Protect is off
 [ 2.684208] sd 2:0:0:0: [sdb] Mode Sense: 23 00 00 00
 [ 2.685455] sd 2:0:0:0: [sdb] No Caching mode page found
 [ 2.685520] sd 2:0:0:0: [sdb] Assuming drive cache: write through
 [ 2.703609] sdb: sdb1
 [ 2.707701] sd 2:0:0:0: [sdb] Attached SCSI removable disk
 [ 2.967925] Adding 1952764k swap on /dev/sda6. Priority:-1 extents:1 across:1952764k SSFS
 [ 3.192375] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro
 [ 14.058085] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
...
user@debian:~$

 デバイス確認。

user@debian:~$ sudo fdisk /dev/sdb
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
 
Command (m for help): p
Disk /dev/sdb: 14.5 GiB, 15510536192 bytes, 30294016 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 167C6601-B558-4880-8F01-D471354A2424
Device Start End Sectors Size Type
/dev/sdb1 34 30293982 30293949 14.5G Linux filesystem
 
Command (m for help): q
user@debian:~$

 Jessie時点では、すでにgpt対応なのでfdiskで確認。

user@debian:~$ sudo mkfs -t ext4 /dev/sdb1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 3786743 4k blocks and 948416 inodes
Filesystem UUID: 833294f3-75e3-4cc7-905a-fa390861fa2f
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
user@debian:~$

 mkfsでext4にフォーマット。

 ここからNetBSDに切り替えてもよいですが、Debianで続行。

 ラズパイで使っていたLexar JumpDrive S50 Orange 8GBをUSBポートに挿す。

user@debian:~$ dmesg | tail
[ 402.651436] scsi 3:0:0:0: Direct-Access Lexar USB Flash Drive 1100 PQ: 0 ANSI: 4
[ 402.653517] sd 3:0:0:0: Attached scsi generic sg3 type 0
[ 402.654797] sd 3:0:0:0: [sdc] 15656960 512-byte logical blocks: (8.01 GB/7.46 GiB)
[ 402.655787] sd 3:0:0:0: [sdc] Write Protect is off
[ 402.655794] sd 3:0:0:0: [sdc] Mode Sense: 43 00 00 00
[ 402.657155] sd 3:0:0:0: [sdc] No Caching mode page found
[ 402.657162] sd 3:0:0:0: [sdc] Assuming drive cache: write through
[ 402.661667] sdc: sdc1
[ 402.666284] sd 3:0:0:0: [sdc] Attached SCSI removable disk
[ 402.966172] EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: (null)
user@debian:~$

 /media以下に自動マウントされるが、アンマウントして/mnt以下にマウントし直す。(こんなことする必要は全くないけど)

user@debian:~$ sudo mkdir /mnt/usb_from /mnt/usb_to
user@debian:~$

 マウントポイント作成。

user@debian:~$ sudo mount /dev/sdc1 /mnt/usb_from
user@debian:~$

 改めてラズパイで使用していたシステムパーティション用USBメモリをマウント。

user@debian:~$ sudo mount /dev/sdb1 /mnt/usb_to
user@debian:~$

 新しいフォーマット済みUSBメモリをマウント。

user@debian:~$ sudo apt-get update
user@debian:~$ sudo apt-get upgrade
user@debian:~$ sudo apt-get install rsync
...
user@debian:~$

 rsyncで中身をコピー...と思ったら、rsyncが入っていなかった為、インストール。

user@debian:~$ sudo rsync -n -av --progress /mnt/usb_from/ /mnt/usb2_to
user@debian:~$

 rsyncで中身をコピーするにあたり、一応チェック。

user@debian:~$ sudo rsync -av --progress /mnt/usb_from/ /mnt/usb2_to
user@debian:~$

 実際にrsyncで中身をコピー。

user@debian:~$ sudo umount /mnt/usb_from
user@debian:~$ sudo umount /mnt/usb_to
user@debian:~$

 使い終わったマウントポイントをアンマウント。

 Raspberry Pi 2 Model BのUSBポートにext4でフォーマット、システムパーティションにあるべきファイル群のrsyncによるコピーが完了したUltima U02 16GBを挿す。(運用中だった為、起動用のmicroSDカードは既に装着済み。)

user@debian:~$ ssh rpi
...
user@raspberrypi:~ $

 Raspberry PiにSSH接続してみる。(rpiとしてホストの名前解決ができている前提)

 おお、あっさり接続できました。。。やっぱり相性いいなー。。。Silicon Power Ultima U02。。。他と何が違うんだろ。。。

user@raspberrypi:~ $ sudo crontab -e
crontab: installing new crontab
user@raspberrypi:~ $ exit
user@debian:~$

 というわけで、あっさりいかなかったUSBメモリ用にcron登録してたスクリプトを削除しておく。

 以上、図らずも相性の良かったUSBメモリに替えたことで余計な手間をかけることもなく、当初の通り、ラズパイを快適に運用できるようになりました。

ホーム前へ次へ