初回終了時の個人保存ファイル設定を日本語のGUIで

4.X系の開発

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

アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

初回終了時の個人保存ファイル設定を日本語のGUIで

投稿記事 by シノバー »

別に pupsaveconfig のトピックがあります。
viewtopic.php?f=28&t=1892
---
パピーリナックスの初回起動の後、
終了時に個人保存ファイルをどうしたいか、
英語でずらずらっと聞かれますよね。
あれの日本語化は検討されてきたけど、簡単じゃなさそうです。

考え方の角度を変えて、あれをXの下でGUIでやってみてはどうか。
あそこで聞かれる諸設定を、あらかじめXが走っているうちにやってしまう。
選択された内容はコンフィグファイルみたいなものに書き出して置いて、
実際のシャットダウンの過程ではユーザーに尋ねることなく、
そのファイルの内容にしたがって処理をするというものです。

そういうものを作ってみました。テストお願いします。
構成要素は3つのものとなります。
  1. GUI... pupsave 新規作成
  2. シャットダウン時に(a)を起動 ...wmpoweroff, wmrebootを改造
  3. シャットダウン時に(a)の出力ファイルを読む ... rc.shutdown を改造
  • GUIのテスト
    GUI部分は選択された内容をファイルに書き出す以外に
    何もしませんので、気軽にお試しいただけます。
    pupsave をパスが通るところに置いて

    コード: 全て選択

    pupsave debug
    で、ひととおりの動作をして、 /etc/rc.d/pupsave.conf を作ります。
    以上のコマンドは

    コード: 全て選択

    pupsave --debug=5
    と同じ意味になります。5の数字を変えると
    その数字のPUPMODEをシミュレートします
  • 総合テスト
    勇敢な方は a,b,c通してのテストもお願いします。
    /usr/X11R7/bin/pupsave を追加
    /usr/X11R7/bin/wmpoweroff, /usr/X11R7/bin/wmrebootを置き換え
    /etc/rc.d/rc.shutdown を置き換え
    以上を行う PETパッケージを作りました。
    次の手順で試してください。
    1. あらかじめ pupsave-0.20090422.pet をハードディスク上に置いておく
    2. CDあるいはディスクからパピーを puppy pfix=ram のブートオプションで起動
    3. ディスクをマウントし、さきの petパッケージをクリックしてインストール
    4. メニューからシャットダウン
    ディスクにパピーがすでにインストールされている場合、
    インストールされていない場合などなど環境によって異なる動きになります。
必要なファイルを以下に用意しました。
pupsave-0.20090422.pet は 総合テスト用パッケージで、
pupsave もこの中に含まれています。
http://shino.pos.to/linux/puppy/
最後に編集したユーザー シノバー [ 16/11/03(木) 23:10 ], 累計 2 回
The bar master, Shino's Bar
http://shinobar.net/
voice
記事: 115
登録日時: 08/11/02(日) 08:27

投稿記事 by voice »

早速テストしました。

使用したPuppy:4.00.3-JP/4.1.1-JP/4.1.2.1-JP
(念のためトラブルのない先代のPCでも確認しました)

下準備:sda3パーティションにFrugalインストール。そのとき聞かれるフォルダ名は初期入力されているpuppy400(411,412)で設定。Grubのmenu.lstにNEWGRUBTEXT(tmpフォルダ内に記録されるもの)をそのままコピー。

テストの結果:4.00.3-JP
初回の起動をしてpupsave,wmpoweroff,wmreboot,rc.shutdownをコピー。そして終了。個人保存ファイルの設定に入りました。パーティション選択に入る前に(強制)終了、以降通常(英語版)の個人保存ファイル設定に進みました。

