mDNSでwindowsに対してlinuxクライアントから名前解決をしたい

この記事を作った動機 LinuxクライアントからWindows側にRDP接続などをするとき、いちいちIPアドレスを直接入力しているのは気持ち悪いと思っていた。今まではそれでいいやと放置していたが、最近いい加減どうにかしようということで、具体的な解決を試みようと思って、案の定手間取ったので記録する。 具体的には、mDNSを使って、Linuxクライアント側から、WindowsクライアントのプライベートIPアドレスを割り出したいということをしていた。基本的には以下のポイントがあった。 ファイアウォールの設定で、mDNSを受け付けるようになっているか? Linuxクライアントに必要なパッケージがインストールされ、必要なデーモンが動いているか? 接続先対象としてのWindows側のホスト名は間違っていないか? Linux側から名前解決を試みるとき、.localのTLDをつけ忘れていないか? 環境 前提としては、個人的なLAN内での利用を想定している。今回は、パブリックネットワーク向けのセキュリティー重視という観点では書いていない。 また重要な前提として、接続先と接続元は、同じプライベートネットワークに属していることとする。 接続先 (Windows) Windows 11 24H2 を使っている 接続元 (Linux) NetworkManger を使っている systemd-resolved を使っていない、無効にしている GNOME 環境 arch linux 環境 仮定 今回は説明のために以下の仮定をしている。Linux側に関しては、/etc/hostnameにすでに適切なホスト名が設定されているという前提である。 Windows側 ホスト名: WinHost IPアドレス 192.168.1.33 Linux側 ホスト名: LinuxHost IPアドレス 192.168.1.55 設定手順 Windows側 (接続される側、mDNSで名前解決される側) ファイアウォールの設定を確認する 今回はmDNSだけでなく、そもそも接続されているか確認するために、pingも通るように設定する。 ネットワーク探索が無効になっていないか確認する Linux側 (接続を試みる側、mDNSで名前解決をしようとする側) パッケージのインストール yay -S avahi nss-mdns # pacman -S avahi nss-mdns デーモンの有効化 sudo systemctl enable --now avahi-daemon.service /etc/nsswitch.confを設定する 以下はAvahi - ArchWikiを参考に設定した一部の例である。今回は IPv4 を対象として、mdns4_minimalを指定した。試してはいないが、mdns_minimal、mdns、mdns6_minimal(IPv6)としても、Avahi - ArchWikiを見る限り設定できる模様である。 ...

January 18, 2026

IDEからAHCI モードにする

この記事を作った動機 いちいちどのレジストリいじるべきか調べるのが面倒くさいから記録する。 まとめ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\StartOverrideを 0にする。AHCIからIDEモードにするときに機能するかは不明である。 引用 Yes there is a way on WIN 10 also ! Go into BIOS set the SATA mode to IDE and boot into system. Start REGEDIT and look for this line : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\storahci\StartOverride Change the 0 DWORD value from 3 to 0. Reboot, and change your SATA controller to AHCI in BIOS. Now let it boot into safe mode, WIN 10 will install required drivers for AHCI. ...

December 14, 2025

PyOCR を Windows で動かしたい

この記事を作った動機 pyocrを使うおうとしたらライブラリだけじゃなくて、OCRを実際にする部分である tesseract をインストールしないといけないことが分かったので記録をとってみる。前提として Windows 環境上で作業していて、Python環境はすでに構築されていて機能するものとする。 ちなみに、躓いた点としては、tesseract をただインストールする必要があるだけでなく、環境変数Pathを通して、tesseractコマンドが使える状態しないと、pyocr が tesseract を見つけられないという点があった。 Windows と違って、Linux や Mac 系の環境では、tesseract をインストールした時点ですでにパスが通っているところにバイナリが配置され、追加の設定が不要ということがあるかもしれないが、現時点ではまだ確かめていない。 pyocr を使えるようにする手順 pyocr ライブラリの導入 pip install pyocr tesseract をインストール インストーラの取得 Home · UB-Mannheim/tesseract Wiki から、tesseract-ocr-w64-setup-XXXXXXXXXXXXXX.exeをダウンロードする。 日本語のOCRデータが含まれるように指定する インストーラを実行し進める。ただ単に進めるだけでなく、途中で日本語向けのOCRデータを含むように明示する必要がある。 インストーラを進めている途中で出てくる以下のパスは、のちにPathという環境変数を設定するために使うため、どこかにコピーしておく。私の環境では以下のようになった。 環境変数を通す インストーラで見えていた場所に対して、環境変数のPathを設定する。なお変更の反映にはターミナルなどの再起動が必要である。また設定したのにうまく反映されない場合は PC ごと再起動した方がいいかもしれない。 環境変数が通ると、コマンドプロンプトなどで以下のように表示されるはずである。 tesseract # Usage: # C:\Program Files\Tesseract-OCR\tesseract.exe --help | --help-extra | --version # C:\Program Files\Tesseract-OCR\tesseract.exe --list-langs # C:\Program Files\Tesseract-OCR\tesseract.exe imagename outputbase [options...] [configfile...] # # OCR options: # -l LANG[+LANG] Specify language(s) used for OCR. # NOTE: These options must occur before any configfile. # # Single options: # --help Show this help message. # --help-extra Show extra help for advanced users. # --version Show version information. # --list-langs List available languages for tesseract engine. 環境変数がうまく通ってない場合の例(PowerShell) ...

