V-antena and Tanimoto's page

谷本の備忘録・雑記帳・work

>

カテゴリー: settings

CATEGORY ARCHIVE

CPUがcore i7-7700 OSがwindows10 pro のPCをwindows11 proにupgradeしたのでその記録

該当PCの情報

BTOで購入したマシン(当初ubuntuで運用)に、SSDを増設・windows10 proのusbを購入してインストールしていたもの。

CPU : Intel core i7-7700
マザボ :ASUS Prime H270-PLUS
パーティション:MBR形式
Boot :レガシー 形式
TPM  :2.0のものが付いていた( 別の自作PCにはheadがあるだけ)

従って、MBRからGPTへの変更と、レガシーからUEFIへの変更がまず必要。

MBRからGPTへの変更

windows10に備わっているmbr2gptコマンドを使用する。

powershell(管理者)から行なう。

  1. mbr2gpt /validate /disk:1 /allowFullOS
    Validation completed successfully を確認
  2. mbr2gpt /convert /disk:1 /allowFullOS
    Conversion completed successfully を確認

BIOSモードをレガシーからUEFIへ変更

BIOSの設定から、レガシーからUEFIに変更し保存しresetし再起動する

※Bootメニュー中のCSM(Compatibility Supported Module)のところから変更する

windows10からwindows11へのupgrade

Githubにある flyby11 を使ってupgradeする。 

upgrade後のいくつかのエラー対策

下記は書きかけです。

1.プログラム互換性アシスタント  エラー

https://www.php.cn/ja/faq/650294.html

2.AI suite3 エラー

失敗したかも。 uninstallしてからの方が良いかも

mbr2gptでエラーが出て苦労の挙句解決できたのでメモ

背景

中古のノートPCを購入(CPU: Intel i5-8350U OS:windows 11 Pro)したのだが何かおかしい。

・セキュアbootになっていない
パーティションタイプがMBRになっている

CPUはwindows 11サポート対象だが上記はシステム要件を満たしていない。なのに動作している。windows 11のクリーンインストールでもなく通常のupgrade手順でもなく、抜け道でupgradeされたものなのかも(CPU、TPMはシステム要件を満たしているので通常のupgrade手順で出来るはずだが。 おそらく、中古PC販売者がCPU等がもっと旧いPCでも同じ手順で出来る様に全て抜け道で行ったのではないかと推測。 )

動いているとはいえシステム要件を満たしていないのは気になるので、MBRからGPTへの変換やセキュアbootに変更しようとした。 ところがMBRからGPTへの変換でエラーが出て解決に苦労したので、解決した方法を備忘録として残す。

なお、遭遇したエラーは
mbr2gpt /validate /disk:0 /allowFullOS   コマンドに対して

MBR2GPT cannot find OS partition for disk 0

が返ってくるというものであった。

対応のアウトライン

次の順で行った。 なお、コマンドは管理者権限でのコマンドプロンプトを使う事。powershellでは管理者権限であっても動かないものがある。また、通常のコマンドプロンプトでも動かないものがある。

1.ディスクの構成を確かめる
2.問題個所を除去する
3.mbrからgptへ変換する

これらの対策は、
https://www.diskpart.com/gpt-mbr/mbr2gpt-cannot-find-os-partition-7201.html
のページのsolution-1によるものです。

なお、このエラーはwindowsのupgradeの際にやり方によりゴミが残る事によるものだそう。

ディスクの構成を確かめる

diskpartコマンドでdiskpartモードに入ってから行う。

・list disk  でディスク番号を確認。その後diskを選択。 
 sel disk 0 や sel disk 1などでwindowsがインストールされているディスクを選択。

・list parで、boot ディレクトリーがありそうなpartition を確認。

・該当partitionにドライブletterがアサインされていなければ、
sel par コマンドと assign letter=w などドライブletterを割り当てる。
 例: sel par 2 then assign letter=b

・diskpartから抜け出し、 dir /a b:\  などで、boot <dir> があるpartitionか確認する

・もし そのパーティションにboot <dir>が無かった場合は、別のパーティションで同様に探す

問題個所を除去する

bドライブにbootディレクトリーがあったとして説明する。

bcdedit /store b:\boot\bcd /enum all を実行し、unknown となっているところが無いか調べる。 

もしunknownがあれば、 そこの部分の {identifier}部分を使って、
bcdedit /store b:\boot\bcd /delete {identifier}  にてその部分を削除する。

これをunknownが無くなるまで繰り返す。

mbrからgptへ変換する

disk0がwindowsが入っているdiskとして説明。

mbr2gpt /validate /disk:0 /allowFullOS

を行い、これがsuccessfully completed となったら

mbr2gpt /convert /disk:0 /allowFullOS

にてMBRからGPTに変換する。

後始末:BIOSでレガシーからUEFI起動に変更

再起動しBIOSを立ち上げ起動方法を変更する

windowsタブレットにubuntuをインストールしたのでメモ

背景

中古のwindowsタブレットを持っていたが、過放電を起こしてしまいバッテリーが30%程度まで劣化してしまった。また、格安の中古タブレットをたまたま見つけ購入したのでバッテリー劣化したタブレットにubuntuをインストールしてみたというもの

該当のタブレット