4.1.1-JP/4.1.2.1-JP
初回の起動をしてpupsave,wmpoweroff,wmreboot,rc.shutdownをコピー。そして終了。個人保存ファイルの設定に入りました。進めていくとフォルダ名が初期設定では空欄になっています。Grubで選択起動したのはpuppy411(412)フォルダのFrugalです。ですから次回起動時に個人設定ファイルを呼び出すためにはこの段階でフォルダ名にpuppy411(412)と自分で入れなければいけません。試しに空欄のまま進めました。sda3にはpuppy411(412)ディレクトリとpup_save.2fsが「並んでいる」状態です。再びGrubでpuppy411(412)フォルダのFrugalを選択起動するとやはり初回の設定画面が出ます。pup_save.2fsを読んでいません。フォルダ名をpuppy411(412)と自分で設定した場合、puppy411(412)ディレクトリ内にpup_save.2fsが保存され、次回起動時に個人保存ファイルは読み込まれました(これは当り前ですね)。

通常(英語版)のHDDのFrugalの個人保存ファイルの設定では、保存パーティションは聞かれません(呼び出したパーティションに保存するから)。また、呼び出したフォルダに保存するのがデフォルトです(必要なら最後にCHANGE FOLDERをする仕組みだが、少なくともHDDのFrugalの場合Grubで呼び出すフォルダにいれないと無意味)。ですからHDDのFrugalかどうかを判定して、もしHDDのFrugalならパーティション選択は飛ばし(同じパーティションに入れるようにする、PDEV1?)、フォルダも呼び出したフォルダがデフォルトになるようにするのがいいと思います(PUPSFS='foo,bar,/hoge/pup_xxx.sfs'からhogeを抜き出す?)。

すでに同名の個人保存ファイルがあるときの注意の表記に(小さな)誤りがあります。
「/devsda3/pup_save.2fs」devとsda3の間に/がありません。

(私がやった結果に基づいての内容です。条件によっては異なる結果が出るかもしれませんのでご了承ください)
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

pupsave-0.20090423

投稿記事 by シノバー »

さっそくにレポートありがとうございます。
  1. voiceさんご指摘の
    フォルダ内にfrugalインストールされているときのデフォルト
  2. CDから起動したさいに不具合があったものの修正
これらを施した
pupsave-0.20090423.pet を同じところに置きました。
http://shino.pos.to/linux/puppy/

引き続きテストよろしくお願いします。
The bar master, Shino's Bar
http://shinobar.net/
アバター
YoN
Site Admin
記事: 1239
登録日時: 07/04/01(日) 08:00
お住まい: 信州

投稿記事 by YoN »

シノバーさん、ご苦労さまです。素晴らしいアイデアありがとうございます。

SOTEC CPU:Celeron, 766MHz, RAM:512MB,
1:パピー4.2日本語ベータ2版のCDから、pfix=ram で起動。
2:pupsave-0.20090423.pet をインストール。
3:保存場所は、ext2フォーマットの内蔵HDD。
の環境でやってみました。

ケース1:メニュー|シャットダウン|シャットダウン|日本語バージョンで個人保存ファイルを保存して終了
ケース2:メニュー|シャットダウン|シャットダウン|日本語ウィンドウを閉じて英語バージョンで個人保存ファイルを保存して終了
ケース3:メニュー|シャットダウン|再起動|日本語バージョンで個人保存ファイルを保存しないで再起動
ケース4:メニュー|シャットダウン|再起動|日本語ウィンドウを閉じて英語バージョンで個人保存ファイルを保存しないで再起動
ケース5:メニュー|シャットダウン|再起動|日本語バージョンで個人保存ファイルを保存して再起動
ケース6:メニュー|シャットダウン|再起動|日本語ウィンドウを閉じて英語バージョンで個人保存ファイルを保存して再起動

全て問題なくできました。
[Puppy4.1.2-retro-JP] EPSON Endeavor MT-3500
Celeron 533MHz 256MB
[Lupu-5.0.1 LiveCD + lang_support_ja-1.4.sfs] SOTEC Whitney System CR Board
Celeron 766MHz 512MB
voice
記事: 115
登録日時: 08/11/02(日) 08:27

テストその2 by voice

投稿記事 by voice »

Frugalのデフォルトの件は今回のでいいと思います。

4.00.3-JPではHDDFrugal、CD起動ともにパーティション選択をとばしてしまいます。その結果、保存場所が「/dev/pup_save.2fs」のようになってしまいます。4.0シリーズ以下を対象外としてしまうのなら、なおさなくてもいいのでしょうが・・・。

