ブート時にsfsファイルをロードしなくする設定方法を教えてくだ

パピーリナックスを初めて使う方

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

返信する
きったん
記事: 3
登録日時: 09/04/02(木) 13:37

ブート時にsfsファイルをロードしなくする設定方法を教えてくだ

投稿記事 by きったん »

puppyを仮想環境で使おうと考えています。
早速ですが、ブート時にsfsファイルをメモリにロードしなくする設定方法(noram?)を教えてください。

メモリ200MBくらいだとオプションの設定なしでもsfsファイルをロードしなかったと思うんですが、300MB以上あるとCDブートでpuppy pfix=noramで起動してもsfsファイルをロードしてしまいます。
FRUGALインストールした環境でmenu.lstにpuppy pfix=noramやpfix=noramを記述してみてもやっぱりsfsファイルをロードしてしまいます。

フラッシュメモリにインストールすればインストーラが設定してくれるようですが、USBメモリを使うには実機でブートしないといけなくて、そのためだけにCD焼くのももったいないので。
すいません。

FULLインストールしたときはブート時に100MBくらいしか消費しないのに、FRUGALインストールしたときは200MBとか300MB消費しています。
メモリだけの問題ならFULLインストールすれば済みますが、アプリケーションのインストールやり直しがめんどくさくなるし、普段使わないソース等のインストールで無駄に太るとせっかくの軽量環境が台無しになるので、起動オプションで解決できればと思いまして。
アバター
みのむし
記事: 1164
登録日時: 08/09/10(水) 13:56
お住まい: 福岡市中央区草香江1-2-40-101号
連絡する:

Re: ブート時にsfsファイルをロードしなくする設定方法を教えて

投稿記事 by みのむし »

きったん さんが書きました:puppyを仮想環境で使おうと考えています。
早速ですが、ブート時にsfsファイルをメモリにロードしなくする設定方法(noram?)を教えてください。

メモリ200MBくらいだとオプションの設定なしでもsfsファイルをロードしなかったと思うんですが、300MB以上あるとCDブートでpuppy pfix=noramで起動してもsfsファイルをロードしてしまいます。
FRUGALインストールした環境でmenu.lstにpuppy pfix=noramやpfix=noramを記述してみてもやっぱりsfsファイルをロードしてしまいます。

フラッシュメモリにインストールすればインストーラが設定してくれるようですが、USBメモリを使うには実機でブートしないといけなくて、そのためだけにCD焼くのももったいないので。
すいません。

FULLインストールしたときはブート時に100MBくらいしか消費しないのに、FRUGALインストールしたときは200MBとか300MB消費しています。
メモリだけの問題ならFULLインストールすれば済みますが、アプリケーションのインストールやり直しがめんどくさくなるし、普段使わないソース等のインストールで無駄に太るとせっかくの軽量環境が台無しになるので、起動オプションで解決できればと思いまして。
>FRUGALインストールしたときは200MBとか300MB消費しています。

FRUGALインストールした場合は個人保存ファイル pup_save.2fs を作成しておいてください。
設定を保存するためには必要です。

外しているかもしれませんが、
4.1.2-JP)
デスクトップの「設定」アイコンをクリック
『パピーの基本的な設定』
「パピーのスタートアップを設定...」
『パピーブートマネージャー』
「SFSファイルのロード」
「上のユーザー選択を無視してファイル名が'_412'の全てのファイルをロードする」
にチェックが付いていたら、クリックしてチェックを外し、
[OK]をクリック
[終了]をクリック
シャットダウンして再起動する。
みのむし
Notebook PC HP G62
CPU: Intel(R) Core(TM)i5 M450 @ 2.40GHz
MEM: 4GB
Puppy Linux Quickset 5.1.1 JP
PC内蔵無線LANデバイス RTL8171(r8192se_pci)
y@s

Re: ブート時にsfsファイルをロードしなくする設定方法を教えて

投稿記事 by y@s »

きったんさんはじめまして。
きったん さんが書きました:puppyを仮想環境で使おうと考えています。
早速ですが、ブート時にsfsファイルをメモリにロードしなくする設定方法(noram?)を教えてください。

