「SSDからRaspbianを起動する方法」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
118行目: 118行目:


===== 自動マウントの設定 =====
===== 自動マウントの設定 =====
/etc/fstabにSSDを登録することにより、起動時に自動マウントすることができる。<br>
/etc/fstabにSSDのPARTUUIDを登録することにより、起動時に自動マウントすることができる。<br>
また、SSDのフルパスではなく、UUIDを登録しておくことにより、SSDのフルパスが変更されてもマウントすることが可能となる。<br>
PARTUUIDを登録する理由は、SSDのフルパスが変更されてもマウントできるからである。<br>
<br>
<br>
マウントポイントを作成する。(ここでは、/mnt/ssd1とする)<br>
まず、SSDのパーティションをアンマウントする。
  sudo mkdir /mnt/ssd1
  sudo umount /dev/sda1
<br>
<br>
SSDのUUID(ブロックデバイスの情報)を調べる。<br>
次に、マウントポイントを作成する。(ここでは、tmpディレクトリ内に作成する)<br>
  sudo blkid /dev/sda1
  sudo mkdir /tmp/mmcrf /tmp/ssdrf
   
  sudo mount /dev/mmcblk0p2 /tmp/mmcrf  ←Raspbian OSのルートディレクトリをマウント
  --結果--
  sudo mount /dev/sda1 /tmp/ssdrf
/dev/sda1: UUID="fbab8a4f-3211-4b03-b53a-1579c93054aa" TYPE="ext4"
<br>
<br>
fstabを編集する。<br>
上記で作成した/tmp/mmcrfから/tmp/ssdrfへtarコマンドを使用して全てコピーする。
fstabでの設定に誤りがある場合、再起動時にemergency modeで起動される。(必ずfstabファイルのバックアップを取ること)<br>
cd /tmp/mmcrf
また、nofailオプションを指定することで、エラーの設定項目を無視して起動できる。<br>
sudo tar --backup -c * | sudo tar -C /tmp/ssdrf -xv
<br>
<br>
fstabファイルのバックアップを作成する。<br>
ディスクの調整を行う。<br>
  cd /etc
  sudo umount /dev/sda1
  sudo cp fstab fstab.org
  sudo e2fsck -f /dev/sda1
<br>
<br>
fstabファイルを編集してマウント設定を追加する。<br>
ブートファイルであるcmdline.txtを編集する。(cmdline.txtのバックアップを作成すること)<br>
cmdline.txtの中にあるroot=/dev/mmcblk0p2をroot=PARTUUID=xxxxに変更する。<br>
(PARTUUIDの値は、blkidコマンドを実行することで表示される)<br>
sudo cp /boot/cmdline.txt /boot/cmdline.txt.org
sudo nano /tmp/boot/cmdline.txt
# 変更前
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
# 変更後
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=xxxxxxxx-xx rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
<br>
fstabを編集して、PARTUUIDの値を変更する。<br>
fstabの設定に誤りがある場合、再起動時にemergency modeで起動されるので、必ずfstabファイルのバックアップを取ること。<br>
sudo cp /etc/fstab /etc/fstab.org
  sudo nano /etc/fstab
  sudo nano /etc/fstab
   
   
  # デバイス名 マウントポイント ファイルシステム オプション dump指定 fsck指定
  # proc                /proc          proc    defaults          0      0
  UUID=fbab8a4f-3211-4b03-b53a-1579c93054aa /mnt/ssd1 ext4 nofail 0 0
  PARTUUID=xxxxxxxx-xx  /               ext4   defaults,noatime  0       1
<br>
<br>
Raspbian OSを再起動する。<br>
Raspbian OSを再起動する。<br>
  sudo reboot
  sudo reboot
<br>
正常にSSDが自動マウントされていることを確認する。<br>
df | grep /mnt/ssd1
--結果--
/dev/sda      3845578572  69632 3650141680    1% /mnt/ssd1
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Raspberry_Pi]]
[[カテゴリ:Raspberry_Pi]]

2019年12月10日 (火) 01:54時点における版

概要



SDカード必要 SSD起動ディスク化

デバイス名の確認

以下のコマンドを実行する。

sudo fdisk -l | grep /dev/sda

--結果--
Device         Boot   Start       End   Sectors  Size Id Type
/dev/mmcblk0p1         2048   3656250   3654203  1.8G  e W95 FAT16 (LBA)
/dev/mmcblk0p2      3656251 123494399 119838149 57.1G  5 Extended
/dev/mmcblk0p5      3661824   3727357     65534   32M 83 Linux
/dev/mmcblk0p6      3727360   3868671    141312   69M  c W95 FAT32 (LBA)
/dev/mmcblk0p7      3874816 123494399 119619584   57G 83 Linux