pupsaveの19行目、NOSAVE1=(中略)設定を保存ない選択肢もあります。

CD起動でかつCDからpup_xxx.sfsを読み込んだとき(=HDDのどこにもpup_xxx.sfsがないとき)、HDDにSFSを入れておくと起動がはやくなるよ、という日本語メッセージがでます。CD起動でHDDからpup_xxx.sfsを読み込んだときにはpup_xxx.sfsの場所にかかわらずこの日本語メッセージは出ませんが、英語メッセージはpup_save.2fsを作るパーティションの/直下にpup_xxx.sfsがあるかないかで判断して、ないときに出てくるようです。以下のようなケースで「日本語なし英語あり」になります。
(前提:pup_save.2fs作成パーティションの/直下にpup_xxx.sfsがないこと)
1、CDで起動しsda2/puppy/pup_xxx.sfsを読み込んだとき(フォルダ作成のFrugalインストールがされているPCでCD起動し、pfix=ramや0 noneを選択(初回起動扱い)したとき)
2、CDで起動しsda2/pup_xxx.sfsを読み込み、sda3にpup_save.2fsを作成するとき(パーティション/直下にFrugalインストール、またはパーティション/直下にSFSのみコピーされているPCでCD起動し、pfix=ramや0 noneを選択(初回起動扱い)し、かつ別パーティションにpup_save.2fsを作成したとき)
PUPSFSで読み込んでいるバージョンを確認
pup_save.2fsを作るパーティションにマウント
find /マウントポイント -maxdepth 1 -name pup_バージョン.sfs -type f の結果でありなしを確認
とかでいいんですかね?(素人なのでまったく自信がありません)

USBメモリ持ってないので持ってる人がUSB関連のテストしてくれるといいんですが。
Puppy4.1.2.1-JP(Full/Frugal)
HP dc5100 sf Celeron D 330(改) 2.66GHz/2048MB/40GB
VAIO PCV-L500(改) Pentium III Katmai 550MHz/256MB/30GB
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

pupsave-0.20090425

投稿記事 by シノバー »

YoNさま、voiceさま、詳細なレポートありがとうございます。
なにしろいろんなケースがあるので、さらに多くの方々のご協力もお願いします。
なお、いまのところフロッピーディスクとマルチセッションCDへの保存には対応してません。
  1. 4.00.3-JPへのバックポートの需要は少ないかもしれませんが、いちおう対応しました。
  2. SFSのコピーについて
    CD起動でHDDからpup_xxx.sfsを読み込んだときにはpup_xxx.sfsの場所にかかわらずこの日本語メッセージは出ませんが、英語メッセージはpup_save.2fsを作るパーティションの/直下にpup_xxx.sfsがあるかないかで判断して、ないときに出てくるようです。
    よく見付けましたね:roll: と、言いたくなる丁寧なテスト、ありがとうございます。

    CDから起動したときの実際の動作は、
    pup_save.2fsがどこにあるかにかかわらず、全パーティション中からpup_xxx.sfsを捜し出します。
    したがってこの判定は日本語のほうが正しく、英語のほうが間違ってます。
    英語(rc.shutdown)を修正するのが筋ですが、そちらは触らず、
    日本語(pupsave)の判定を優先させることとしました。
  3. SFSのコピーを聞くタイミングを変更しました。
    パーティションの選択

    パスワード

    ホルダとファイル名

    (必要なら)SFSファイルのコピー

    作成ファイルの確認

    (オプションで)ファイルサイズの変更
    となります。
pupsave-0.20090425pet を同じところに置きました。
http://shino.pos.to/linux/puppy/

次の手順で試してください。
  1. あらかじめ pupsave-0.20090425.pet をハードディク上に置いておく
  2. CDあるいはディスクからパピーを puppy pfix=ram のブートオプションで起動
  3. ディスクをマウントし、さきの petパッケージをクリックしてインストール
  4. メニューからシャットダウンまたはリブート
The bar master, Shino's Bar
http://shinobar.net/
voice
記事: 115
登録日時: 08/11/02(日) 08:27

