サイトアイコン アラコキからの Raspberry Pi 電子工作

Raspberry Pi Perlスクリプトによる SDカードの縮小

Raspberry Pi 運用・管理
Perlの スクリプトによる SDカードの縮小
 
Raspberry Pi のSDカードを、バックアップのためにコピーする場合、記載が同じ容量のSDカードでも製品やロットが違うと、バイト単位で容量が異なりコピーできない場合がある。
 
 
Raspberry PiのSDカードを、容量の小さなSDカードにリサイズする方法は、Web上に数多く紹介されているが、やってみると上手くいかない(Raspberry Piが起動しない)場合が多い。
 
私自身も、先だってまではうまく縮小できていた方法が、最近になって実行すると、上手くゆかなくなっていたりする。
 
 

 

スポンサー リンク

 

 
 
数ある方法の中で、成功した最適解。
Perl のスクリプトを使って imgファイルを縮小 
 
 
 
 
 
1. Raspberry Pi に resizeimage.pl をコピーする
 
「resizeimage.pl 」の内容を、RPiフォーラムの『Reducing Raspbian File System Image Size』より、コードをコピーする。
 
コピーした Perl のスクリプトコードを、Raspberry Pi のホームディレクトリに保存する。
 
下記例は、ホームディレクトリの直下に「work」フォルダーを作成し、その中に「resizeimage.pl 」を保存した例。
 
スクリプトのパーミッションを変更しておく。
chmod 755 /home/pi/work/resizeimage.pl  
 
 
 
2. 縮小したいSDカードの imgファイルを準備する
 
縮小したい Raspberry PiのSDカードから、【 Win32DiskImager 】で imgファイルを作成する。
 
Windows 10の環境で、SDカードのバックアップを行うことで、imgファイルが作成できる。
 
バックアップした imgファイルを、SSD(USBメモリーやHDDでもよい)にコピーする。
 
SSDは、Windowsの【 NTFS 】フォーマットで良い。
 
 
 
3. Raspberry Piで imgファイルを縮小する
 
Raspberry Pi のUSBに、SSDを接続する。
 
縮小スクリプトの実行。
cd /home/pi/work
sudo perl ./resizeimage.pl /media/ssd/raspi.img
 
 
「/media/ssd」は、SSDのマウントポイント。
 
実行結果。(10分程度で終了。)
pi@pi:~/work $ sudo perl ./resizeimage.pl /media/ssd/raspi.img
 
raspi.img:
===========
Old size - 61119 MB (59.69 GB)
New size - 10521 MB (10.28 GB)
Image file was reduced by 50598 MB (49.41 GB)
 
64GBのSSDが、10GB余りに縮小された。
 
これで、容量の小さいSDカードにも書き込めるようになった。
 
※:SDカードの領域拡大は、『Gparted』で簡単に行える。
 
 
 
4. SSDのマウント要領
 
NTFSフォーマットの、外付けSSDをマウントするには、パッケージのインストールが必要。
sudo apt install ntfs-3g 
 
認識されているデバイスを調べる。
sudo fdisk -l  ・・・ 以下、sda1 で認識されたとして記述
 
マウントさせるディレクトリーを作る。
sudo mkdir /media/ssd  
 
作成したディレクトリーに、マウントする。
sudo mount /dev/sda1 /media/ssd 
 
マウントポイントの確認。
df -h 
 
120GBのSSDが【 /media/ssd 】でマウントされている。
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 4.8G 23G 18% /
devtmpfs 460M 0 460M 0% /dev
tmpfs 464M 0 464M 0% /dev/shm
tmpfs 464M 13M 452M 3% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 464M 0 464M 0% /sys/fs/cgroup
/dev/mmcblk0p1 42M 22M 20M 54% /boot
tmpfs 93M 0 93M 0% /run/user/1001
/dev/sda1 120G 60G 60G 51% /media/ssd
 
 
 
5. SSDの所有権と権限の変更
 
所有権と権限の確認。
ls -l /media/ssd 
 
所有権の変更。
chown -R pi:pi /media/ssd 
 
権限の変更。
chmod 777 /media/ssd 
 
以上。
(2019.07.14)
 

 

スポンサー リンク

 

             

 

 

 
モバイルバージョンを終了