メモリ200MBくらいだとオプションの設定なしでもsfsファイルをロードしなかったと思うんですが、300MB以上あるとCDブートでpuppy pfix=noramで起動してもsfsファイルをロードしてしまいます。
FRUGALインストールした環境でmenu.lstにpuppy pfix=noramやpfix=noramを記述してみてもやっぱりsfsファイルをロードしてしまいます。
オプションがちょっと違います。
×pfix=noram
○pfix=ram
CDブートのときぐらいしか使わないので忘れちゃいますね。
わたしもmenu.lstで、個人設定ファイル有り無しを切り替えて使っています。
インストール直後の状態に戻せるので、いろいろな検証やリカバリに重宝しています。
きったん
記事: 3
登録日時: 09/04/02(木) 13:37

投稿記事 by きったん »

すばやい回答ありがとうございます。
早速試してみましたが、期待する動作にはなりませんでした。

みのむしさん
追加のsfsファイルをロードしてもしなくても、起動時の使用メモリは変わりありませんでした。

y@sさん
pfix=ramでは、セーブファイルpup_save.2fsを読まないで起動しました。
期待した動作ではありませんが、CDブート時は使用メモリが100MBほど減りました。
HDDブートだと使用メモリに変化がないのが不思議です。


僕が回避したいのは、ブート時に次のように表示され、pup_4121JP.sfsがメモリにコピーされることです。
Loading the 'pup_4121JP.sfs' main file... copying to ram
HDDへのFRUGALインストールなのでメモリへのコピーは無駄でしかないんです。
メモリが少ない場合やFULLインストールした場合にはコピーされないんですけど・・・

pfix=noramをmenu.lstに記述すれば上記が回避されると思っていじり回していたんですが・・・
menu.lstをいじってる途中に、kernelの項目を改行してたためにオプションが効いてないのに気がつきましたが、やっぱりpfix=noramは効いてないようです。
pfix=ramオプションだと設定をロードしないためにキーボードとか聞いてくるので、設定が有効かどうか判断しやすいですね。

ramは個人設定をロードしないし、noramはpup_4121JP.sfsをロードしないオプションらしいので、相反するものではないようですね。
pfix=ram,noramと指定したら、ramオプションはちゃんと効いてました。

ramとnoramのオプションを組み合わせていろいろ試してみましたが、pup_4121JP.sfsをロードするかどうかは単純に搭載メモリに依存しているようです。(適切に設定できてないだけ?)
メモリ200MB   pup_4121JP.sfsがロードされない
メモリ300MB以上 pup_4121JP.sfsがロードされる

英語の掲示板で、initrd.gzのinitていうファイルを編集して再圧縮する方法が紹介されていました。
そのファイルを見ると、pup_4121JP.sfsをメモリにコピーするかどうかは、noramオプションだけではなく搭載メモリも見るようになっているようですが、実際変化がない。
V404でnoramはいったん除外されて、V412で復活したみたいに書かれていましたが、本当に有効になっているんでしょうか。

また、フラッシュメモリインストールのウィザードでnoramに設定できるんでしょうか。


ちなみに現在GRUBを使っていて、menu.lstの設定は次のとおり

コード: 全て選択

title linux 412 frugal (on /dev/sda1)
rootnoverify (hd0,0)
kernel /vmlinuz pmedia=idehd pdev1=sda1 pfix=(ここでramやnoramを指定)
initrd /initrd.gz
アバター
みのむし
記事: 1164
登録日時: 08/09/10(水) 13:56
お住まい: 福岡市中央区草香江1-2-40-101号
連絡する:

投稿記事 by みのむし »

きったん さんが書きました:すばやい回答ありがとうございます。
早速試してみましたが、期待する動作にはなりませんでした。

みのむしさん
追加のsfsファイルをロードしてもしなくても、起動時の使用メモリは変わりありませんでした。

y@sさん
pfix=ramでは、セーブファイルpup_save.2fsを読まないで起動しました。
期待した動作ではありませんが、CDブート時は使用メモリが100MBほど減りました。
HDDブートだと使用メモリに変化がないのが不思議です。


僕が回避したいのは、ブート時に次のように表示され、pup_4121JP.sfsがメモリにコピーされることです。
Loading the 'pup_4121JP.sfs' main file... copying to ram
HDDへのFRUGALインストールなのでメモリへのコピーは無駄でしかないんです。
メモリが少ない場合やFULLインストールした場合にはコピーされないんですけど・・・