テストその3 by voice

投稿記事 by voice »

CD起動でCDSFS、CD起動でHDDSFSをそれぞれPuppy4.00.3-JPとPuppy4.1.2.1-JPでテストしました。問題ありませんでした。ご指摘のとおり英語版の判断だとHDDのなかにいくつもSFSを抱えることになりますから、今回の処理のほうがいいですね。

Fullインストールの検証もおこないました。Puppy4.00.3-JPとPuppy4.1.2.1-JPです。初回起動、2回目起動ともに異常なしでした。
Puppy4.1.2.1-JP(Full/Frugal)
HP dc5100 sf Celeron D 330(改) 2.66GHz/2048MB/40GB
VAIO PCV-L500(改) Pentium III Katmai 550MHz/256MB/30GB
y@s

投稿記事 by y@s »

# 間違えて別トピックに書いてしまいました。移動させます。
USBフラッシュメモリブートで検証してみました。
USBは sdb1, vfat, 1パーテーションです。
420jabeta(not beta2)で検証しています。

■検証
初回ブート:起動 → pupsave インストール → 再起動 → OK(pupsave起動:USBメモリ(sdb)に2fs保存)
2回目ブート:2fsがロードされる → 起動 → 再起動 → OK(pupsaveは起動しない)
3回目ブート:pfix=ramブート → 起動 → pupsave インストール → 再起動 → OK(pupsave起動:USBメモリ(sdb)に2fs保存)
4回目ブート:2fsの選択画面が出る → 起動 → 再起動 → 2fsファイルをHDD(sda)に保存 → OK
5回目ブート:2fsの選択画面が出るがHDD(sda)に保存した2fsは選べない → 起動

オリジナルrc.shutdownはUSB起動時には2fsの保存先としてHDD(sda)を提示しないようです。
同じく、USB起動時のinitrd.gzも2fsの読み込み元としてHDD(sda)を提示しません。
(とうか開発者達が"SLOWPARTS0"と呼んでいるデバイスからしかロードしないようです。)
是非はともかく現行の仕様はそんな感じっぽいです。

pupsaveで暗号化パスワードを入力後、オリジナルのrc.shutdownで再度パスワードの入力を求められます。
原因は追究していません。
USB起動時のPUPSTATEを下記に置いておきますので、ご入用であればお使いください。
http://cid-d450862b68e09704.skydrive.li ... TE-usb.zip

■提案
pupsave 行79は $PUPSTATE があったら source より、なかったらexitの方が良い気がします。
無いという状況がそもそもマズいのですが、存在チェックをするのであれば上記の方が良いかと思います。(ファイルが無かったら後の処理はほとんどコケるので)

■要望
個人設定ファイル暗号化パスワードへの記号使用に関して、何らかの注意書きを付けられないでしょうか。
ブート時はキーマップがUSの為、記号混在パスワードの入力は結構難易度が高いです。
もちろん記号混在の方が強度的には望ましいのですが、USキーマップを知らない人は入力できなくなってしまいそうです。
えぇ、もちろん私自身がハマったからです。
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

pupsave-0.20090426

投稿記事 by シノバー »

voiceさん、y@sさん、レポートありがとうございます。
  1. pmediaが指定されている場合→ オリジナル(init)に合わせました。
    オリジナルrc.shutdownはUSB起動時には2fsの保存先としてHDD(sda)を提示しないようです。
    同じく、USB起動時のinitrd.gzも2fsの読み込み元としてHDD(sda)を提示しません。
  2. 軽い暗号化のさい、予告しておいたほうが良いのかなあ...。
    オリジナルのrc.shutdownで再度パスワードの入力を求められます。
  3. PUPSTATEが見つからない場合→ exit するようにしました。
    pupsave 行79は $PUPSTATE があったら source より、なかったらexitの方が良い気がします。
  4. パスワードへの記号使用→ 次のような警告を入れてみました。これにともない、暗号化についての説明ページを別にしました。
    半角英字と数字のみとするのが無難です。_(アンダーバー)も使わない。現在のキーボードレイアウトと起動時にパピーが解釈するキーボードが違うかもしれないからです。
  5. 使えるパーティションが見つからないとき、選択されたパーティションに空きが無い(6MB以下)とき、再試行できるようにしました。
