一時的な領域の追加

パピーを名犬にするための技、テクニック

モデレータ: 暇人, YoN, nyu

返信する
rsurf
記事: 86
登録日時: 09/01/03(土) 12:42

一時的な領域の追加

投稿記事 by rsurf »

コンパイルの為に一時的にlinux用区画容量を追加したり、大きいアプリケーションを走らせるために
一時的にスワップ領域を追加することができます。

linux用領域
デスクトップのドライブアイコンをクリックしてマウント。ここでは仮にsda1とします。
デスクトップのターミナルアイコンをクリックして端末画面を開きます。
(3連右ボタンクリックで行選択、中ボタンで貼れます)
-
df -h /mnt/sda1;# 空き容量(Avail)をチェックします。
# "/mnt/sda1"下に空のファイルを作成。ここでは仮に"ext2.img"という名前で1024MiBとします。
# FAT32区画の場合、上限は4GiB=4096MiBです。
dd if=/dev/zero of=/mnt/sda1/ext2.img bs=1M count=1024
mke2fs /mnt/sda1/ext2.img;# 空のファイルをext2形式でフォーマットします。
mkdir /ext;# マウント先ディレクトリを作成。ここでは仮に"/ext"という名前とします。
-
# 前回同じ領域を使用していて停電やハングアップした場合の追加領域のチェックディスク
fsck -fy /mnt/sda1/ext2.img;# ループバックマウントしていない状態で実行します。
-
mount -o loop /mnt/sda1/ext2.img /ext;# "/ext"下に"ext2.img"の領域を割り当てます(ループバックマウント)。
# "/ext"下でなにかしらの作業をします。
# 以下、再起動後にROXで"/ext"と"ext2.img"を削除しても良いです。
umount /ext;# アンマウントします
rmdir /ext;# マウント先ディレクトリを削除します。
rm /mnt/sda1/ext2.img;# 一時領域のファイルを削除します。

スワップ領域
# タスクバーの空き容量(xxxx free)を確認してください。
# "/"下に空のファイルを作成。ここでは仮に"tmpfs.img"という名前で200MiBとします。
dd if=/dev/zero of=/tmpfs.img bs=1M count=200
mkswap /tmpfs.img;# 空のファイルをtmpfs形式でフォーマットします。
swapon /tmpfs.img;# "tmpfs.img"の領域をスワップ領域に追加します。
free;# スワップ領域の状態を確認します。
# なにかしらの作業をします。
# 再起動後に"/tmpfs.img"を削除します。
_________________
OS:puppy-4.2.0-JP(手動frugal)+grub4dos(v0.4.3),CPU:Celeron420,RAM:2GB,
HDD:SATA500GB,MB:G31M-S2L(bios F9,G31+ICH7,Audio:ALC662,LAN:RTL8111C),VGA:Onboard
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Re: 一時的な領域の追加

投稿記事 by シノバー »

rsurf さんが書きました:コンパイルの為に一時的にlinux用区画容量を追加したり、大きいアプリケーションを走らせるために
一時的にスワップ領域を追加することができます。
有用な情報ありがとうございます。

Windowsとデュアルブートしているとき、
Windowsの仮想メモリが pagefile.sysという名前でファイルとして存在しています。
パピーが走っているとき、このファイルはパピーが自由に使えます。
rsurfさんの言う ext2.img あるいは tmpfs.img を pagefile.sysと読み替えると
同じように使えます。
dd if=/dev/zero of=... のところは Windowsがやってくれているので不要です。
Windowsの仮想メモリの設定をサイズ固定にしてやると使いやすいかと思います。

ntfsフォーマットのパーティション上のファイルをswapには使えないと思っていましたが、
いま実験してみると、mkswpすれば ntfs上のものでも使えますね...。
The bar master, Shino's Bar
http://shinobar.net/
rsurf
記事: 86
登録日時: 09/01/03(土) 12:42

投稿記事 by rsurf »

どうもありがとうございます。精力的にPUPPYの開発に参加されているようで、ありがたく使わせてもらっております。
「WindowsとLinuxで仮想メモリを共用」(http://shino.pos.to/linux/dualswap.html)の記事、拝見させてもらいました、
気分を悪くされないで頂きたいのですが、スワップの件ちょっと説明を追加させてください。

以前にMS-Windows3.1と95、98SEと2000でスワップ領域を共有しようと努力したことがあります。
ファイル名と場所(可変)が異なる、標準ではサイズが可変なので必要分より小さい場合がある、
Microsoft標準で一区画に最大4種のOSが混在可能(MS-DOS > Windows3.1 > Windows9x > Windows NT の順で
インストールした場合(同名ファイルはインストール時にリネームされ起動時に書き戻される))で最大3個の
スワップファイルが存在するといった問題はありますが、ユーザーが意識的にスワップファイル使いまわそうとする
なら有用なスクリプトだと思いました。
最後の"swapoff"は環境によっては危険かと思われます(捨てる筈の物理メモリ以上の大きさの内容を物理メモリに無理に
書き戻そうとする場合があると思います)。
Windows3.1はもう使われていないと思いますが、Windows9xやWindows9xとNT系が混在している環境なら
Windows9x側で以下の様に設定すると複数OS間で共用できると思います。
-
NT系が混在している場合NT側で最小値(PUPPYで必要とする最小値)最大値(Windows9xで対応する最大値以下)
に設定します。次にWindows9x側で「Windows NT/2000 と Windows9x/Me のスワップファイルを共用するには」
(http://homepage2.nifty.com/winfaq/c/9xdisk.html#271)を参照してスワップファイル名を"Pagefile.sys"を使用し
上記の最小/最大値に合ったかたちで設定します。
_________________
OS:puppy-4.2.0-JP(手動frugal on ext3)+grub4dos(v0.4.3),CPU:Celeron420,RAM:2GB,
HDD:SATA500GB,MB:G31M-S2L(bios F9,G31+ICH7,Audio:ALC662,LAN:RTL8111C),VGA:Onboard
返信する