December 2, 2025

React を使った Web アプリを Android アプリにしたい

この記事を作った動機 React で作った Web アプリを Android に移植しようとしたら超絶めんどくさかったので、記録するだけ。 自分の試した構成 Vite React TypeScript Android Studio (with SDK) npm create vite@latest 使った汎用コマンド集 すべての環境変数をリスト (Windows,PowerShell) gci env:* | sort-object name 環境変数を新規作成 (Windows,PowerShell) # 具体例 ANDROID_HOME にパスを設定する $env:ANDROID_HOME = "C:\Users\[userName]\AppData\Local\Android\Sdk" 特定の環境変数に対してパスを追加 (Windows,PowerShell) # 具体例 ANDROID_HOME にパスを追加設定する $env:ANDROID_HOME += ";C:\Users\[userName]\AppData\Local\Android\Sdk" 準備 Capacitor を使えるようにする 必要なパッケージのインストール npm i @capacitor/core npm i @capacitor/android 初期化する npx cap init android 向けに初期化する npx cap add android ANDROID_HOMEを設定する エラー例 Android SDK のパスが、ANDROID_HOMEとして環境変数に設定されていない場合は、以下のようなエラーが出てくる。 npx cap build android # × Running Gradle build - failed! # [error] # > Configure project :app # WARNING: Using flatDir should be avoided because it doesn't support any meta-data formats. # > Configure project :capacitor-cordova-android-plugins # WARNING: Using flatDir should be avoided because it doesn't support any meta-data formats. # FAILURE: Build failed with an exception. # * What went wrong: # Could not determine the dependencies of task ':app:bundleReleaseResources'. # > SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting # the sdk.dir path in your project's local properties file at 'C:\Users\userName\work\TODOListApp\TODO # List\android\local.properties'. # * Try: # > Run with --stacktrace option to get the stack trace. # > Run with --info or --debug option to get more log output. # > Run with --scan to get full insights. # > Get more help at https://help.gradle.org. # BUILD FAILED in 1s ...

November 21, 2025

Git でローカルリポジトリの変更を退避、破棄する

