partition_tips

パーティション操作方法 対象:ボード/アーキテクチャ問わず全てのlinux

基本事項

  • usbメモリのデバイス名 /dev/sda , /dev/sdb , /dev/sdc ... の順になります
    • パーティション番号は後ろに数値がつきます
      /dev/sda1
      /dev/sda2
      /dev/sda3
  • sdカードのデバイス名は /dev/mmcblk0 , /dev/mmcblk1, /dev/mmcblk2 ... のようになります
    • パーティション番号は後ろにp数値がつきます
      /dev/mmcblk0p1
      /dev/mmcblk0p2
      /dev/mmcblk0p3

基本パーティションは最大4個作れます。基本パーティションの中に拡張パーテションが4つ作れます。図2の場合 p4 は見えません。p1,p2,p3,p5,p6,p7,p8 の7個になります。

pic1.png

パーティションサイズを決定する際に、CFやsdメモリの後ろに5%~10%の空きを作っておきます。 CFやsdメモリは銘柄によって多少サイズが違います。 dd (DD for Windows等) でイメージコピーする際、コピー先が少し小さい容量だとしても溢れないようにするためです。

pic2.png

メモリカードを大きくする場合のケーススタディ

メモリのコピーやパーティションのサイズ変更は開発用のLinuxPCで操作することをお勧めします。組込み機器実機ではメモリがマウント状態にあるのでrootfsのアンマウントやサイズ変更ができません。

2Gのメモリカードを使っていて、4Gに変更する場合

ddやDD for Windowsで2Gのイメージを4Gのメモリへコピーします。開発用LinuxPCに(USBメモリカードリーダなどを介して)挿入し /dev/sdb として認識したとします。図のようになります。

pic3.png

cfdiskで見るとこんな感じ

(開発PCにて /dev/sdb デバイスとして認識した場合)
# cfdisk /dev/sdb
                       Disk Drive: /dev/sdb
                 Size: 4040748544 bytes, 4040 MB
       Heads: 42   Sectors per Track: 45   Cylinders: 4175
  Name      Flags    Part Type FS Type       [Label]      Size (MB)
------------------------------------------------------------------
  sdb1                Primary  FAT16                         127.74
  sdb2                Primary  Linux                        1023.81
  sdb3                Primary  Linux                         511.91
                      Pri/Log  Free Space                   2377.3*

第3パーティション(/dev/sdb3)のサイズを大きくしたいとします。手順は素直に次の通り

  1. すでにあるデータ(ファイル)のコピー
  2. パーティションの削除
  3. 新規パーティションの作成
  4. フォーマット
  5. ファイルを元に戻す

すでにあるデータ(ファイル)のコピー

全てのファイルを扱うため root ユーザで操作すること
# mkdir ~/work  (~/work をワーク領域として仮定)
# mount /dev/sdb2 /media -o ro  (マウント先 /media は適当に状況に合わせて。-o roはreadonlyの指定。)
# cp -a /media/* ~/work/
# umount /media

パーティションの削除

# cfdisk /dev/sdb

pic4.png

カーソルキーの上下で sdb3 を選択。カーソルキーの左右で [Delete] を選択

新規パーティションの作成

pic5.png

カーソルキーの上下で Free Space を選択。カーソルキーの左右で [New] を選択
[Primary] 基本パーティションを選択
サイズは全部にしない。少し余らせる 例として 2500 とする
[Beginning] 先頭からを選択

カーソルキーの左右で [Write] を選択し yes と答える。[Quit]で終了する

pic6.png

フォーマット

ext3でフォーマット

# mkfs.ext3 /dev/sdb3

ファイルを元に戻す

# mount /dev/sdb3 /media
# cp -a ~/work/* /media
# sync
# umount /media

最終的に第三パーティションのサイズが拡張されこのようになります。

pic7.png

関連