Fujitsu製のArrows Tab Q509/VE

CPU : Intel N4000
メモリー:4GB

インストールしたubuntu 及び インストールに使った物

ubuntu: ubuntu 24.04.02 desktop

使った物:usbメモリー 、usbキーボードusbマウス 及び それらを接続するためのusb hub
(下記写真は usb hub)

最初にusbキーボードを接続して、BIOSからbootの優先順位を変更するのを忘れないように

 インストール自体はrufusを使った通常の手法で出来た。但しマウスやキーボードが必要で結局usb hubもインストール作業に必要だった。

インストール結果

1.タッチは有効でした
2.文字入力促された場合、その場所をタップするとソフトキーボードが出現
3.タブレットを傾けると、それに合わせて表示も向きが自動的に調整される
4.wifiとbluetoothも問題なく使用可能

5.アプリの画面表示でwindowの右上がdefaultでは切れているので、設定のディスレイで解像度を調整する必要がある。200% にdefaultでは為っているので 175%に変更すると良さそう。100%だと文字が小さすぎる。

感想

タブレット自体が非力なので大した事は期待できないが、ubuntu tabletとしての使用は問題なさそうでした。

wake on lanの実現方法の一つ

背景

wake on lan(以降wol)を、機種変前のスマホを使って実現しようとしていたが外出中にスマホがスリープ?してしまい、外出先からwolが出来ない。そこでスマホを使わずraspberry pi(以降raspi)を使う別の方法を考えた。

前提条件 

  • raspiにsylpheedがインストール済み
  • sylpheedから周期的にポーリング受信可能なメールアドレスあり(私の場合自宅サーバー上)
  • raspiにwakeonlanがインストール済み

sylpheedでの設定

sylpheedでメッセージ受信したらコマンド実行 に一般設定で設定する
例:

/home/pi/tools/wolmail.sh

他に、2分ごとにメールをチェックする様にした。自宅サーバーでなければ、5分ごととかもう少し間隔を長めにした方が良いかもしれない。 起動までに時間がかかるが。

メール受信時に実行するシェル

wolmail.shを以下の様にした。試行錯誤で書いたものなので効率の良くないコードではあるが。

#!/bin/bash

ls -trl /home/pi/Mail/inbox | tail -1  >/home/pi/logs/wolsh.log

cat /home/pi/logs/wolsh.log | awk  '{printf("/home/pi/Mail/inbox/%s\n",$9)}' >/home/pi/logs/woltemp
prefile=/home/pi/logs/woltemp

while read filename
do
 cat $filename |awk -f /home/pi/tools/wolmail.awk

done < ${prefile}

wolsh.log、woltempは作業用のファイル

Pathは、念のためフルパスで記述。 sylpheedの受信メールはMail/inboxにあった。最新のものを使用。9番目のフィールドが該当メールのファイル名(数字)であった。

wakeonmailするためのawkスクリプト

awkスクリプトを、wolmail.awkとして下記の様に作成した。

BEGIN{
}
{
if (NF >=2 ) {
  if ($1 == "wolkeyword")  {
   for (i=2;i&lt;=NF;i++) {
      if ($i=="aaaaa") system("/home/pi/tools/wol-aaaaa.sh")
      if ($i=="bbbbb") system("/home/pi/tools/wol-bbbbb.sh")
      if ($i=="ccccc") system("/home/pi/tools/wol-ccccc.sh")
  }

  }
 }
}
END{
  print "wol sent end" > "/home/pi/logs/wol_mail_status"
}

wol-xxxxx.shは、wakeonlanコマンドのためのシェル

また、上記は3台に対応

wol用のメール

subjectもしくは本文内に、wolkeyword xxxxx の様に記述してメールする事で良い

無線lanカードのドライバーを入れていたらwake on lanが使えなくなったので再設定

再度調べて、今回は次のサイトを参考にして対処した。
https://blog.janjan.net/2022/08/10/ubuntu-wake-on-lan-settings

現状確認

sudo ethtool enp5s0 | grep -i wake

Wake-on: d になっていた。
Wake-on: g でないとダメとの事。

設定用ファイル作成

nano mytools/wakeonlan.sh で、下記内容のファイル作成

#!/bin/sh
/sbin/ethtool -s enp5s0 wol g

その後、実行属性を与える

sudo chmod +x mytools/wakeonlan.sh

サービスを登録

登録用ファイル作成

sudo nano /etc/systemd/system/wakeonlan.service


[Unit]
Description=Enable Wake-On-LAN

[Service]
Type=simple
ExecStart=/home/myhomename/mytools/wakeonlan.sh
Restart=always

[Install]
WantedBy=multi-user.target

namename はあなたのlogin名

サービスの登録

sudo systemctl enable wakeonlan.service
sudo systemctl start wakeonlan.service

再起動しておしまい

おまけ web経由で切断

電源onだけでは、RDPか何かを許可しない限り電源を切れない。そこでcockpitをインストール

 sudo apt install cockpit
 sudo systemctl enable cockpit.socket
  
 sudo ufw allow 9090/tcp

これで、webに9090ポートでアクセスするとcockpitが起動しweb経由でいろいろ出来る

V-antena and Tanimoto's page

あなたはIPv4でアクセスしています