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

http://www.amazon.co.jp/%E3%82%B0%E3%83%AA%E3%83%BC%E3%83%B3%E3%83%8F%E3%82%A6%E3%82%B9-GH-SDC1GX-1GB-%E3%83%8F%E3%82%A4%E3%82%B9%E3%83%94%E3%83%BC%E3%83%89SD%E3%82%AB%E3%83%BC%E3%83%89/dp/B000ARLOF8%3FSubscriptionId%3D11VDG64RNE3BYZCZAVR2%26tag%3Divory-social-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB000ARLOF8

http://www.amazon.co.jp/%E3%82%B7%E3%83%A3%E3%83%BC%E3%83%97-SHARP-%E3%82%B6%E3%82%A6%E3%83%AB%E3%82%B9-SL-C760/dp/B00009SO6V%3FSubscriptionId%3D11VDG64RNE3BYZCZAVR2%26tag%3Divory-social-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00009SO6V