Open9

2024年6月16日~2024年6月22日

tttttttttttttttttttt

6/16 GCPのサーバー上で直接コマンド上からssh接続用ユーザーを作成する方法

  1. gcpでリモートサーバーを作成(環境はubuntu)
  2. SSHでリモートサーバーにログイン
  3. useradd test-ssh -mでユーザー(test-ssh)とユーザーディレクトリを作成
  4. ローカルPCのコマンドプロンプトでssh-keygenでsshキーを作成(名前はtestにした)
  5. test.pubの内容をコピー
  6. リモートサーバーのtest-sshに.sshファイルを作成
  7. chmod -R 777 test-sshで権限を一時的に変更
  8. echo "5.でコピーした公開鍵の内容" >> test-ssh/.ssh/autholized_keysで認証カギを配置
  9. chmodでtest-sshユーザーの権限を一時的に戻す
  10. ローカル環境で、ssh -i 秘密鍵のパス ssh-test@サーバーの外部IPでssh接続
  11. ログインできた
tttttttttttttttttttt

6/16 コマンド上で作成したユーザーのsudo権限が上手くいかなかった

上記の方法で作成したユーザーの場合、sudoを使うとパスワードが求められる。しかしパスワードは分からないため、最初にSSHでログインしたユーザーと同じ権限にする必要がある。

なおパスワードを設定しても以下のエラーが出て実行できない。

ユーザー名 is not in the sudoers file. This incident will be reported.

sudoers(sudoを使える人たち)の権限が与えれれておらず、その権限を与える必要がある。しかし最初にログインしたユーザーとグループを同じにしても、sudoは利用できなかった。(reboootなどで再起動すると使えたかも?)

gcpの場合、ubuntuというグループであれば、sudoがパスワード無しで使える記載があった。

ubuntu ALL=(ALL:ALL) NOPASSWD: ALL

しかし、同じubuntuのグループに加えても上手くいかず。よくないことは分かっているが最終的に/etc/sudoers.dの中身を確認するためchmod -R 777 /etc/sudoers.d/をしたところ、パスワードが不要なユーザーでもsido実行時に以下の出力がされ、パスワードが求められる事態に。

sudo: /etc/sudoers.d is world writable

ChatGPTによると、シングルユーザーモードやリカバリーモードで解消できるらしいが、直接sudoの所をいじるとsudoが使えなくなるとのことなのでこれ以上はやめた方が良さそう。(権限の変更の反映は再起動で反映される?)

tttttttttttttttttttt

6/16 その他メモ

  • システムの再起動
    systemctl restart ssh
  • ユーザーにログイン
    su ユーザー名
    su - ユーザー名の場合、-がつくと、現在のシェルの環境変数をすべて解除し、その上で指定したユーザーとしてシェルを起動するらしい。
tttttttttttttttttttt

6/17 メモとか疑問とか(ミニPCを使うにあたって)

windowsを抜いてlinuxを入れる方法→RufusでUSBメモリをUSBインストールメディアにする。BIOSでブートの優先順位をUSBに変更する→Try or Install Ubuntuを選択(だったはず...)

windowsのインストールもこれでいけるはず????
windowsのインストール メディア

windowsはインストールできても、「ライセンス認証」がないと使えない。購入直後に搭載されているwindowsならライセンス認証されているし、プロダクトキーや証明するものがあれば使えるのでは?←ある。メーカー公式のHPのリカバリーメディアやwindowsのインストールメディアで可能?

↑わざわざそんな面倒くさいことしなくても、windowsとlinuxを共存させるには、デュアルブートかWSL,WSL2が使える。

↑まずこれを試す。(他にもミニPCのwindows proでやりたいことがあるので)

tttttttttttttttttttt

6/18 メモとか(ミニPCを使うにあたって)

GMKtecのミニPC(cpu: N100, RAM: 16GB, SSD: 1TB)が届いたので早速セットアップ

画面の指示通りやればセットアップは完了。

