iPhone/Touch ディスク容量不足を解決しよう
ipod touch FW 2.2で確認済みです。
iPod touchの記憶媒体(フラッシュメモリ)は、2つに区切られています。
ssh(root/alpine)でログインし、dfコマンドで知ることができます。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/disk0s1 300M 272M 26M 92% / devfs 15K 15K 0 100% /dev /dev/disk0s2 30G 150M 30G 1% /private/var
ルート(/)にマウントされているdisk0s1がシステム領域、 /private/varにマウントされているdisk0s1が音楽や動画などを記録しているメディア領域です。 iPod touchにInstaller.appでアプリをインストールすると、 全て/Aplications以下(システム領域)へファイルが置かれます。 しかし、システム領域は全体で300MBしかなく、色々とアプリを入れていくと、 どうしても容量が不足してきます。 「Running Out of Disk Space!」のエラーが表示されます。
普通のやり方はアプリをメディア領域に移動することですが、 私の場合、Python・PHP・lighthttpなど開発ソフトを入れるので、 普通のやり方だと「物足りない」なので、下記の方法を使いました。
メディア領域の方へアプリだけではなく、 シェアファイル・壁紙・フォント等を移動しました。 手順は、以下のとおり。
$ ssh root@192.168.1.X (←iPod touch のIP) (アプリの移動) #/bin/mkdir /private/var/Applications #/bin/cp -R -p /Applications/* /private/var/Applications #/bin/rm -rf /Applications #/bin/ln -s /private/var/Applications/ /Applications (シェアファイルの移動) #/bin/mkdir /private/var/usr/share #/bin/cp -R -p /usr/share/* /private/var/usr/share #/bin/rm -rf /usr/share #/bin/ln -s /private/var/usr/share /usr/share (ファントの移動) #/bin/mkdir /private/var/Fonts #/bin/cp -R -p /System/Library/Fonts/* /private/var/Fonts #/bin/rm -rf /System/Library/Fonts #/bin/ln -s /private/var/Fonts/ /System/Library/Fonts (壁紙の移動) #/bin/mkdir /private/var/Wallpaper #/bin/cp -R -p /Library/Wallpaper/* /private/var/Wallpaper #/bin/rm -rf /Library/Wallpaper #/bin/ln -s /private/var/Wallpaper/ /Library/Wallpaper # # (注意:iPhoneの場合のみ下記のRingtonesファイルを移動、Touchは存在しない) #/bin/mkdir /private/var/Ringtones #/bin/cp -R -p /Library/Ringtones/* /private/var/Ringtones #/bin/rm -rf /Library/Ringtones #/bin/ln -s /private/var/Ringtones/ /Library/Ringtones (TextInput/の移動) #/bin/mkdir /private/var/TextInput #/bin/cp -R -p /System/Library/TextInput/* /private/var/TextInput #/bin/rm -rf /System/Library/TextInput #/bin/ln -s /private/var/TextInput/ /System/Library/TextInput (iPhone/Touchを再起動)
FWバージョンによっては/etc/fstabが
/dev/disk0s1 / hfs rw 0 1 /dev/disk0s2 /private/var hfs rw,noexec 0 2
となっていた場合、下記のようにnoexecを取り除く必要があるようです。
/dev/disk0s1 / hfs rw 0 1 /dev/disk0s2 /private/var hfs rw 0 2
効果:かなりの容量を空け、システム領域の1/3容量が再生しました。 これで、余り空き容量を気にすることなく、 アプリとシステムソフトをどんどんインストールする事ができます。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/disk0s1 500M 213M 283M 43% / devfs 17K 17K 0 100% /dev /dev/disk0s2 30G 410M 30G 2% /private/var