40
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

らずぱい3で、USBストレージからブート(SDなし)

Last updated at Posted at 2016-08-04

概要

環境

  • Raspberry Pi 3
  • 2016-05-27-raspbian-jessie-lite.img
  • USBストレージ(USBのSDカードリーダにmicroSD..意味あるのか?!)

手順

ファームウェアの更新・設定 (microSDにて)

  • まずは通常通りに、microSDに、Raspbianを書き込んで作業はじめる
# APTレポジトリデータベース更新.
sudo apt-get update
#
# Raspbian liteでは、rpi-updateをインストール.
sudo apt-get install rpi-update -y
#
# 'next'ブランチから、ファームウェア等々、更新.
sudo BRANCH=next rpi-update
# 今回使用したもの
# > *** If no errors appeared, your firmware was successfully updated to 193f081a0ed502b62483aa707a79cf245db9b028
#
# USBブートモードを有効に.
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt
#
# 現在の otpの値を確認.
vcgencmd otp_dump | grep 17:
# > 17:1020000a
#
# 再起動
sudo reboot
#
# otpの値を確認
vcgencmd otp_dump | grep 17:
# > 17:3020000a となっていればOK

USBストレージの準備

  1. USBストレージをらずぱいに挿す ( => /dev/sda になるはず)

pi@raspberrypi:~ $ ls -l /dev/sda
ls: cannot access /dev/sda: No such file or directory
pi@raspberrypi:~ $ ls -l /dev/sda
brw------- 1 root root 8, 0 Aug 4 19:57 /dev/sda
pi@raspberrypi:~ $


2. `sudo parted /dev/sda`<br>パーティション作成

    ```txt:partedに打つコマンド
mktable msdos
Yes
mkpart primary fat32 0% 100M
mkpart primary ext4 100M 100%
print
quit
  1. パーティションフォーマット(mkfs)

    mkfs

sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2


4. 実行例

    ```shell-session:partedとmkfs(フォーマット)の実行例
pi@raspberrypi:~ $ sudo parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable 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 fat32 0% 100M                                     
(parted) mkpart primary ext4 100M 100%                                    
(parted) print                                                            
Model: Generic STORAGE DEVICE (scsi)
Disk /dev/sda: 3905MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

    Number  Start   End     Size    Type     File system  Flags
     1      1049kB  99.6MB  98.6MB  primary  fat32        lba
     2      99.6MB  3905MB  3805MB  primary  ext4         lba

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

    pi@raspberrypi:~ $ sudo mkfs.vfat -n BOOT -F 32 /dev/sda1       
mkfs.fat 3.0.27 (2014-11-12)
pi@raspberrypi:~ $ sudo mkfs.ext4 /dev/sda2
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 929024 4k blocks and 232464 inodes
Filesystem UUID: 2cf0a8cc-917b-4bb5-9e37-982695d7c4e6
Superblock backups stored on blocks: 
    	32768, 98304, 163840, 229376, 294912, 819200, 884736

    Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

    pi@raspberrypi:~ $ 
  1. 今使ってるRaspbianのシステムをUSBへコピー

    今使ってるRaspbianのシステムをUSBへコピー.

sudo mkdir /mnt/target
sudo mount /dev/sda2 /mnt/target/
sudo mkdir /mnt/target/boot
sudo mount /dev/sda1 /mnt/target/boot/
sudo apt-get update; sudo apt-get install rsync
sudo rsync -ax --progress / /boot /mnt/target


    ```txt:時間を計ってみたら
# Raspbian Liteにて。
real	6m57.916s
user	0m23.290s
sys	0m26.180s
  1. sshホストキーの再生成

    sshホストキーの再生成.

cd /mnt/target
sudo mount --bind /dev dev
sudo mount --bind /sys sys
sudo mount --bind /proc proc
sudo chroot /mnt/target
rm /etc/ssh/ssh_host*
dpkg-reconfigure openssh-server
exit
sudo umount dev
sudo umount sys
sudo umount proc



7. `/boot/cmdline.txt`と`/etc/fstab`の編集
    - mmcblk0p => sda みたいにする

    ```bash
sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/target/boot/cmdline.txt
sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/target/etc/fstab
  1. ファイルシステムのアンマウントして、らずぱい電源オフ. (ちゃんとオフになるのを待つように)

cd ~
sudo umount /mnt/target/boot
sudo umount /mnt/target
sudo poweroff


9. USBストレージで起動
    - 電源を抜いて、
    - SDカードを抜いて、
    - 電源をさす。
    - => すべてがうまく行っている場合は、Piが数秒後に起動を開始するはずだ。



## その他
- [qiitapoi@twitterにて](https://twitter.com/qiitapoi/status/761404408173244416)

<!-- https://twitter.com/dexdev/status/776713696391245824 -->
40
46
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
46

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?