Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

ネットワークが突如繋がらなくなる

f:id:fa11enprince:20200528152115j:plain 本日、突如Windowsマシンがインターネットに繋がらなくなった。
実はルーターの調子が悪くて、再起動したら治ったのですが
原因を究明するまでやたらハマったのでその記録です。
構成はパソコンを有線でSoftBankから借りてるルーターに繋いでいるごく一般的な感じです。

現象発生

ネットワークがつながらない。インターネットにつながりません。
「インターネットに繋がりません」とググりたいが、インターネットにつながらない。
仕方ないからスマホでググる。

いきなり「先生!なにもしてないのにインターネットにつながらなくなった!」
と聞かれた、そんな感じでした。
そんなぼんやりなこと言われてもパソコン大先生は困ります。
何もしてないのに繋がらなくなることはないだろ、と言いたくなりますが自分の身に起きるとは。

システム復元を試みる

真っ先にWindows Updateを疑います。
しかしながら不審なところはない。
とりあえず復元だー。

…復元ポイントで復元できないことってあるんすね。
0x80071ac5
ってエラーがでて、なんか変なファイルパスのファイルが消せないとかなんとか。
なんか1時間くらい待たされてエラー出るんすけど。
それを3回くらい繰り返してダメだと悟る。
セーブブートからもやってみたよ。
で、でたーwすぐセーフブート無意味に勧める奴www 諦める。

他のマシンでつないでみる

MacでWi-Fiにルーターにつなぐと普通につながる。
ルーターの直IPを打ってpingをするも普通に応答が返ってくる。

Windowsは有線LANでルーターにつないでます。
PCの裏側を見てもLANが緑色にリンクアップしてます。
ルーターも挿しているところのランプが緑ランプになっていてルーターも反応している。
ケーブルを交換してみるが一緒。
物理層は問題がない。

Hyper-Vを消してみる

Hyper-Vを入れるとスイッチが勝手に作られるんで消してアダプタも
デバイスマネージャーから根こそぎ消す。
Network resetという機能があるのでやってみるが効果なし。
そのあとググって、
https://appuals.com/ethernet-doesnt-have-a-valid-ip-configuration/
を試してみるもダメ。

DHCPをやめてみる

ManualでDHCPをやめてルーターと同じセグメントの192.168.XXX.XXXに指定してつなげてみる。
繋がらん…そんな馬鹿な。pingすら通らない。

DHCPに戻すと謎の
169.254.XXX.XXX
というIP。これはwhat。
謎…とおもったらルーターが見つからなくてどうしようもない場合
169.254のIPが振られるらしい。ほー。
IPアドレスが169.254~になる

ルーターを再起動してみる

なんかよくわからないなぁと思いつつ気分転換にルーター再起動
繋がったんですけど( ^ω^)・・・ 。 Wi-Fi側がOKだからといって有線側も大丈夫とは限らんのか…。 とりあえず消したHyper-Vは元に戻しました…スイッチ消しちゃったアァ。
ちなみに

bcdedit /set hypervisorlaunchtype off

をやっていたので、

bcdedit /set hypervisorlaunchtype auto

で元に戻します。管理者権限で…そのあと再起動を忘れずに。

モニタの電源が消えると音が聞こえなくなる

f:id:fa11enprince:20210314081905j:plain Windows Updateでバージョン 2004にしてからモニタの電源が落ちた後に音が聞こえなくなる症状に悩まされています。

環境は以下のような感じです

種別 使っているもの・バージョン
OS Windows 10 Pro 2004
モニタ iiyama ProLite XU2390HS-5
GPU NVIDIA GeForce RTX 2070 SUPER
インターフェース HDMI

暫定対処

Win+Rでservice.mscでサービスのGUIを起動し
(もしくはCortanaのWindowsでserviceと打ってServiceを起動するか)
サービスのGUIから
Windows Audio Endpoint Builderを選択して右クリックから再起動を選び
再起動すると(Windows Audioも再起動され)、
私と同じ状況であれば症状が治るかと思います。 f:id:fa11enprince:20210314081003p:plain