Disk /dev/sda: 111.8 GiB, 120034121728 bytes, 234441644 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: dos
Disk identifier: 0x3d0e23d3


パーティションの作成

SSDのパーティションを作成するため、以下のコマンドを実行する。

sudo fdisk /dev/sda


続いて、以下のように入力していく。

# パーティションテーブルの設定を行う
sudo fdisk /dev/sda

# d でパーティションを削除する
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.

# p で現在の状態を確認
Command (m for help): p
Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F3BA4D9C-C2F7-43FF-837C-D3BFBFBF5C1D

# n でパーティションを作成(何も入力しない場合は全てデフォルトとなる)
Command (m for help): n
Partition number (1-128, default 1): 1
First sector (34-7814037134, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-7814037134, default 7814037134):

Created a new partition 1 of type 'Linux filesystem' and of size 3.7 TiB.

# p で作成したパーティションを確認する
Command (m for help): p
Disk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F3BA4D9C-C2F7-43FF-837C-D3BFBFBF5C1D

Device     Start        End    Sectors  Size Type
/dev/sda1   2048 7814037134 7814035087  3.7T Linux filesystem

# w で変更を書き込む
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.


作成したパーティションの確認

上記で作成したパーティションを確認するため、以下のコマンドを実行する。

sudo fdisk -l
--結果--
...省略
Disk /dev/sda: 111.8 GiB, 120034121728 bytes, 234441644 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: dos
Disk identifier: 0x2a6be21a

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 234441643 234439596 111.8G 83 Linux


lsblk
--結果--
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda             8:0    0 111.8G  0 disk 
└─sda1        8:1    0 111.8G  0 part 
mmcblk0       179:0    0  58.9G  0 disk 
├─mmcblk0p1 179:1    0  42.9M  0 part /boot
└─mmcblk0p2 179:2    0  29.8G  0 part


パーティションのフォーマット(ext4)

SSDに作成したパーティションをフォーマットするため、以下のコマンドを実行する。

sudo mkfs.ext4 /dev/sda1

mke2fs 1.43.4 (31-Jan-2017)
Found a dos partition table in /dev/sda1
Proceed anyway? (y,N) y   ←"y"を入力
Creating filesystem with 29305205 4k blocks and 7331840 inodes
Filesystem UUID: bf3db726-f1fa-4a6c-a64b-fe48bbfa9a99
Superblock backups stored on blocks: 
     32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
     4096000, 7962624, 11239424, 20480000, 23887872

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


自動マウントの設定

/etc/fstabにSSDのPARTUUIDを登録することにより、起動時に自動マウントすることができる。
PARTUUIDを登録する理由は、SSDのフルパスが変更されてもマウントできるからである。

まず、SSDのパーティションをアンマウントする。

sudo umount /dev/sda1


次に、マウントポイントを作成する。(ここでは、tmpディレクトリ内に作成する)

sudo mkdir /tmp/mmcrf /tmp/ssdrf
sudo mount /dev/mmcblk0p2 /tmp/mmcrf   ←Raspbian OSのルートディレクトリをマウント
sudo mount /dev/sda1 /tmp/ssdrf


上記で作成した/tmp/mmcrfから/tmp/ssdrfへtarコマンドを使用して全てコピーする。

cd /tmp/mmcrf
sudo tar --backup -c * | sudo tar -C /tmp/ssdrf -xv


ディスクの調整を行う。

sudo umount /dev/sda1
sudo e2fsck -f /dev/sda1


ブートファイルであるcmdline.txtを編集する。(cmdline.txtのバックアップを作成すること)
cmdline.txtの中にあるroot=/dev/mmcblk0p2をroot=PARTUUID=xxxxに変更する。
(PARTUUIDの値は、blkidコマンドを実行することで表示される)

sudo cp /boot/cmdline.txt /boot/cmdline.txt.org
sudo nano /tmp/boot/cmdline.txt

# 変更前
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
# 変更後
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=xxxxxxxx-xx rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait


fstabを編集して、PARTUUIDの値を変更する。
fstabの設定に誤りがある場合、再起動時にemergency modeで起動されるので、必ずfstabファイルのバックアップを取ること。

sudo cp /etc/fstab /etc/fstab.org
sudo nano /etc/fstab

# proc                /proc           proc    defaults          0       0
PARTUUID=xxxxxxxx-xx  /               ext4    defaults,noatime  0       1


Raspbian OSを再起動する。

sudo reboot