この記事を作った動機 単に、git pullして変更をリモートリポジトリからローカルリポジトリに反映しようと思ったときに、ローカルリポジトリ側に未反映の変更があり、衝突してマージに失敗することがある。そのような場合に、とにかくそのローカルリポジトリにある変更内容を破棄して、リモートリポジトリの変更を反映したいとき用に、記録をとりたい。 ローカルリポジトリの変更内容を保持しておきたいときは、git stash dropをする必要はない。 とにかくリモートリポジトリの変更内容を反映する例 リモートリポジトリの変更をローカルに反映しようとしてエラーになる git pull remote: Enumerating objects: 56, done. remote: Counting objects: 100% (56/56), done. remote: Compressing objects: 100% (15/15), done. remote: Total 56 (delta 41), reused 56 (delta 41), pack-reused 0 (from 0) Unpacking objects: 100% (56/56), 6.00 KiB | 79.00 KiB/s, done. From github.com:hello30190f/OneNoteAlternative c539ef0..a484d7c master -> origin/master Updating c539ef0..a484d7c error: Your local changes to the following files would be overwritten by merge: firstPrototype/backend/dataServer/notebookData/test/contents/test.json Please commit your changes or stash them before you merge. Aborting ローカルリポジトリの変更を退避する git stash Saved working directory and index state WIP on master: c539ef0 save 退避したローカルリポジトリの変更を破棄する git stash drop Dropped refs/stash@{0} (e64f70a6e978cf0a154795872e0b07f6530123aa) ローカルリポジトリの変更を退避または破棄したことで、衝突しなくなる git pull Updating c539ef0..a484d7c Fast-forward .../commands/notebookAndPage/createNotebook.py | 6 +- .../commands/notebookAndPage/deletePage.py | 4 +- .../commands/notebookAndPage/updatePage.py | 4 +- firstPrototype/backend/dataServer/helper/common.py | 3 +- .../backend/dataServer/interrupts/controller.py | 10 +-- .../notebookData/newnote/contents/test.md | 3 +- .../notebookData/newnote/contents/testa.md | 10 ++- .../dataServer/notebookData/newnote/metadata.json | 17 +++- .../notebookData/newnote/metadata.json.backup | 17 +++- .../notebookData/newntoe/contents/asfsdfsdsss.md | 4 +- .../dataServer/notebookData/newntoe/metadata.json | 13 ++- .../notebookData/newntoe/metadata.json.backup | 13 ++- .../notebookData/test/contents/test.json | 99 +++++++++++++++++++++- .../notebookData/test/contents/test/anArticle1.md | 13 ++- .../test/contents/test/test2/testaaaa.json | 53 +++++++++++- .../notebookData/test/contents/test1.json | 11 +++ .../dataServer/notebookData/test/metadata.json | 25 +++++- .../notebookData/test/metadata.json.backup | 25 +++++- .../backend/dataServer/type/pages/free.py | 2 +- .../backend/dataServer/type/pages/markdown.py | 2 +- .../src/modules/FakepagesPath.tsx | 16 +++- firstPrototype/note/architecture.md | 2 +- 22 files changed, 321 insertions(+), 31 deletions(-) create mode 100644 firstPrototype/backend/dataServer/notebookData/test/contents/test1.json 参考にしたサイトとか Git - git-stash Documentation https://git-scm.com/docs/git-stash (2025年11月12日)

November 12, 2025

GRUB で Windows も起動する

この記事を作った動機 単に今までめんどくさくて放置していた、Windows と Linux の デュアルブート環境において、GRUB を利用しているとき、Windows OS の選択肢が出てこないということについて、対応した時にわかったことを記録したいというだけ。 ちなみに今回の作業をするまでは単に BIOS 側で、.efi ファイルを指定することで、Linuxを起動するエントリと、Windowsを起動するエントリを作って、BIOSのブートメニューで選択していた。 なお今回の記事では前提として、GRUB が入っており、以下に示すコマンドはすでに使えることを想定している。 grub-install grub-mkconfig 環境 System Details Report(GNOME settings からのコピペ) Report details Date generated: 2025-08-04 14:45:58 Hardware Information: Hardware Model: Dell Inc. XPS 15 9575 Memory: 16.0 GiB Processor: Intel® Core™ i7-8705G × 8 Graphics: Intel® HD Graphics 630 (KBL GT2) Disk Capacity: (null) Software Information: Firmware Version: 1.20.0 OS Name: Arch Linux OS Build: rolling OS Type: 64-bit GNOME Version: 48 Windowing System: Wayland Kernel Version: Linux 6.15.7-arch1-1 パティーション構成 どんなパーティション構成で、デュアルブートを構成しているかも示す。Windows も Linux もどちら側も UEFI で動作しており、それぞれ個別に起動用の EFI パーティションを持っているという構成である。 ...

August 4, 2025

ネットワークドライブの削除と作成

この記事を作った動機 ネットワークドライブがつながらないとき、再接続しようと思うと、記録がない場合不便すぎたので記録するだけ。 やり方 前提として、以下の項目を置いておく Z: ドライブ 192.168.1.33 SMB サーバの IP datafolder マウントポイント 接続 net use Z: \\192.168.1.33\datafolder /USER:[UserName] [Password] 削除 net use Z: /Delete 参考にしたサイトとか Net use | Microsoft Learn https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/gg651155(v=ws.11) (2025年8月2日) Deleting Mapped network drive - Microsoft Q&A https://learn.microsoft.com/en-us/answers/questions/3253887/deleting-mapped-network-drive?forum=windows-all&referrer=answers (2025年8月2日)

August 2, 2025

パスワードを無期限で利用できるようにする

