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