ただキーボード入力が米国仕様?(半角/全角を押しても'が出力される)なので、キーボードの設定を日本語に修正して再起動(ここにすごい時間がかかる...)

あとwindowsのUSBインストール メディアも作成。ここから「Create Windows 11 Installation Media」の項目をダウンロードし、MediaCreationTool_Win11_23H2.exeを実行して作成した。

ただ大学の頃に入れっぱなしになっていたウイルスバスターが、autorun.inf(USBからウイルスに感染させる方法の要因)を検知してインストールメディアの作成に失敗したりしたので一時的に停止(アンロード)して対応。

windows isoファイルをダウンロードしてrufusを使ってインストールメディアを作成する方法でもよかった。

https://atmarkit.itmedia.co.jp/ait/articles/2208/23/news016.html

tttttttttttttttttttt

6/19 メモとか(ミニPCを使うにあたって)

中華製の格安PCにはバックドアがあるとかなんとかなので、自分でもわかる部分は調べてみることに。

そんな不安があるなら買うなという話だが、PC周りの勉強も兼ねて調べてみることにする。

調査項目は以下の方法

  • タスクマネージャーから怪しいプロセスはないか
  • netstatsで確認する
  • wiresharkなどで怪しい通信がないかどうか
  • ログのチェック

→システムログで確認可能。詳しいことはよくわからない。

  • ファームウェアの確認(どうやって?)

→再インストールで対応した(中身の確認はよくわからん)

  • ブートセクターやOSファイルの確認

→再インストールで対応した(中身の確認はよくわからん)

ただ再インストールでネットワークドライバを認識しなくなったのか、セットアップで詰んでいる。ドライバを公式HPからダウンロードしてドライバを当てる必要があるらしい。

https://blog.paper-cutting-art.com/blog081/

https://ameblo.jp/kumakumakukuma/entry-12817300903.html

https://support.microsoft.com/ja-jp/windows/windows-11-pc-のセットアップ時に接続する-50dca26f-40d5-4c3b-853c-e972dafb7e08

tttttttttttttttttttt

6/20 メモとか(ミニPCを使うにあたって)

再インストールでネットワークドライバを認識しなくなったのか、セットアップで詰んだところから復旧を行う。

復旧手順

  1. 公式のファームウェアから対象のマシンのドライブをダウンロードする。
  2. 解凍しUSBメモリに移植
  3. PCを起動し、Ctrl+F10でコマンドプロンプト起動
  4. 2.でUSBにコピーしたファームウェア内にあるinstall.batを実行する(USBメモリのパス/install.bat)
  5. 完了すると、wifiを認識するようになった。

上記の方法で復旧は出来、何度かエラーは起こったものの問題なくセットアップは終了した。

しかし謎の変化として、microsoftアカウントによるログインを強制された。(最初にPCを購入した時はセットアップに必須ではなかった。なんかバージョンによっては必須とかの話があるので、もしかするとそれかもしれない。)

しかも、ライセンス認証が効かなくなっており、当初はOEMライセンスで認証されていたが、クリーンインストール後は「通知」状態かつretailライセンスでライセンスの有無を判定している。

何故認証されないのか?ChatGPTやGeminiに聞きながら、調べたが有用な結果は得られず。

有効そうな仮説として以下からできることはないかを考える。

  1. 公式のファームウェアにOSのページもあるのでそのOSでないとOEMの認証されない使用になっている?(そういった根拠情報はない)
  2. ミニPCを出荷時の状態に戻す。リカバリ領域からwindowsを戻せないか?
  3. UIEFなどのファームウェアのアップデート?(というよりは入れ直しが近いかも)をした際に、OEMのプロダクトキーが消失したかも?(この場合諦め?)

まあ最悪、proは使えなくてもよい。本来はlinux系でサーバーを作ろうと考えていたので、そもそもwindowsはどうでもよかった。(ただwindows proの使用感の体験はしたかったかも...)

tttttttttttttttttttt

6/21 ミニPCのクリーンインストール

再インストールでOEMライセンスを認識しなくなった。linuxサーバでも問題ないが、せっかくならwindows11 proを使ってみたいので、何とか認証できないかを試す。

なおOEMライセンスのはずなのに、slmgr /dliでライセンス認証を確認すると、retail channelとなっており、retailチャネルを探そうとしている。OEMプロダクトキーは本体に記録されている(ChatGPT談)とのことなのに、それを認証しないというのはOEMのプロダクトキーが消えた※ということだろうか???

とりあえずできそうなこと

  1. PCを出荷状態に戻す
  2. メーカーから配布されているOSをインストールして認証されるか試す(amazonのレビューにそれで認証できたという報告有)
  3. メーカーに問い合わせてプロダクトキーをもらう

1を試したがダメだった。

「設定」から、「回復」を選択し、「このPCをリセット」からやり直したがダメ。(slmgr /dliで確認するとretail chennelで認証しようとしている。)

2.は10GBのisoファイルなので、手元にある8GBのUSBメモリでは使えない。16GBのUSBメモリが必要なのでまた今度。これでもダメなら、直接メーカに問い合わせる。

問い合わせもダメだったら諦めて、ubuntuを入れて練習用のlinuxサーバーにする。本来はgcpのlinuxサーバーの代用ということで購入を検討していたので、ライセンスを失ったからと言ってダメージがないわけではない。ただここまでやって戻せないのは何か悔しい...

※以下のコマンドでBIOSやUEFI上にあるプロダクトキーを確認できるらしいが見つからなかった。

wmic path softwarelicensingservice get OA3xOriginalProductKey

tttttttttttttttttttt

6/22 ミニPCのOSの入れ直しとDetectoron2

クリーンインストールしたPCでwindows11のOEMライセンスが認証されなかった。PCを出荷状態に戻しても、OEMライセンスは認証されなかった。

メーカー公式ページを確認すると、メーカーから配布されているOSがあったのでインストールして認証されるか試す。

結論としては、ダメだった。しかし前回と異なる点は、slmgr/dliで認証の確認をすると、retail chennelではなくOEM channelになっていたこと。

これはもしかすると、OEMライセンスが抜け落ちた可能性がある。問い合わせてみることにする。

手順とか思ったことのメモ:

16GBのUSBメモリを購入し、リンク先のURLからosのisoファイルをダウンロード。isoファイルのサイズが10GBあるとUSBファイルへのファイルの転送ができないので、フォーマットを「」に変更し、インストールメディアを作成。autorun.infがあるせいか途中ウイルス対策ソフトに邪魔されそうになったが、実際にミニPCにUSBを挿し起動してみると問題なくOSの書き換えに成功したっぽい。

画面の指示通りやれば、OSの書き換えは出来た。購入直後のPCのセットアップと同じ画面と手順になり、キーボード設定も初期のものと同じになったが、セットアップでなぜか、wifiの接続の強制・microsoftアカウントの登録の強制されたところが気になる。(oobe/Bypassnro.cmdで回避できる、購入直後はそんなことしなくてもできたはず。。。)

detectron2について

話題はがらりと変わるが、detectron2のinstance segmentationの実装を試してみている。

とりあえず、カスタムデータでも動くまでの部分は実装したが、ちゃんと予測精度が出るとかは今後試す。

{"file_name": 画像パス, "width": 画像のx軸の大きさ..., アノテーション: アノテーション情報}の様にデータセットを作成して、get_data_dictsなどの関数を作成する。関数の中身は、アノテーションファイルを読み込み最終的にjsonが格納されたリストで出力するようにすればOKなはず。

そして、DatasetCatalogで登録すればデータセットの作成はOK

DatasetCatalog.register(登録名, get_data_dicts(f"アノテーション情報が含まれたファイル"))

cfgファイルに、DatasetCatalogを設定し、それ以外に変えたい設定があれば、後は学習できる。この辺は詳しく書かないと何言っているかわからない。記事にして書くべきかもだが、githubの更新によっては、実装方法が変わるかもなので、深く作りこむ必要もないはず。アウトプットするならdiscussionで良いかも。

ミニPCのサポートがいつ動くかによって変わるので、返答があるまで、detectron2をいじったりしてよう。