Tag Archives: swap

pdaXrom:SDカードとswapファイル

 SDカードにswapファイルを作成する。
 環境は以下。
  • Zaurus SL-C760
  • pdaXrom 1.1.0 r197
  • グリーンハウス GH-SDC1GX(1Gbyte)
 まず、どのデバイスファイルがSDカードなのかということだが、pdaXrom 1.1.0 r197だと以下のファイルが該当する。

/dev/mmcblk0p1

 もし作業前にマウントされているならばアンマウントしておく。

# umount /mnt/card

 はじめに、fdiskによるパーティションの作成。今回は領域全てを1パーティションとして利用する事にする。
 nコマンドで新規パーティションを作成する(既にパーティションが作成されている場合にはdコマンドで解放)。

# fdisk /dev/mmcblk0p1

The number of cylinders for this disk is set to 30992.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition’s system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-30992, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-30992, default 30992):
Using default value 30992

 pコマンドで確認。

Command (m for help): p

Disk /dev/mmcblk0p1: 1015 MB, 1015549440 bytes
4 heads, 16 sectors/track, 30992 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

          Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1p1               1       30992      991736   83  Linux

 問題なければwコマンドで書込み。

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

 次に、ext3形式でフォーマットする。すこし時間がかかる。

# mkfs.ext3 /dev/mmcblk0p1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
124160 inodes, 247936 blocks
12396 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=255852544
8 block groups
32768 blocks per group, 32768 fragments per group
15520 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

 フォーマットが終了したらマウント。

# mount /dev/mmcblk0p1 /mnt/card

 dfコマンドで確認。約1GBの領域が/mnt/cardにマウントされているのがわかる。

# df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtdblock2          123904     56112     67792  45% /
/dev/mmcblk0p1          976120     17632    908904   2% /mnt/card

 swapファイルを作成する。以下は128Mbyteのswap向けファイルを作成する例だが、サイズを変更するならばcountの値を調整すること。

# dd if=/dev/zero of=/mnt/card/.swapfile bs=512 count=262144
262144+0 records in
262144+0 records out

 作成したファイルをswap領域として設定する。

# mkswap /mnt/card/.swapfile
Setting up swapspace version 1, size = 134213kB

 swapファイルを有効化。

#swapon /mnt/card/.swapfile

 以上でswapが有効となっているはず。freeコマンドで確認。

# free
              total         used         free       shared      buffers
  Mem:        62356        60904         1452            0          212
 Swap:       131064            0       131064
Total:       193420        60904       132516

 上記手順によりswapファイルを有効化した場合、当然のことながら無造作にSDカードを抜いてはいけない。
 下記のようにswapファイルを無効化し、アンマウントしてからイジェクトすること。

# swapoff /mnt/card/.swapfile
# umount /mnt/card

おしまい。
グリーンハウス (2005/08/31)
シャープ (2003/06/21)