恒久対策かなと思ったけどダメだった方法

nVidiaのドライバが関係あるか全くわからないが
GeForceExperienceから最新のものを取ってくる
GeForce Game Ready Driver Version: 456.71→GeForce Game Ready Driver Version: 461.72
NVIDIA Studio Driver Version: 461.40→NVIDIA Studio Driver Version: 461.72
効果なし…

治らずめんどくさいのでバッチを用意する

テキストファイルを作りデスクトップに置き、次のコードを書く

@echo off
net stop Audiosrv
net stop AudioEndpointBuilder
net start AudioEndpointBuilder
net start Audiosrv
if not %errorlevel% == 0 (
  echo You must run as administrator
)
pause

名前をrestart_audio.batにして右クリックから「管理者として実行」を選択する。

恒久対策はどうすればいいのやら…
モニタの電源を落とさなければいいのだろうか…。

Hyper-VのGuestでWSL2でdockerを動かしてみる

f:id:fa11enprince:20200819231041j:plain
こんなのすぐに終わるかなー。と思ったら、案の定、罠が仕掛けられてました。単なる備忘録です。
Windows 10 Enterprise 2004でお試ししてみました。

Windows 10 Enterpriseのゲストを作成してみる

ダウンロード編

評価版の仮想環境を作れるよーってことで、QuickからWindows 10 dev environmentを作ります。
期限付きとはいえ、太っ腹っすな、最近のMSさん。
が、しょっぱなから失敗する。
"Failed hash verification" in Hyper-V Quick Create with Windows 10 dev environment
とか出るよ。

ということで、直にDLする。
https://download.microsoft.com/download/7/c/e/7ce1271d-04bb-4f0f-b1f4-e031bccb9712/WinDev2007Eval.HyperVGen2.zip
んで、Explorerで管理者としてアクセス
C:\Users\Public\Documents\Hyper-V\
移動してダウンロードしたWinDev2007Eval.HyperVGen2.zipを展開した中にある、
WinDev2007Eval.vhdxファイルを
C:\Users\Public\Documents\Hyper-V\Virtual hard disks
に置く。別にここじゃなくてもよいのだけれど、ダウンロードフォルダに置きっぱなしもなんだかなぁというよくわからない心情でこうしました。
Zipファイルの解凍めちゃ遅い…。そこそこいいスペックのマシーンなんだけどな。M2.SSDでCore i7-9700KなのでそこそこおれTUEEEEができるスペックのはず。

Guestマシン作成編

Hyper-V Managerから
Local intallation sourceで、Change installation sourceで先ほどのvhdxを選ぶ
Name: Windows 10 dev environment
Network: Default Switch
Create Virtual Machineを押す
これでOK

Docker DesktopをWSL2でやってみる

Hyper-VのGeuest上で何も考えずにDocker Desktopをインストールすると、
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.
とか出る。またか。。。

Install Windows Subsystem for Linux (WSL) on Windows 10 | Microsoft Docs
仮想マシン プラットフォーム" オプション機能を有効にしてみる
Powre Shellを管理者で起動して以下のコマンドを実行。
ついでにWSL2をデフォにする。

> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
> wsl --set-default-version 2

これでもダメ
はいはいVT-xが有効になってないのね。
GuestのVT-xが有効かどうか確認するためにTask ManagerをみるとVirtualization: Enabledのかわりに
Virtual Machine: Trueになってる
おーこれはどうするんだ?と調べたらすぐに出てきた。

HOST側のPowerShellで管理者権限で実行
kakkoyakakko2.hatenablog.com

Nested Virtualization を設定

Set-VMProcessor -VMName "<VMName>" -ExposeVirtualizationExtensions $true

これをやってGuestを立ち上げると…(なんか時間かかるけど…) f:id:fa11enprince:20200819231441p:plain
できたできた。
ああ、そうかHyper-VのGuest上のでWSL2だとやっぱり内部的にHyper-Vを使ってるから、
Hyper-VのHyper-VになるからNested virtualizationってことが必要なのか。

