2025年5月21日水曜日

セットアップが終わったばかりのPCが起動しなくなって泣きそうになった件

やっとセットアップが終わって、さてこれから使おうかとなったところで、


「お使いのPCまたはデバイスは修復する必要があります。要求されたデバイスが接続されていないか、デバイスにアクセスできません」


という悲しいメッセージと共に、エラーコード「0xc000000e」と書かれた青い画面が出てきました。

MBR的な起動するとこの情報が壊れていると推測しながら検索してたら、 良さげなサイトを発見!

取りあえずWindows11のUSBメモリを刺して起動し、スタートアップ修復を実行しましたが失敗。

続いてコマンドプロンプトからチェックディスクとシステムファイルチェックを実行したがこれも効果なし。

chkdsk c: /f /r
sfc /scannow

続いてEFIブートローダーを再構築。これでいけるかと思ったんですが、最後の再構築で「bootrec /fixbootアクセスが拒否されました」と言われて撃沈。

diskpart
list disk<
select disk 0
 ⇒メインのストレージはだいたい0
list vol
sel vol 数百MBでFAT32のボリュームNo
assign letter=O
 ⇒空いてるドライブレターなら何でもOK
exit
cd /O:EFIMicrosoftBoot
bootrec /fixboot

いやいや、これ以上どうしろってんだよと思ってたら、同じサイトの別ページに対処が書いてあるのを発見!同じとこに書いていて欲しかった笑

bcdbootというコマンドでできるっぽい。EFIブートローダーの再構築で必要な手順は済んでいたので、あとはコマンドを打つだけ。

cd O:\
bcdboot C:\windows /s O: /f UEFI

これで再起動したら無事起動できました。再セットアップにならなくてほんとよかった。

2025年2月20日木曜日

使ってみたいサービス、ソフトメモ

 こんなソフトやサービスあるよって教えてもらったのでメモ。


CLOUDFLARE

ゼロトラストを実現するためのサービス。

DDoSなんかも防いでくれる。


Tailscale

VPNっぽいセキュアな接続を行うサービス。

接続したいもの同氏をサーバが橋渡しして、あとはお互い通信するお見合いみたいな感じ。

UDP通信なので早いらしい。


Proxmox

サーバの仮想化プラットフォーム。KVMベース。

VMWare vSphere、XenServer、Nutanix AHVみたいな感じ。

2022年10月27日木曜日

docomoのiPhone12テザリングだとL2TP/IPSecでVPNサーバに接続できなかったこと

 会社携帯でiPhone12を使っている人が、テザリングでVPN接続できないと困っていたので調べてみました。

ドコモのiPhone12以降だと2022年2月からIPv6シングルスタックが使われるようになって、IPv4アドレスは割り当てられたポートしか使えないっぽいです。

そのためL2TP/IPSecで接続できない模様。


※参考資料(PDF)

https://www.jp.ipv6forum.com/timetable/program/20211210_1_IPv6summit_docomo.pdf


シングルスタックのIPアドレス変換方式は2つあります。

・DNS64/NAT64

・464XLAT

※参考資料のP20に記載



■DNS64/NAT64

ステートレスNAT64はIPv6とIPv4は1:1だが、ステートフルNAT64は1つのIPv4を複数のIPv6で共有(ポートでの振り分け)する。ドコモの資料にはどちらか明記されていない。

 ⇒L2TP/IPSecに必要なポートが割り当てられない可能性有


※参考資料

https://www.cisco.com/c/ja_jp/support/docs/ip/network-address-translation-nat/217208-understanding-nat64-and-its-configuratio.html



■464XLAT

通信が発生した際にポート番号を割り当てるため、ポート番号の使用範囲をユーザ毎にあらかじめ割り当てておく方式(MAP系)に比べて、ポート番号の使用効率が高く、少ない資源となったIPv4アドレスを有効活用できる。

 ⇒L2TP/IPSecに必要なポートが割り当てられない可能性有


※参考資料(PDF)

https://www.janog.gr.jp/meeting/janog30/doc/janog30-v64-pre-kawashimam-01.pdf

2022年9月21日水曜日

L2TP/IPSecでVPNサーバに接続できなかったこと

 会社でテレワークだと盛り上がり、L2TP/IPSecのVPNを設定したPCをばらまいたんですが、ご家庭の環境によって使えないケースがあったというお話。


最近流行りのIPv4 over IPv6の中にはIPv4アドレスを節約するため、1つのIPv4アドレスを複数人(64人とか128人とか)で共有してます。

それをどうやって割り振ってるかというと、一人ずつにポートをばーっと割り当ててます。IPv4アドレスとポートの組み合わせで宛先を決めている、という感じです。

  • esp プロトコル(プロトコル番号 50)
  • isakmp/UDP(ポート番号 500)
  • ipsec-nat-t/UDP(ポート番号 4500)

L2TP/IPSecではこれらのポートを使っていますが、こいつが割り当てられなかったら当然使えないということになります。

これが最近OCNとかでよく見られ、自宅から社内にVPN接続できないという事態につながっています。