pfix=noramをmenu.lstに記述すれば上記が回避されると思っていじり回していたんですが・・・
menu.lstをいじってる途中に、kernelの項目を改行してたためにオプションが効いてないのに気がつきましたが、やっぱりpfix=noramは効いてないようです。
pfix=ramオプションだと設定をロードしないためにキーボードとか聞いてくるので、設定が有効かどうか判断しやすいですね。

ramは個人設定をロードしないし、noramはpup_4121JP.sfsをロードしないオプションらしいので、相反するものではないようですね。
pfix=ram,noramと指定したら、ramオプションはちゃんと効いてました。

ramとnoramのオプションを組み合わせていろいろ試してみましたが、pup_4121JP.sfsをロードするかどうかは単純に搭載メモリに依存しているようです。(適切に設定できてないだけ?)
メモリ200MB   pup_4121JP.sfsがロードされない
メモリ300MB以上 pup_4121JP.sfsがロードされる

英語の掲示板で、initrd.gzのinitていうファイルを編集して再圧縮する方法が紹介されていました。
そのファイルを見ると、pup_4121JP.sfsをメモリにコピーするかどうかは、noramオプションだけではなく搭載メモリも見るようになっているようですが、実際変化がない。
V404でnoramはいったん除外されて、V412で復活したみたいに書かれていましたが、本当に有効になっているんでしょうか。

また、フラッシュメモリインストールのウィザードでnoramに設定できるんでしょうか。


ちなみに現在GRUBを使っていて、menu.lstの設定は次のとおり

コード: 全て選択

title linux 412 frugal (on /dev/sda1)
rootnoverify (hd0,0)
kernel /vmlinuz pmedia=idehd pdev1=sda1 pfix=(ここでramやnoramを指定)
initrd /initrd.gz
>僕が回避したいのは、ブート時に次のように表示され、pup_4121JP.sfsがメモリにコピーされることです。
Loading the 'pup_4121JP.sfs' main file... copying to ram

Frugalインストールの場合、この pup_4121JP.sfs がメモリにコピーされることは必須事項ですので外せません。
これがメモリにコピーされることで Puppy Linux が起動しているのです。
(pup_4121JP.sfs は Puppy 4.1.2.1-JP システムの SFSファイルです)

Frugal install(質素なインストール) | Puppy Linux
http://www.puppylinux.org/manuals/puppy-301/
日本語 > パピーをどうやってインストールしますか > frugal-install質素なインストール-0

外したいのは
AdobeReader
OO.o
devx
などの事だと思っていました。

どうしてもそうしたいなら、Frugalインストールを止めて Fullインストールしてください。
みのむし
Notebook PC HP G62
CPU: Intel(R) Core(TM)i5 M450 @ 2.40GHz
MEM: 4GB
Puppy Linux Quickset 5.1.1 JP
PC内蔵無線LANデバイス RTL8171(r8192se_pci)
y@s

投稿記事 by y@s »

TO:きったんさん
私の先のレスは全くきったんさんの要望を汲み取れていませんでしたね。
よく理解せずにレスを付けてしまい申し訳ないです。
自分への戒めとしてinitスクリプトを読んでみました。
きったん さんが書きました:ramとnoramのオプションを組み合わせていろいろ試してみましたが、pup_4121JP.sfsをロードするかどうかは単純に搭載メモリに依存しているようです。(適切に設定できてないだけ?)
メモリ200MB   pup_4121JP.sfsがロードされない
メモリ300MB以上 pup_4121JP.sfsがロードされる

英語の掲示板で、initrd.gzのinitていうファイルを編集して再圧縮する方法が紹介されていました。
そのファイルを見ると、pup_4121JP.sfsをメモリにコピーするかどうかは、noramオプションだけではなく搭載メモリも見るようになっているようですが、実際変化がない。
V404でnoramはいったん除外されて、V412で復活したみたいに書かれていましたが、本当に有効になっているんでしょうか。
ご認識の通りでした。「おそらく」バグではないでしょうか。(理由は後述)
現在のinitスクリプトでは搭載物理メモリが280MB以上の場合は、noramオプションを無視してpup_4121JP.sfsをメモリにロードしています。
pup_4121JP.sfsがメモリにロードされる条件は以下の通りでした。
・物理搭載メモリが220MB以上で、起動時オプションにpfix=copyが指定されているとき
・物理搭載メモリが280MB以上のとき
※HDDへのFrugalインストール時限定の話です。他にもインストールメディアやインストール形態を考慮してメモリロードの挙動を決定しています。

