pup_save.2fs を読み込み専用にするには。
pup_save.2fs を読み込み専用にするには。
私は、puppyをCDブートで起動してpup_save.2fs をUSBメモリーに保存しています。
puppyを起動してインターネット(www)をしていると、デスクトップの「save」ボタンを押していないのに「saving RAM to `pupsave` file...」と出てきます。保存しないようにするには、どうすればいいのでしょうか。
終了時のセーブもいりません。
puppyを起動してインターネット(www)をしていると、デスクトップの「save」ボタンを押していないのに「saving RAM to `pupsave` file...」と出てきます。保存しないようにするには、どうすればいいのでしょうか。
終了時のセーブもいりません。
| 2 8 6 → ふうせん Fu-sen. にアカウントを変更しました。
| ふうせん Fu-sen.(新アカウント) memberlist.php?mode=viewprofile&u=4770
| ぱぴ〜ふ〜ど http://puppylinux-food.zohosites.com/
| ふうせん Fu-sen.(新アカウント) memberlist.php?mode=viewprofile&u=4770
| ぱぴ〜ふ〜ど http://puppylinux-food.zohosites.com/
Re: pup_save.2fs を読み込み専用にするには。
シャットダウン時のセーブは、なくなりませんか。
(以下は無保証です。電源関係を扱うので慎重に。)
毎回、rc.shutdownに#をつけるのは大変なので、あらかじめrc.shutdownに#をつけたファイルを、例えば、nosavepoweroffという名前で/rootに置きます。終了する際に、これを、/etc/rc.d/rc.shutdownに上書きしたのち、通常の電源を切る操作をおこなえばセーブされずに終了できるはずです。
これを簡単に実行するために以下の実行ファイルを作ります。
ファイル名を、例えば、wmpoweroff2という名前で/rootに置きます。
次に/root/.jwmrcを編集します。195行目あたりに、
という行を追加します。以上の変更をpup_saveに保存するために通常の再起動を実行します。再起動すると、メニュー->シャットダウン->保存せずに電源を切る、という項目があるので、クリックするとセーブしないで終了するはずです。
毎回、rc.shutdownに#をつけるのは大変なので、あらかじめrc.shutdownに#をつけたファイルを、例えば、nosavepoweroffという名前で/rootに置きます。終了する際に、これを、/etc/rc.d/rc.shutdownに上書きしたのち、通常の電源を切る操作をおこなえばセーブされずに終了できるはずです。
これを簡単に実行するために以下の実行ファイルを作ります。
コード: 全て選択
#!/bin/sh
cp -f /root/nosaveshutdown /etc/rc.d/rc.shutdown
sleep 0.2
/usr/X11R7/bin/wmpoweroff
次に/root/.jwmrcを編集します。195行目あたりに、
コード: 全て選択
<Program label="保存せずに電源を切る" icon="mini-stop.xpm">exec /root/wmpoweroff2</Program>
2箇所ではなく3箇所でした。jake さんが書きました:(Puppy 4.00.3JPの)/etc/rc.d/rc.shutdownの622行目以降の"#save session..."に2箇所ある...
特に657-658行が本件とかかわりが大きいようです。この部分を
コード: 全て選択
echo "Shutting down without saving..." >/dev/console
# /usr/sbin/snapmergepuppy /initrd/pup_ro1 /initrd/pup_rw
半年近く経過しました。以下4.1.2JPの話です。4.0系は今手元に無いもんで。
ここと、上で286さんがリンクを記しているトピックの話題から、セッション保存間隔を0に設定しておきました。
で、シャットダウン時ですが、「メニュー」→「システム」→「Puppyイベントマネージャ」で表記されているヒントから、
「/etc/rc.d/PUPSTATE」にある「PUPMODE」というパラメータをエディタで「5」に設定すると保存されません。
(この数値はバージョンによって今後変わるかも知れませんので、実物を確認してください)
セーブファイルを作っていない初めての起動時と同様に「セーブファイル、作るか?作らんのか?」と尋ねられます。
「NO!」と答えれば保存されずにおしまい。
PETパッケージのインストール・アンインストール失敗時、色々なファイルを消してしまった時など、
「うわ、保存したくね〜なぁ」という時に使ってます。
何度もやっていますが、時折再起動時に「ねぇあなた、前のセッションで変な終了したでしょ」と勘ぐられます。
「Ignore」を選択して事なきを得ていますが、もしかしたら副作用があるのかもしれません(未確認)。
PUPMODEの値は元に戻っています(保存されてないのだから当然か)。
シャットダウン時に「Yes」と返事をしたらどんな目に遭うのか。怖くて試してません。(←今のセッションが上書き保存されるだけか)
ここと、上で286さんがリンクを記しているトピックの話題から、セッション保存間隔を0に設定しておきました。
で、シャットダウン時ですが、「メニュー」→「システム」→「Puppyイベントマネージャ」で表記されているヒントから、
「/etc/rc.d/PUPSTATE」にある「PUPMODE」というパラメータをエディタで「5」に設定すると保存されません。
(この数値はバージョンによって今後変わるかも知れませんので、実物を確認してください)
セーブファイルを作っていない初めての起動時と同様に「セーブファイル、作るか?作らんのか?」と尋ねられます。
「NO!」と答えれば保存されずにおしまい。
PETパッケージのインストール・アンインストール失敗時、色々なファイルを消してしまった時など、
「うわ、保存したくね〜なぁ」という時に使ってます。
何度もやっていますが、時折再起動時に「ねぇあなた、前のセッションで変な終了したでしょ」と勘ぐられます。
「Ignore」を選択して事なきを得ていますが、もしかしたら副作用があるのかもしれません(未確認)。
PUPMODEの値は元に戻っています(保存されてないのだから当然か)。
シャットダウン時に「Yes」と返事をしたらどんな目に遭うのか。怖くて試してません。(←今のセッションが上書き保存されるだけか)
サボり魔
Precise-550JP & Precise-571JP & Tahr-Puppy
frugal install (USB)
8GB ASUS H97I-PLUS Core-i5 4690S
8GB ASRock Z68M-ITX/HT Core-i7 2600k with Win7
16GB ASROCK H170M-ITX/ac Core-i5 6600
Precise-550JP & Precise-571JP & Tahr-Puppy
frugal install (USB)
8GB ASUS H97I-PLUS Core-i5 4690S
8GB ASRock Z68M-ITX/HT Core-i7 2600k with Win7
16GB ASROCK H170M-ITX/ac Core-i5 6600
メニューじゃないですが、切り替えツール。
保存にかかわるところなので、保証はできませんが。
勉強したてのシェルスクリプトなんで、変なとこあるかもしれません。
やりたいことのコメントつけときました。
セッションセーブ間隔には手をつけてません。元から手動で「0」にしてる人向きかも。
2009/10/25に再編集しました。実行で逆のモードに移すのではなく、gtkdialogでモードを選択するようにしています。
2011/4/6に、文字列を少しだけ修正
コード: 全て選択
#! /bin/bash
#MENU > System > PuppyEventManager > save session で自動セーブ間隔を0にしておく。
#ファイルに実行属性をつけて/root/startupに放り込んでおく。
#「Yes」を選ぶと現在のPUPMODEをmy-documentsのテキストファイル(.pupmode.txt)に
#保存しつつ99を新たに設定する(=終了時セーブなし)。
#「No」を選ぶと、ファイルから数値を読み込み元に戻す(テキストファイルは消える)
CHECK_FILE_DIR=/root/my-documents
TARGET_FILE=/etc/rc.d/PUPSTATE
cd "$CHECK_FILE_DIR"
sein=$(ls .pupmode.txt 2> /dev/null)
#処理の選択ダイアログ
export MAIN_DIALOG='
<vbox>
<text>
<label>セッション終了時のセーブをしますか?</label>
</text>
<text>
<label>Do you want to save this session ?</label>
</text>
<text>
<label>You can try it anytime.</label>
</text>
<hbox>
<button yes></button>
<button no></button>
<button cancel></button>
</hbox>
</vbox>
'
for STATEMENTS in $(gtkdialog3 --program=MAIN_DIALOG); do
eval $STATEMENTS
done
if [ "$EXIT" = "Yes" ]; then
if [ ! -z "$sein" ] ;then
#ファイルがあった場合=非セーブ状態の場合の記述(保存してあるPUPMODEの数字を戻す)
zahl=$(grep "^[0-9]\{1,\}" < ${CHECK_FILE_DIR}/.pupmode.txt)
#PUPSTATEの内容を一行ずつ配列に入れる。ただしPUPMODEの行だけはほっとく
i=0
while read row
do
if echo $row | grep "^PUPMODE=" > /dev/null
then
continue
fi
array[$i]=$row
i=$((i + 1))
done < $TARGET_FILE
#ファイルを初期化しつつPUPMODEに元の数値を設定
echo "PUPMODE="$zahl > $TARGET_FILE
#他の行を追記
for other_row in "${array[@]}"
do
echo $other_row >> $TARGET_FILE
done
#.pupmode.txtファイルを削除
rm -f ${CHECK_FILE_DIR}/.pupmode.txt
#ダイアログ出力
export MAIN_DIALOG='
<vbox>
<text>
<label>終了時にセーブを実行するようにしました。</label>
</text>
<text>
<label>SAVE-MODE</label>
</text>
<hbox>
<button ok></button>
</hbox>
</vbox>
'
gtkdialog3 --program=MAIN_DIALOG
else
#既に終了時セーブ状態になっている場合は確認ダイアログのみ
export MAIN_DIALOG='
<vbox>
<text>
<label>セーブするように設定されています。</label>
</text>
<text>
<label>Now, SAVE-MODE</label>
</text>
<hbox>
<button ok></button>
</hbox>
</vbox>
'
gtkdialog3 --program=MAIN_DIALOG
fi
elif [ "$EXIT" = "No" ]; then
if [ ! -z "$sein" ] ;then
#既にセーブしない状態になっている場合は確認ダイアログのみ
export MAIN_DIALOG='
<vbox>
<text>
<label>既にセーブしないように設定されています。</label>
</text>
<text>
<label>Now, No-SAVE-MODE</label>
</text>
<hbox>
<button ok></button>
</hbox>
</vbox>
'
gtkdialog3 --program=MAIN_DIALOG
else
#ファイルがなかった場合=セーブ状態の場合の記述(PUPMODEを保存した後、99にする)
grep "^PUPMODE=" $TARGET_FILE | sed "s/^PUPMODE=//" > .pupmode.txt
#PUPSTATEの内容を一行ずつ配列に入れる。ただしPUPMODEの行だけはほっとく
i=0
while read row
do
if echo $row | grep "^PUPMODE=" > /dev/null
then
continue
fi
array[$i]=$row
i=$((i + 1))
done < $TARGET_FILE
#ファイルを初期化しつつPUPMODEに「99」を設定
echo "PUPMODE=99" > $TARGET_FILE
#他の行を追記
for other_row in "${array[@]}"
do
echo $other_row >> $TARGET_FILE
done
#ダイアログ出力
export MAIN_DIALOG='
<vbox>
<text>
<label>終了時のセーブをしないように設定しました。</label>
</text>
<text>
<label>No-SAVE-MODE</label>
</text>
<hbox>
<button ok></button>
</hbox>
</vbox>
'
gtkdialog3 --program=MAIN_DIALOG
fi
else
echo "Perhaps, You pressed the Cancel button."
fi
勉強したてのシェルスクリプトなんで、変なとこあるかもしれません。
やりたいことのコメントつけときました。
セッションセーブ間隔には手をつけてません。元から手動で「0」にしてる人向きかも。
2009/10/25に再編集しました。実行で逆のモードに移すのではなく、gtkdialogでモードを選択するようにしています。
2011/4/6に、文字列を少しだけ修正
最後に編集したユーザー サボり魔 [ 11/04/06(水) 23:24 ], 累計 2 回
サボり魔
Precise-550JP & Precise-571JP & Tahr-Puppy
frugal install (USB)
8GB ASUS H97I-PLUS Core-i5 4690S
8GB ASRock Z68M-ITX/HT Core-i7 2600k with Win7
16GB ASROCK H170M-ITX/ac Core-i5 6600
Precise-550JP & Precise-571JP & Tahr-Puppy
frugal install (USB)
8GB ASUS H97I-PLUS Core-i5 4690S
8GB ASRock Z68M-ITX/HT Core-i7 2600k with Win7
16GB ASROCK H170M-ITX/ac Core-i5 6600
確かにそうですね。ただ、「5」にすると、初期起動時と同様の「保存ファイル作成の選択画面」が現れてしまいます。jakeさん さんが書きました:PUPMODE=5としておけば、セッション保存間隔をいくつに設定しても自動保存は機能しないはずです。
実は、普段から終了時保存を確保しつつもセッション中の保存をしないようにしておきたい理由があるんです。
その理由は、64MBの保存ファイルを使ってるため。
Puppyで初めてLinuxに触れた私にとって、今のところはこれでも十分すぎる大きさです。
難点はPET-packageを作ってる最中に自動保存が実行されて、保存用ファイルがパンクすることがある、ということ。
自動保存さえしてくれなければメモリは十分足りてるみたいなのでどうにかなります。
「保存したくない」事態が起きた場合のみ、書きかけのファイルを別の場所に避難させ、問答無用でシャットダウンさせたい、というわけです。
で、普段の使い方は(というよりここの書き込みを拝見してからは)自動保存offで終了時のみまとめて保存派です。
USB起動なので、PUPMODEは「13」になってます。
上のスクリプト、スレ主のrpさんの役に立つといいんですが。
Startupに放り込んでセッション中の自動保存を「0」にしておけば、次の起動から自動的に「まったく保存なし」になります。
この場合ダイアログが邪魔なので、最後にある方の2つ目のダイアログ出力を消してもいいかも。
PET導入やブラウザ設定などのカスタマイズをした時は再度実行して「保存あり」に戻すとか。
「99」は上のご指摘どおり特に割り当てが無いようです。いきなりシャットダウンですね。痛快です。jakeさん さんが書きました:99だとどうなるのでしょうか?
将来「99」に予約が入ったら・・・別の数値を入れましょう。
翌日追記:
いけね、自分の環境(USBのみ)と違ってた・・・。 ○| ̄|_rpさん さんが書きました:CDブートで起動してpup_save.2fs をUSBメモリーに保存しています
サボり魔
Precise-550JP & Precise-571JP & Tahr-Puppy
frugal install (USB)
8GB ASUS H97I-PLUS Core-i5 4690S
8GB ASRock Z68M-ITX/HT Core-i7 2600k with Win7
16GB ASROCK H170M-ITX/ac Core-i5 6600
Precise-550JP & Precise-571JP & Tahr-Puppy
frugal install (USB)
8GB ASUS H97I-PLUS Core-i5 4690S
8GB ASRock Z68M-ITX/HT Core-i7 2600k with Win7
16GB ASROCK H170M-ITX/ac Core-i5 6600
これは、/etc/.XLOADEDという隠しファイルのなせる業で、起動時にはここに「true」と書かれ、正常に終了すると「false」となります。次回の起動時にこれを読み込んで「false」であれば前回は正常に終了したものとされます。もし、正常に終了せず、「true」のままであると前回の終了時に異常があったものとして、上記のようなメッセージが出ます。よって、/etc/.XLOADEDに常に「false」としておけば、どういう終了をしても上記のようなメッセージは出ないはずですが、やはり健全とはいえないですね。サボり魔さん 2009年2月4日, 12:41 am さんが書きました:PETパッケージのインストール・アンインストール失敗時、色々なファイルを消してしまった時など、
「うわ、保存したくね〜なぁ」という時に使ってます。
何度もやっていますが、時折再起動時に「ねぇあなた、前のセッションで変な終了したでしょ」と勘ぐられます。
「Ignore」を選択して事なきを得ていますが、もしかしたら副作用があるのかもしれません(未確認)。
「Yes」と返事すると新規にpup_save.2fsを作成するプロセスに入ります。場所と容量を指定して、新しくpup_save.2fsを作り、保存して、終了、です。既存のpup_save.2fsに上書きされることはないようです。サボり魔さん 2009年2月4日, 12:41 am さんが書きました:ここと、上で286さんがリンクを記しているトピックの話題から、セッション保存間隔を0に設定しておきました。
で、シャットダウン時ですが、「メニュー」→「システム」→「Puppyイベントマネージャ」で表記されているヒントから、
「/etc/rc.d/PUPSTATE」にある「PUPMODE」というパラメータをエディタで「5」に設定すると保存されません。
(この数値はバージョンによって今後変わるかも知れませんので、実物を確認してください)
セーブファイルを作っていない初めての起動時と同様に「セーブファイル、作るか?作らんのか?」と尋ねられます。
「NO!」と答えれば保存されずにおしまい。
----中略----
シャットダウン時に「Yes」と返事をしたらどんな目に遭うのか。怖くて試してません。(←今のセッションが上書き保存されるだけか)
が、ここで(新しく作ったpup_save.2fsに)保存されるのは、/initrd/pup_rwにあるデータのみです。初回起動時にはPCの起動に必要な全ての情報が/initrd/pup_rwにあるので、それだけでpup_save.2fsを作っても、次回起動時に問題はないのですが、2回目以降の起動では、起動時に読み込んだpup_save.2fsのデータは/initrd/pup_ro1にあり、/initrd/pup_rwにあるのはその差分みたいなもので、それだけではデータに抜けている部分があるようで起動途中でエラーとなってしまいます。