その解決方法ですが、L2TP/IPSecを諦めることにしました。

幸いWindows限定ではありますがSSTPというプロトコルがあったのでこちらで接続するようにし、問題なく動いております。

2020年6月2日火曜日

Surface Book2のキーボードが外れなくなったら

Surface Book2のキーボードが外れなくなり、ネットに上がっている手段(完全シャットダウンなどなど)では解決せず、Microsoftに問い合わせたら有償修理で7万と言われ途方に暮れていました。

こんな時は日本だけじゃなくて世界の知恵を借りるべきだと思い、「Surface book2 keyboard detach」で検索したら早速発見!

■QAサイト
https://www.reddit.com/r/Surface/comments/7ne049/surface_book_2_screen_thinks_it_is_detached_when/

■取り外し動画
https://www.youtube.com/watch?v=4fVGQPQ36Yk

■手順
1.画面側面、画面下側から6番目の穴にゼムクリップを伸ばしたものを画面上部に向けて刺し入れ、2cmほど押し入れると片側のロックが外れる。
2.外れたところがくっつかないように布などを噛ませる
3.反対側も同じようにして外す

一回外してくっつけるとキーボードもきくようになって無事解決しました。あーよかった。

2020年5月22日金曜日

SQLServerで外部(別のコンピュータ)から接続するための設定

すぐ忘れちゃうのでメモ

1.「SQL Server 構成マネージャ」を起動
2.「SQL Server ネットワークの構成」内の「SQLEXPRESS のプロトコル」を選択
3.「TCP/IP」の状態を「有効」にする
4.「TCP/IP」のプロパティ「IPアドレス」タブ「IPAll」の「TCP ポート」を「1433」に設定し、「TCP 動的ポート」を空にする
5.「SQL Server のサービス」を選択し、「SQL Server(SQLEXPRESS)」を再起動する

以上。

2020年5月9日土曜日

Googleカレンダーの変更通知をTeamsのチャネルに投稿する

無料版Teamsを使い始めたら、次に共有カレンダーの通知が欲しくなり、GoogleカレンダーをTeamsのチャネルに投稿するための手順を調べました。

■利用するサービス
・無料版Teams
・Googleカレンダー
integromat
 ⇒自動化ツール。IFTTTやMicrosoft Power Automateみたいなものだがより色々できる。

1.Teamsの準備
Incoming Webhookアプリを追加してチャネルに投稿するWebhookURLを取得する。
「Teams Webhook」で検索したら色々出てくるので手順はそちらで。(こことか

2.Googleカレンダーの準備
通知したいGoogleカレンダーを用意する。
手順は割愛。

3.integromatの設定
まずサインアップ。メールアドレスでもGoogleやFacebookのアカウントを使ってもOK。
ログインできたらページ左のメニューから「Scenarios」をクリック。


画面右上の「Create a new scenario」をクリック。


使うモジュールを選択する画面が出てくるので、今回は「Google Calendar」と「HTTP」を選択。テキストボックスに入力すると名前でフィルターできるので、いい感じに絞ってクリックするとチェックマークがつく。選択したら右上のContinueをクリック。


最初にトリガーを設定。?をクリックすると選択したモジュールが出てくるのでGoogle Calendarをクリック。


一番上の、追加、変更、削除って書いているっぽいやつをクリック。


Addボタンをクリックして接続するGoogleアカウントの情報を入力すると、カレンダーの一覧が出てくるので通知したいカレンダーを選択する。
最後は一度に通知するイベントの最大値っぽいので、なんとなく50にしてみた。


いつから?って聞かれたのでとりあえず今からってしてみる。


次にActionを追加。下のWebっぽいアイコンをクリックし、一番上のMake a requestをクリック。


URL:1で取得したWebhook用のURL
Method:POST
Body type:ROW
Content type:JSON
Request content:ここを参考にいい感じに設定


■今回設定したRequest contentの内容
必要最低限の情報と予定へのリンクを出すようにした。
{
    "@type": "MessageCard",
    "@context": "http://schema.org/extensions",
    "themeColor": "0076D7",
    "title": "カレンダー名 {{switch(1.status; "confirmed"; if(formatDate(1.dateCreated; "YYYYMMDDHHmmSS") = formatDate(1.dateUpdated; "YYYYMMDDHHmmSS"); "登録"; "更新"); "cancelled"; "削除")}}",
    "text": "{{1.summary}}({{formatDate(1.start; "YYYY年MM月DD日 HH時mm分")}}~{{formatDate(1.end; "YYYY年MM月DD日 HH時mm分")}})",
    "potentialAction": [
      {
        "@type": "OpenUri",
        "name": "予定を開く",
        "targets": [
          { "os": "default", "uri": "{{1.htmlLink}}" }
        ]
      }
    ]
}

あとはGoogleカレンダーに予定を追加し、画面左下の再生ボタンをクリックして通知されるか確認。
問題なく通知されたらフロッピーアイコンをクリックして保存する。
有効にするには左下のトグルをクリックしてOnにする。デフォルトでは15分おきにイベントを取得してTeamsに通知する。