私が「おそらく」バグだろうと考えた理由は、下記コードからです。(こちらもきったんさんご指摘通りですね)
file:init

コード: 全て選択

line23: #v404 13Jul08: pfix=noram removed, now need pfix=copy to copy .sfs to ram.
(略)
line35: #v412 restored pfix=noram, sort of.
(略)
line182: [ "$PNORAM" = "yes" ] && PCOPY="no" #v412
・noramオプション廃止。デフォルト挙動はメモリにロードしないようにして、ロードしたいときは明示的にcopyオプションを指定するように変更(v404)
・一時的にnoramオプション復活(v412)
行182がアドホック的に追加されたnoramオプション復活の為のコードのようですが、PCOPY="no"という値は、その後参照されることがありません。
搭載物理メモリが280MB以上且つPCOPY=noの時「以外」にメモリロードすべきところが、そのような実装になっていないようです。

現在のinitスクリプト:line991

コード: 全て選択

 [ "`echo -n "$FASTPARTS0" | grep "$PUPSFSDEV"`" != "" ] && [ $RAMSIZE -gt 280000 ] && COPY2RAM="yes"
「おそらく」本来の動作:line991

コード: 全て選択

 [ "`echo -n "$FASTPARTS0" | grep "$PUPSFSDEV"`" != "" ] && [ $RAMSIZE -gt 280000 ] && [ "$PCOPY" != "no" ] && COPY2RAM="yes"
上記の修正でnoramオプションが有効になります。
上記のパッチとパック済みのinitrdを下記においておきます。
http://cid-d450862b68e09704.skydrive.li ... oram.patch
http://cid-d450862b68e09704.skydrive.li ... d-noram.gz
※お約束ですが完全に無保証です。VM上でコンパイルして実機上で動作確認していますが、全ての環境での動作検証・保障はできません。
※他人のパックしたアンオフィシャルなinitrdを使うのは気持ちが悪いと思いますので、不安であれば御自分で修正されることをお勧めします。
※既存のinitrdには上書きせず、menu.lstでinitrdの指定を変えたエントリを増やしてお使いください。(いつでも戻せるように)

TO:みのむしさん
みのむし さんが書きました: Frugalインストールの場合、この pup_4121JP.sfs がメモリにコピーされることは必須事項ですので外せません。
これがメモリにコピーされることで Puppy Linux が起動しているのです。
(pup_4121JP.sfs は Puppy 4.1.2.1-JP システムの SFSファイルです)

Frugal install(質素なインストール) | Puppy Linux
http://www.puppylinux.org/manuals/puppy-301/
日本語 > パピーをどうやってインストールしますか > frugal-install質素なインストール-0
そうなんですよね。公式のマニュアルには確かにそう書いてあるんです。
でも、実際の挙動は上記の通りでした。
詳細に書くと初心者が混乱するかもしれないので、簡易な書き方になっているのでしょうね。
アバター
みのむし
記事: 1164
登録日時: 08/09/10(水) 13:56
お住まい: 福岡市中央区草香江1-2-40-101号
連絡する:

投稿記事 by みのむし »

y@s さんが書きました:TO:きったんさん
私の先のレスは全くきったんさんの要望を汲み取れていませんでしたね。
よく理解せずにレスを付けてしまい申し訳ないです。
自分への戒めとしてinitスクリプトを読んでみました。
きったん さんが書きました:ramとnoramのオプションを組み合わせていろいろ試してみましたが、pup_4121JP.sfsをロードするかどうかは単純に搭載メモリに依存しているようです。(適切に設定できてないだけ?)
メモリ200MB   pup_4121JP.sfsがロードされない
メモリ300MB以上 pup_4121JP.sfsがロードされる

