2024年6月16日~2024年6月22日
![tttttttttt](https://res.cloudinary.com/zenn/image/fetch/s--YaVG9xtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b1e726451c.jpeg)
6/16 GCPのサーバー上で直接コマンド上からssh接続用ユーザーを作成する方法
- gcpでリモートサーバーを作成(環境はubuntu)
- SSHでリモートサーバーにログイン
-
useradd test-ssh -m
でユーザー(test-ssh)とユーザーディレクトリを作成 - ローカルPCのコマンドプロンプトで
ssh-keygen
でsshキーを作成(名前はtestにした) - test.pubの内容をコピー
- リモートサーバーの
test-ssh
に.sshファイルを作成 -
chmod -R 777 test-ssh
で権限を一時的に変更 -
echo "5.でコピーした公開鍵の内容" >> test-ssh/.ssh/autholized_keys
で認証カギを配置 -
chmod
でtest-sshユーザーの権限を一時的に戻す - ローカル環境で、
ssh -i 秘密鍵のパス ssh-test@サーバーの外部IP
でssh接続 - ログインできた
![tttttttttt](https://res.cloudinary.com/zenn/image/fetch/s--YaVG9xtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b1e726451c.jpeg)
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が使えなくなるとのことなのでこれ以上はやめた方が良さそう。(権限の変更の反映は再起動で反映される?)
![tttttttttt](https://res.cloudinary.com/zenn/image/fetch/s--YaVG9xtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b1e726451c.jpeg)
6/16 その他メモ
- システムの再起動
systemctl restart ssh
- ユーザーにログイン
su ユーザー名
su - ユーザー名
の場合、-がつくと、現在のシェルの環境変数をすべて解除し、その上で指定したユーザーとしてシェルを起動するらしい。
![tttttttttt](https://res.cloudinary.com/zenn/image/fetch/s--YaVG9xtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b1e726451c.jpeg)
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でやりたいことがあるので)
![tttttttttt](https://res.cloudinary.com/zenn/image/fetch/s--YaVG9xtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b1e726451c.jpeg)
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を使ってインストールメディアを作成する方法でもよかった。
![tttttttttt](https://res.cloudinary.com/zenn/image/fetch/s--YaVG9xtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b1e726451c.jpeg)
6/19 メモとか(ミニPCを使うにあたって)
中華製の格安PCにはバックドアがあるとかなんとかなので、自分でもわかる部分は調べてみることに。
そんな不安があるなら買うなという話だが、PC周りの勉強も兼ねて調べてみることにする。
調査項目は以下の方法
- タスクマネージャーから怪しいプロセスはないか
- netstatsで確認する
wiresharkなどで怪しい通信がないかどうか- ログのチェック
→システムログで確認可能。詳しいことはよくわからない。
- ファームウェアの確認(どうやって?)
→再インストールで対応した(中身の確認はよくわからん)
- ブートセクターやOSファイルの確認
→再インストールで対応した(中身の確認はよくわからん)
ただ再インストールでネットワークドライバを認識しなくなったのか、セットアップで詰んでいる。ドライバを公式HPからダウンロードしてドライバを当てる必要があるらしい。
![tttttttttt](https://res.cloudinary.com/zenn/image/fetch/s--YaVG9xtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b1e726451c.jpeg)
6/20 メモとか(ミニPCを使うにあたって)
再インストールでネットワークドライバを認識しなくなったのか、セットアップで詰んだところから復旧を行う。
復旧手順
- 公式のファームウェアから対象のマシンのドライブをダウンロードする。
- 解凍しUSBメモリに移植
- PCを起動し、Ctrl+F10でコマンドプロンプト起動
- 2.でUSBにコピーしたファームウェア内にあるinstall.batを実行する(
USBメモリのパス/install.bat
) - 完了すると、wifiを認識するようになった。
上記の方法で復旧は出来、何度かエラーは起こったものの問題なくセットアップは終了した。
しかし謎の変化として、microsoftアカウントによるログインを強制された。(最初にPCを購入した時はセットアップに必須ではなかった。なんかバージョンによっては必須とかの話があるので、もしかするとそれかもしれない。)
しかも、ライセンス認証が効かなくなっており、当初はOEMライセンスで認証されていたが、クリーンインストール後は「通知」状態かつretailライセンスでライセンスの有無を判定している。
何故認証されないのか?ChatGPTやGeminiに聞きながら、調べたが有用な結果は得られず。
有効そうな仮説として以下からできることはないかを考える。
- 公式のファームウェアにOSのページもあるのでそのOSでないとOEMの認証されない使用になっている?(そういった根拠情報はない)
- ミニPCを出荷時の状態に戻す。リカバリ領域からwindowsを戻せないか?
- UIEFなどのファームウェアのアップデート?(というよりは入れ直しが近いかも)をした際に、OEMのプロダクトキーが消失したかも?(この場合諦め?)
まあ最悪、proは使えなくてもよい。本来はlinux系でサーバーを作ろうと考えていたので、そもそもwindowsはどうでもよかった。(ただwindows proの使用感の体験はしたかったかも...)
![tttttttttt](https://res.cloudinary.com/zenn/image/fetch/s--YaVG9xtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b1e726451c.jpeg)
6/21 ミニPCのクリーンインストール
再インストールでOEMライセンスを認識しなくなった。linuxサーバでも問題ないが、せっかくならwindows11 proを使ってみたいので、何とか認証できないかを試す。
なおOEMライセンスのはずなのに、slmgr /dli
でライセンス認証を確認すると、retail channelとなっており、retailチャネルを探そうとしている。OEMプロダクトキーは本体に記録されている(ChatGPT談)とのことなのに、それを認証しないというのはOEMのプロダクトキーが消えた※ということだろうか???
とりあえずできそうなこと
- PCを出荷状態に戻す
- メーカーから配布されているOSをインストールして認証されるか試す(amazonのレビューにそれで認証できたという報告有)
- メーカーに問い合わせてプロダクトキーをもらう
1を試したがダメだった。
「設定」から、「回復」を選択し、「このPCをリセット」からやり直したがダメ。(slmgr /dli
で確認するとretail chennelで認証しようとしている。)
2.は10GBのisoファイルなので、手元にある8GBのUSBメモリでは使えない。16GBのUSBメモリが必要なのでまた今度。これでもダメなら、直接メーカに問い合わせる。
問い合わせもダメだったら諦めて、ubuntuを入れて練習用のlinuxサーバーにする。本来はgcpのlinuxサーバーの代用ということで購入を検討していたので、ライセンスを失ったからと言ってダメージがないわけではない。ただここまでやって戻せないのは何か悔しい...
※以下のコマンドでBIOSやUEFI上にあるプロダクトキーを確認できるらしいが見つからなかった。
wmic path softwarelicensingservice get OA3xOriginalProductKey
![tttttttttt](https://res.cloudinary.com/zenn/image/fetch/s--YaVG9xtd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/b1e726451c.jpeg)
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をいじったりしてよう。