UbuntuでRaspbianをSDカードへ書き込み

公式からRaspbianをダウンロードする

Raspbian Stretch with desktop
Image with desktop based on Debian Stretch
Version: March 2018
Release date: 2018-03-13
Kernel version: 4.9
Release notes: Link
SHA-256: d6d64a8bfad37de6bc7d975a335c69b8c6164a33b1ef0c79c888a9b83db5063f

ハッシュを確認

$ sha256sum 2018-03-13-raspbian-stretch.zip

したら

$ sha256sum 2018-03-13-raspbian-stretch.zip
8298dffa934ea3bb484d4832eb10dd1b1e0626101100836647c6ba3987803dce  2018-03-13-raspbian-stretch.zip

と出てなんと公式と違う

zip解凍しなきゃいけないのかと思ってやってみると

$ unzip 2018-03-13-raspbian-stretch.zip 
Archive:  2018-03-13-raspbian-stretch.zip
file #1:  bad zipfile offset (local header sig):  0

と出る

調べたらjar xvf [zip file]しろって出たけどjarコマンドが使えない

$ jar
The program 'jar' can be found in the following packages:
 * default-jdk
 * fastjar
 * gcj-5-jdk
 * openjdk-8-jdk-headless
 * gcj-4.8-jdk
 * gcj-4.9-jdk
 * openjdk-9-jdk-headless
Try: sudo apt install <selected package>

jarコマンド使えるようにインストール

$ sudo apt-get install default-jdk

インストールはここにされる
/usr/lib/jvm/default-java

でもjar xvfしてもなんか解凍されずエラーも出ないので別の方法を試す
7zipをインストール

$ sudo apt-get install p7zip

p7zip - Linux/Posix向け7-Zipコマンドラインバージョン
https://ja.osdn.net/projects/sfnet_p7zip/

でも解凍できない
windows 7で解凍しようとすると734ペタバイト必要と出てZip bombかな・・・・・
f:id:ultra-genma:20180408184956p:plain

仕方ないのでRaspbianをダウンロードし直す
最初はtorrentだったけど今度はブラウザで直接ダウンロード
ハッシュ確認

$ sha256sum 2018-03-13-raspbian-stretch.zip 
d6d64a8bfad37de6bc7d975a335c69b8c6164a33b1ef0c79c888a9b83db5063f  2018-03-13-raspbian-stretch.zip

今度は合ってる

ファイルがだめだったぽい
解凍してみるとちゃんと出来た

$ unzip 2018-03-13-raspbian-stretch.zip 
Archive:  2018-03-13-raspbian-stretch.zip
  inflating: 2018-03-13-raspbian-stretch.img

ここからやっとSDカードへ書込する

$ unzip -p 2018-03-13-raspbian-stretch.zip | sudo dd of=/dev/sde1 bs=4M conv=fsync

これは数分がかかる
公式にも書いてあるようにフリーズしたみたいに何も反応がない

By default, the dd command does not give any information about its progress, so it may appear to have frozen. It can take more than five minutes to finish writing to the card.

終わるとこうなる

0+59786 records in
0+59786 records out
4949278720 bytes (4.9 GB, 4.6 GiB) copied, 238.077 s, 20.8 MB/s

書き込みの進み具合を見たいときはprogressをつける

$ sudo dd bs=4M if=2018-03-13-raspbian-stretch.img of=/dev/sde1 status=progress conv=fsync




ddコマンドの使い方
ddの主なオプション(入出力)

オプション 意味
if=ファイル 標準入力の代わりにファイルから読み出す。デバイスファイルも指定可能
of=ファイル 標準出力の代わりにファイルへ書き込む。デバイスファイルも指定可能
bs=バイト数 1回に読み書きするブロックサイズ(バイト数) ※
ibs=バイト数 1回に読み出すブロックサイズ(デフォルトは512バイト) ※
obs=バイト数 1回に書き込むブロックサイズ(デフォルトは512バイト) ※
count=個数 ibsで指定したサイズのブロックを入力から個数分だけコピーする
iflag=フラグ フラグ(表1参照)に従って読み出す。フラグは「,」で区切り、複数指定可能
oflag=フラグ フラグ(表1参照)に従って書き込む。フラグは「,」で区切り、複数指定可能
skip=ブロック数 入力時にibsで指定したサイズのブロックをブロック数分、先頭からスキップする
seek=ブロック数 出力時にobsで指定したサイズのブロックをブロック数分、先頭からスキップする
status=noxfer バイト数や処理速度を表示しない

ddの主なオプション(変換)

オプション 意味
conv=変換方法 変換方法(表2参照)に従って変換する。変換方法の指定は「,」で区切り、複数指定可能
cbs=バイト数 「conv=」で変換方法としてblockまたはunblockを指定した際のブロックのサイズ ※

※バイト数やブロックサイズには2種類の単位を使用可能。1024の累乗で指定する場合はK、M、G、T、P、E、Z、Y(キロ、メガ、ギガ、テラ、ペタ、エクサ、ゼタ、ヨタを意味する)、1000の累乗で指定するときはKB、MB……を使用。