この記事を作った動機 最近 Win 11 24H2 を使っているときに、「パスワードの有効期限が切れています」とログオン時にパスワードの再設定を求められるということがあった。なぜか作成したアカウントの有効期限がデフォルトで設定されている状態であった。 それで調べてみるとGUI操作で、設定する方法ばかりヒットして、めんどくさかったので、コマンドでどうにかできないか試したことを記録するだけ。 やり方 以下はすべてのアカウントに対して設定を反映する方法である。一つ一つやる方法もあるらしいが、試していない。 コマンド (base) PS C:\Users\username> net accounts /maxpwage:unlimited コマンドは正常に終了しました。 全体像 (base) PS C:\Users\username> net accounts 強制ログオフまでの時間 (分): しない パスワード変更禁止期間 (日数): 0 パスワード有効期間 (日数): 42 最小パスワード長: 0 使用できない旧パスワード数: なし ロックアウトしきい値: 10 ロックアウト期間 (分): 10 ロックアウト監視ウィンドウ (分): 10 コンピューターの役割: WORKSTATION コマンドは正常に終了しました。 (base) PS C:\Users\username> net accounts /maxpwage:unlimited コマンドは正常に終了しました。 (base) PS C:\Users\username> net accounts 強制ログオフまでの時間 (分): しない パスワード変更禁止期間 (日数): 0 パスワード有効期間 (日数): 無制限 最小パスワード長: 0 使用できない旧パスワード数: なし ロックアウトしきい値: 10 ロックアウト期間 (分): 10 ロックアウト監視ウィンドウ (分): 10 コンピューターの役割: WORKSTATION コマンドは正常に終了しました。 (base) PS C:\Users\username> net user username ユーザー名 username フル ネーム コメント ユーザーのコメント 国/地域番号 000 (システム既定) アカウント有効 Yes アカウントの期限 無期限 最終パスワード変更日時 2025/05/29 21:33:43 パスワード有効期間 無期限 パスワード次回変更可能日時 2025/05/29 21:33:43 パスワードあり Yes ユーザーによるパスワード変更可能 Yes ログオン可能なワークステーション すべて ログオン スクリプト ユーザー プロファイル ホーム ディレクトリ 最終ログオン日時 2025/05/29 21:33:44 ログオン可能時間 すべて 所属しているローカル グループ *Administrators *Users 所属しているグローバル グループ *なし コマンドは正常に終了しました。 参考にしたサイトとか Set User Password to never expire | NTLite Forums https://www.ntlite.com/community/index.php?threads/set-user-password-to-never-expire.3328/ (2025年5月29日)

May 29, 2025

カーソル画像の保存場所を見つける

この記事を作った動機 新しくPCを導入したときに、カスタムのカーソルがどこに保存されているかわからなくなったので、どうやって調べればいいか記録するだけ。 方法 レジストリエディタを開く どんな方法でもいいし無数にやり方がある。 Win + R を押して、“regedit"と入力し、実行する スタートメニューから検索で"レジストリ"と調べる エクスプローラーからregedit.exeを実行する \HKEY_CURRENT_USER\Control Panel\Cursors を開く データの部分のパスを確認 参考にしたサイトとか Windows の マウスポインター をリセット #Windows10 - Qiita https://qiita.com/c-toyama/items/9c150c69f3371904f130 (2025年5月25日)

May 25, 2025

ローカルリポジトリをリモートへアップロード

この記事を作った動機 単にすでに存在する、git リポジトリを LAN 内の Gitea 上にアップロードするための方法の簡易的なメモ。Githubの場合でも同じようなことはできると思う。(そもそも github のページ参考にしたし) やり方 リポジトリの URL は、“https://aaa.info/urlToAremoteRepo.git" と仮定している。 リポジトリの作成(リモート側) リモート側に、最小構成で、readme や license、gitignore を追加しないようにして空っぽのリポジトリを作成する。 リポジトリの URL を設定する(ローカル側) git remote add origin https://aaa.info/urlToAremoteRepo.git ブランチの確認(ローカル側) アップロードしたいブランチの確認。今回は “master” という名前のブランチを、リモートにアップロードする。 git branch * master アップロード(ローカル側) git push origin master リポジトリが設定できたかの確認方法 git remote -v origin https://aaa.info/urlToAremoteRepo.git (fetch) origin https://aaa.info/urlToAremoteRepo.git (push) 参考にしたサイトとか Adding locally hosted code to GitHub - GitHub Docs https://docs.github.com/en/migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github (2025年5月19日)

May 19, 2025