所感

Hyper-V使えるPro EditionだったけどWindowsのお試し環境をお手軽に作れるのはうれしい。
WSL2速くないすか?
あと、2004にしたらWSL2に乗り換えようかなと思いました。

Windows 10の「フォト」アプリでiPhoneからの画像転送がうまくいかない


iPhoneから写真を転送しようとUSBで繋ぐと、「フォト」アプリが立ち上がって、
インポートするように促してくるのに、
「問題が発生しました。ファイルがインポートされていない可能性があります。」
とほぼ確実にエラーが出てきます。その対処法を書きます。
詳細のリンクを押してもまるで役に立たないし、リトライすると同じファイルがリネームされてダブってしまいます。
せめて中途半端にインポートした写真を残さずにゴミ箱に入れてくれと思います。エラーも詳細がわかりません(十中八九動画の変換エラーです)。 次期アップデートでこの辺りが治ってくれると嬉しい。
2023年06月24日 追記
ちなみに私のWindows 11環境ではiPhoneをUSBで繋ぎっぱなしで再起動するとExplorer上で認識されないようなので、 再起動してからUSBで繋いでiPhone上で許可としないといけないようです。
iTunesからの読み込みはその限りではありません。
前からそうだった説はあります。

前提条件と結論

おおよそこのバージョンに近ければ状況はほぼ同じだと思います。
私の場合の環境を書いておきます。

OS バージョン
Windows 10 Pro 1903
iOS 13.6

結論を先に書くと対処法1,2がおすすめです。

まるで効果がないガセネタ対処法

  • ケーブルを純正にする
    →関係ありません

対処法1 iPhone側で画像・動画の形式の変換をしないようにする

  • メリット
    フォトアプリがそのまま使えてすべてのエラーが解決するわけではありませんが、9割方成功する方法です。  
  • デメリット
    動画はデフォルトでWindows上ではそのままでは見れない。

画像・動画の形式の変換をしないようにするにはiPhone上で、
設定 > 写真から一番下の元のフォーマットのままを選択する(デフォルトは自動)

これをやってからもう一度インポートするとエラーが出ずに正常終了できるかと思います。
これでも解決しない場合は対処法2か3を試します。

対処法2 Explorerの画像とビデオのインポートを使う

  • メリット
    確実に成功する。どのファイルでエラーが起きたかわかる。リトライが可能。
  • デメリット
    フォルダ分けが通常のフォトアプリの分け方と違う。

ExplorerでiPhoneアイコンで右クリック > 画像とビデオのインポート

あとは「すべての新しい項目のインポート」を選んで「次へ」を押しましょう。
グループ分けができるのですが、奇妙なフォルダわけを行うので1フォルダにまとめてしまうのが良いでしょう。
インポートが実行されてエラーが出るとダイアログが出現するのでスキップするなりしましょう。

対処法3 フォトアプリを使わずiCloudアプリを使う

  • メリット
    従来からある方法で安定している
  • デメリット
    iPhone→クラウド→Windowsとなるし、そもそもiCloudで大きい容量を契約していないと使えない。 さらに、わざわざiCloudアプリを入れないといけないうえにiCloudのアカウントが必要(iPhone使っていたら持っているが)。

対処法4 iTunes経由で同期

  • メリット
    同期はできるが、2020年現時点ではデメリットが大きすぎて使うメリットが皆無。
  • デメリット
    iPhoneにしかないデータが消失する可能性がある(ということが過去にあった。現在は不明)。PCにしかなくてiPhoneにない場合もあり得る。複数デバイス間で同期している場合さらにわけがわからなくなる。そもそも複数デバイス間の同期はシステム的にも難易度が高い。

これはやめたほうが良い。

対処法5 何らかの別アプリで写真を抜き出す

実は書いていてこれが一番いいような気がしてきた…。
のですが、特によさそうなものが見つからなかったのでやはり対処法1,2が良いかと思います。

参考