英語の掲示板で、initrd.gzのinitていうファイルを編集して再圧縮する方法が紹介されていました。
そのファイルを見ると、pup_4121JP.sfsをメモリにコピーするかどうかは、noramオプションだけではなく搭載メモリも見るようになっているようですが、実際変化がない。
V404でnoramはいったん除外されて、V412で復活したみたいに書かれていましたが、本当に有効になっているんでしょうか。
ご認識の通りでした。「おそらく」バグではないでしょうか。(理由は後述)
現在のinitスクリプトでは搭載物理メモリが280MB以上の場合は、noramオプションを無視してpup_4121JP.sfsをメモリにロードしています。
pup_4121JP.sfsがメモリにロードされる条件は以下の通りでした。
・物理搭載メモリが220MB以上で、起動時オプションにpfix=copyが指定されているとき
・物理搭載メモリが280MB以上のとき
※HDDへのFrugalインストール時限定の話です。他にもインストールメディアやインストール形態を考慮してメモリロードの挙動を決定しています。

私が「おそらく」バグだろうと考えた理由は、下記コードからです。(こちらもきったんさんご指摘通りですね)
file:init

コード: 全て選択

line23: #v404 13Jul08: pfix=noram removed, now need pfix=copy to copy .sfs to ram.
(略)
line35: #v412 restored pfix=noram, sort of.
(略)
line182: [ "$PNORAM" = "yes" ] && PCOPY="no" #v412
・noramオプション廃止。デフォルト挙動はメモリにロードしないようにして、ロードしたいときは明示的にcopyオプションを指定するように変更(v404)
・一時的にnoramオプション復活(v412)
行182がアドホック的に追加されたnoramオプション復活の為のコードのようですが、PCOPY="no"という値は、その後参照されることがありません。
搭載物理メモリが280MB以上且つPCOPY=noの時「以外」にメモリロードすべきところが、そのような実装になっていないようです。

現在のinitスクリプト:line991

コード: 全て選択

 [ "`echo -n "$FASTPARTS0" | grep "$PUPSFSDEV"`" != "" ] && [ $RAMSIZE -gt 280000 ] && COPY2RAM="yes"
「おそらく」本来の動作:line991

コード: 全て選択

 [ "`echo -n "$FASTPARTS0" | grep "$PUPSFSDEV"`" != "" ] && [ $RAMSIZE -gt 280000 ] && [ "$PCOPY" != "no" ] && COPY2RAM="yes"
上記の修正でnoramオプションが有効になります。
上記のパッチとパック済みのinitrdを下記においておきます。
http://cid-d450862b68e09704.skydrive.li ... oram.patch
http://cid-d450862b68e09704.skydrive.li ... d-noram.gz
※お約束ですが完全に無保証です。VM上でコンパイルして実機上で動作確認していますが、全ての環境での動作検証・保障はできません。
※他人のパックしたアンオフィシャルなinitrdを使うのは気持ちが悪いと思いますので、不安であれば御自分で修正されることをお勧めします。
※既存のinitrdには上書きせず、menu.lstでinitrdの指定を変えたエントリを増やしてお使いください。(いつでも戻せるように)

TO:みのむしさん
みのむし さんが書きました: Frugalインストールの場合、この pup_4121JP.sfs がメモリにコピーされることは必須事項ですので外せません。
これがメモリにコピーされることで Puppy Linux が起動しているのです。
(pup_4121JP.sfs は Puppy 4.1.2.1-JP システムの SFSファイルです)

Frugal install(質素なインストール) | Puppy Linux
http://www.puppylinux.org/manuals/puppy-301/
日本語 > パピーをどうやってインストールしますか > frugal-install質素なインストール-0
そうなんですよね。公式のマニュアルには確かにそう書いてあるんです。
でも、実際の挙動は上記の通りでした。
詳細に書くと初心者が混乱するかもしれないので、簡易な書き方になっているのでしょうね。
y@sさん、ご苦労様です。
私は単純に、Frugalインストールの場合はシステムをRAMにコピーすると考えています。
きったんさんがRAMにコピーさせないとするなら、Fullインストールすべきだと思います。
みのむし
Notebook PC HP G62
CPU: Intel(R) Core(TM)i5 M450 @ 2.40GHz
MEM: 4GB
Puppy Linux Quickset 5.1.1 JP
PC内蔵無線LANデバイス RTL8171(r8192se_pci)
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