上記のうち(2)以外を施して pupsave-0.20090426.pet を同じところに置きました。引き続きテストお願いします。
http://shino.pos.to/linux/puppy/
The bar master, Shino's Bar
http://shinobar.net/
voice
記事: 115
登録日時: 08/11/02(日) 08:27

テストその4 by voice

投稿記事 by voice »

マルチセッションCD(PUPMODE=77)でのテストです。

下準備:pupsave-0.20090425.pet内のファイルと置き換えたブータブルisoをつくり、CD-RWに焼く。HDDのSFSを読まないようにリネーム。

CD-RWで起動。そのまま終了。日本語画面でキャンセルを選択。英語の画面でSAVE TO CDを選択。CD-RWに記録される。再起動。PUPMODE=77になっているのを確認。終了。日本語画面出ず。

ということで問題なしです。
わざわざ日本語画面をパスしてCD保存しようということをやる人はいないでしょうが、念のためテストしました。CD保存ってどれくらい需要があるのでしょうかね?

pupsave-0.20090426.petが上がっていません
Puppy4.1.2.1-JP(Full/Frugal)
HP dc5100 sf Celeron D 330(改) 2.66GHz/2048MB/40GB
VAIO PCV-L500(改) Pentium III Katmai 550MHz/256MB/30GB
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

pupsave-0.20090426.pet ふたたび

投稿記事 by シノバー »

pupsave-0.20090426.pet 置き忘れてました。(voiceさん、ありがとう)
引き続きテストお願いします。
http://shino.pos.to/linux/puppy/
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

Frugalインストールされている場合

投稿記事 by シノバー »