メモリの使用量を減らしたい動機がよくわかりませんが、HDに余裕があり、かつ、単にメモリに余裕を持たせたいというのであれば、HDにlinux-swapパーティションを切るのも一案かと思います。ソフトを多数起動して実メモリが一杯になったらlinux-swapを仮想メモリとして使います。
きったん
記事: 3
登録日時: 09/04/02(木) 13:37

pfix=noramでの起動に成功

投稿記事 by きったん »

 y@sさんのinitrd-noram.gzファイルで期待通りにブートしました。ありがとうございました。
 メモリ使用量はHDD FULLインストールと変わらず、デスクトップのアプリケーションも一通り起動できました。
 もしかしたら自分で書き換えるしかないかなと考えましたが、initファイルはその量も多いですが、記述がさっぱりわからなかったので、作っていただけて本当に助かりました。


 もちろん実機で動かす場合はnoramなど使わないほうが快適で、メモリ量にあわせて適切に動作をする設定になっているのもわかっています。
 そして、みのむしさんの言葉もありましたが、納得できず、フラッシュメモリにインストールして設定を見てみました。

 確かフラッシュメモリへのインストールでnoramオプションをつけるかどうか聞かれるようなことをどこかで見ましたが、現バージョンではデフォルトの動作が逆で、220MB〜280MBの微妙な範囲をcopyオプションで切り替えるようになっているようですね。

 僕がFRUGALインストールを選んだのはもちろん手軽に使えるからですが、noramにこだわったのは仮想マシンのゲストOSとして「Windowsよりも手軽で軽量」な環境を求めているからです。
 実機で動かすならWindowsXPが快適に動くので、当然puppyも快適に動きますが、サーバー用とデスクトップアプリ用のゲストを同時に実行するなら、使用メモリが少なければ少ないだけ快適になります。
 それでもFULLインストールしたくなかったのは、Linuxがまだよくわからず、インストールを何度もやり直しているからです。
 もちろん一度はFULLインストールしていましたが、ミスをして結局消してしまいました。FULLインストールしていたので、FULLインストールするとメモリが少なくてすむことに気がついていたんです。
 今はインストール直後くらいの環境しかまだありませんが、それでも、イーサネットの設定はしているのにマイネットワークでホストのWindowsXPネットワーク(MSHOME)が出てこず、Googleも表示されない状態でした。
 IPアドレスは取得できていてPingは通るんですが。
 思い返せばイーサネットの設定をした後、イーサネット以外の接続設定画面を出したりしていたのでそれで何かが変更されてしまったのかもしれません。

 FRUGALインストールはそういう失敗をしてもすぐにやり直すことができるので安心して使うことができ、助かります。
y@s

Re: pfix=noramでの起動に成功

投稿記事 by y@s »

TO:みのむしさん
システムをメモリにロードすべきという点は全く同意です。
ただ、ロードしたくない場合はFullインストールというのは少し乱暴かな、と思います。
きったんさんも書かれているいる通り、Frugalインストールの恩恵は大きく、捨てるのは惜しいです。
個人的にはFullインストールを選ぶぐらいならPuppyを選んだ意味が無いとさえ考えています。(これも乱暴ですが、あくまで個人的な一意見として)
今回の件は、Puppy側で用意されている pfix=noram のオプションが正しく動作していない点が問題だと思っています。
pfix=ram や pfix=nox が正しく動作しなかったら困りますよね?
それと同じだと思っています。
ですので、解決方法としては noram オプションが働くようにすべきではないかと考えました。


TO:きったんさん
ご希望の動作となったようでなによりです。
私もPuppyの真価はFrugalでこそ発揮されるという考えです。
いつでも元に戻せるのですから、失敗を恐れず色々試してください。
きったん さんが書きました: 確かフラッシュメモリへのインストールでnoramオプションをつけるかどうか聞かれるようなことをどこかで見ましたが、現バージョンではデフォルトの動作が逆で、220MB〜280MBの微妙な範囲をcopyオプションで切り替えるようになっているようですね。
この挙動が、本当に開発者達の望んだ挙動なのか疑問です。
initスクリプトを読んだ限りでは、デフォルト動作ではメモリにロードせず、 copy オプション指定時のみロードするように変更していく方針なのかな、と理解しています。
ただ、その過程で copy,noramという相反するオプションが共存している為、うまく動作しなくなっているのかもしれません。
返信する