通常(英語版)のHDDのFrugalの個人保存ファイルの設定では、保存パーティションは聞かれません(呼び出したパーティションに保存するから)。また、呼び出したフォルダに保存するのがデフォルトです(必要なら最後にCHANGE FOLDERをする仕組みだが、少なくともHDDのFrugalの場合Grubで呼び出すフォルダにいれないと無意味)。ですからHDDのFrugalかどうかを判定して、もしHDDのFrugalならパーティション選択は飛ばし(同じパーティションに入れるようにする、
voiceさんのこのコメントを生半可に読んでました。
パピーをたとえば /dev/sda2/puppy ディレクトリにFrugalインストールしていて
別のパーティションの同じ名前のフォルダたとえば /dev/sda1/puppy ディレクトリに pup_save.2fs を作ると
次に起動できなくなってしまいますね。
起動時にi psubdir=puppy が指定されていると 全パーティションの /puppy/pup_save*.?fsを探して
最初に /dev/sda1/puppy/pup_save.2fs を見つけて、これで決め打ちするようです。

HDDのFrugalならパーティション選択は飛ばし(同じパーティションに入れるようにするべきですね。
次ので改訂します。
The bar master, Shino's Bar
http://shinobar.net/
アバター
シノバー
記事: 3139
登録日時: 09/03/21(土) 00:05
連絡する:

pupsave-0.20090426a

投稿記事 by シノバー »

Frugalインストールされている場合をちょっと悩みました。
オリジナル英語版と多少相違しますが、次の論理に依ります。
  1. 単純にディスクあるいはUSBメモリからSFSファイルを読み込んでいる場合、そのパーティションのみにpup_saveを保存可能とします。
  2. そのSFSファイルが下位(トップからひとつ下)のフォルダの場合、それをデフォルトとします。入力によって別のフォルダやトップの位置に保存することは可能ですが、他のパーティションには保存できません。
あえて別のパーティションや別のメディアに保存したいならば、 pfix=ram
で起動して、コピーまたは移動することができますし。

以上の論理でFASTやSLOWなどの区分も必要なくなりました。
作り直したものを pupsave-0.20090426a.pet としていつものところに置きました。
http://shino.pos.to/linux/puppy/

デバッグ機能が増えています。

コード: 全て選択

pupsave PUPSFS='sr0,iso9660,/pup_4121JP.sfs'
などとすると、CDから起動したかのごとく動きます。

暗号化の説明のウィンドウでは暗号化するかどうか聞かないことにしました。
次のパスワード入力のときに選択できるからです。
暗号化なし、なにもかも標準のままなら一貫してOKをクリックしつづけることで済みます。

パスワードが後にも聞かれることがありますとのコメントも付けました。
The bar master, Shino's Bar
http://shinobar.net/
voice
記事: 115
登録日時: 08/11/02(日) 08:27

テストその5 by voice

投稿記事 by voice »

シノバー さんが書きました:voiceさんのこのコメントを生半可に読んでました。
じつは、私もFrugalのみでパーティションをまたぐときのことはシノバーさんの指摘ではじめて気づきました。というのも「通常(英語版)のHDDのFrugalの個人保存ファイルの設定では、・・・」を書いた段階での意図はもとの英語版に合わせることを考えていたからで、パーティションをまたいだらどうなるかという発想はありませんでした。その後CD起動をためすうちにFrugalがらみでパーティションをまたぐ状況が生まれたのですが、「CD起動Frugal入り」ばかりに気をとられFrugal単独起動のことが抜け落ちていました。

ということでFrugal単独起動の検証をおこない解決案を考え書き込んでいたら途中で方向性が決まったようですね。限定するというのは私も第一案でした。初心者には無難だし、いじれる人はどうにでもするでしょうしね。
pupsaveで暗号化パスワードを入力後、オリジナルのrc.shutdownで再度パスワードの入力を求められます。(y@s:wrote)
これはCD起動、Frugal起動ともに軽い暗号化で発生しました。初回、再入力、再々入力でパスを変えたら有効だったのは再入力のものでした(あくまでうちの環境ではです)。なぜ3回も要求されるのかrc.shutdownを見ましたが素人には???です。重い暗号化では問題なしです(この項目、起動別の条件分岐がないんだから同じ結果になるのは当たり前ですね)。

Puppy4.00.3-JPのFrugal起動で、SFS作成可能パーティションがないと言われます。再検索でもだめです。
Puppy4.1.2.1-JP(Full/Frugal)
HP dc5100 sf Celeron D 330(改) 2.66GHz/2048MB/40GB
VAIO PCV-L500(改) Pentium III Katmai 550MHz/256MB/30GB
voice
記事: 115
登録日時: 08/11/02(日) 08:27

軽い暗号化について(訂正あり)

投稿記事 by voice »

軽い暗号化のとき3回それぞれ違うパスワードを入れても聞き直されないということは、確認用ではないということのようです。これだと、もし誤って間違ったパスワードを入れても気づきません。間違ったパスワードが採用されたらそのpup_save.2fsは使えなくなります。さらに起動時のパスワード入力で有効なのは最初のものだけで、仮に2回目以降に正しいパスワードを入れても通りません。近い文字を試してみようとするならいちいち再起動して最初の入力の状態にする必要があります。
訂正:「仮に2回目以降に正しいパスワードを入れても通りません。」というのは一部間違いがありました。1回目に間違ったときに赤字の警告文が出たあとEnterのみを押せば、パスワード入力に戻れます。ただし、何らかの文字を入れてEnterを押すと戻れなくなるようです。

ということで、軽い暗号化の2回目、3回目の入力はさせないようにしてはいかがでしょうか。具体的にはrc.shutdownに2ヶ所ある「Note, a bug in one of the Linux utility programs ...」のところで、ここに1回目に入れたパスワードを放り込むというものです。もしかしたら1回目のパスワードを別の変数に回避させる必要があるかもしれません。

重い暗号化は1回しか聞かれないのだから軽い暗号化も1回でいいと思います。パスワード再入力のメッセージも不要になりますし。
最後に編集したユーザー voice [ 09/04/28(火) 19:22 ], 累計 1 回
Puppy4.1.2.1-JP(Full/Frugal)
HP dc5100 sf Celeron D 330(改) 2.66GHz/2048MB/40GB
VAIO PCV-L500(改) Pentium III Katmai 550MHz/256MB/30GB
返信する