Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 和田 勇 の投稿
返信数: 12

Windows 11 だけのようなのでスレッド変えます

現象(2022年 02月 14日(月曜日) 04:08 - 和田 の報告)

Windows 11 Home ( ascii user 名 ) で美文書8版がインストール失敗してしまった。まだ一回だけど。

    --------2022年2月14日3時9分27秒起動時のログ-------
    ログを C:\texlive\bibunsho_log.txt に作成します。
    D:\texlive\texlive2020-r56669.iso を C:\Users\i-wada\AppData\Local\Temp\t1vptddj.efv\texlive2020-r56669.iso にコピーしています……
    **************************************************************************************************
    コピーを終了しました。
    ISO ファイルをマウントします。
    ISO ファイルのマウントに失敗しました。再度インストールを試してみてください。現象が続く場合は出版元へ問い合わせてください。

阿部さんの依頼(2022年 02月 18日(金曜日) 22:36 - 阿部 紀行)

直接マウントするとどうなりますか?
powershell -Command Write-Output "(Mount-DiskImage 'C:\***\***\texlive2020.iso')"
の結果を教えてもらえるとありがたいです.(C:\***\***\texlive2020.isoの部分はisoファイルへのフルパスにしてください.)

阿部さんの依頼に対して和田の報告

DVD メディアからのインストール試み

  • powershell でマウント操作を行うための ISO イメージ作りで実施

  • コピーが終わって、一瞬エクスプローラにマウントされたが、直後にアンマウントされてしまう

  • ISO イメージ作成中、ISOイメージ作成状況を監視して、ファイルが存在しているのは確認していましたが、上記のアンマウントされた後、コピーした ISO イメージは削除されてしまうようです。

  • なので AppData\Local\Temp 以下にあった iso イメージは存在しなくなってしまうので、マウントはできませんでした。

  • 状況がわかるようにスクリーンショットを添付します。

念の為 texlive ディレクトリの ISO イメージをデスクトップにコピーして powershell を利用して、マウント実験は一応成功。

powershell -Command Write-Output "(Mount-DiskImage 'C:\Users\i-wada\Desktop\texlive2020-r56669.iso')"

Attached          : True
BlockSize         : 0
DevicePath        : \\.\CDROM1
FileSize          : 4499648512
ImagePath         : C:\Users\i-wada\Desktop\texlive2020-r56669.iso
LogicalSectorSize : 2048
Number            : 1
Size              : 4499648512
StorageType       : 1
PSComputerName    :
添付 2022-02-19_2.42のイメージ.jpg
和田 勇 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 阿部 紀行 の投稿
ありがとうございます.インストーラからだと一瞬マウントされてその後アンマウントされている感じでしょうか.マウントされていないというよりは,マウントされたというのがきちんと取得できていないのかもしれません.

すみません,こちらもお願いするべきだったのですが,
powershell -Command Write-Output "(Mount-DiskImage ''| Get-Volume).DriveLetter"
だとどうでしょう?
阿部 紀行 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- はやて (h20y6m) の投稿

横から失礼します。

Windows 11 Pro (Build 22000.493) (Windows 10 からアップグレードした環境)でコマンドプロンプトから

powershell -Command Write-Output (Mount-DiskImage 'C:\tmp\texlive2020-r56669.iso' ^| Get-Volume).DriveLetter

を実行してみたところ1回目の実行では正常にマウントされたもののコンソールには何も出力されませんでした。

一旦アンマウントして同じコマンドを再度実行すると、今度は正常に割り当てられたドライブレター D が出力されまました。(何度か繰り返してみましたが2回目以降は出力されました。)

しばらく(1~2時間程度)時間をおいて再度試してみたところ、またも1回目だけ何も出力されず、2回目以降はドライブレターが出力されました。

キャッシュが効いていないとマウントされてからドライブレターが割り当てられるまでにタイムラグがあるのかもしれません。

対処法は

powershell -Command Write-Output (Mount-DiskImage 'C:\tmp\texlive2020-r56669.iso').DevicePath
powershell -Command Write-Output (Get-Volume -FilePath '\\.\CDROM1').DriveLetter

のように2つのコマンドに分けて間にSleep入れるとか、2つ目のコマンドをドライブレターが取れるまで繰り返すとかすればいいのかなぁ……

【追記】

PCを再起動してpwsh上で直接コマンドを実行してみました。

PS C:\tmp> Mount-DiskImage 'C:\tmp\texlive2020-r56669.iso'

Attached          : True
BlockSize         : 0
DevicePath        : \\.\CDROM1
FileSize          : 4499648512
ImagePath         : C:\tmp\texlive2020-r56669.iso
LogicalSectorSize : 2048
Number            : 1
Size              : 4499648512
StorageType       : 1
PSComputerName    :


PS C:\tmp> Get-Volume -FilePath '\\.\CDROM1'
PS C:\tmp> Get-Volume -FilePath '\\.\CDROM1'

DriveLetter FriendlyName FileSystemType DriveType HealthStatus OperationalStatus SizeRemaining    Size
----------- ------------ -------------- --------- ------------ ----------------- -------------    ----
F           TeXLive2020  Unknown        CD-ROM    Healthy      OK                          0 B 4.19 GB

PS C:\tmp>

1回目の Get-Volume を実行する時点でエクスプローラーが開いてファイル一覧が表示されているにもかかわらず取得できていないようです(Windows 11 のバグだろうか?)。

なのでSleep入れるのはだめそう。Get-Volume を2回呼ぶしかなさそう。

はやて (h20y6m) への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 和田 勇 の投稿

状況

  • 再現・確認テストがなかなかうまくいかないのでOSリブートを繰り返していますので、返事が遅れています。

阿部さんの質問について

  • 「インストーラからだと一瞬マウントされてその後アンマウントされている感じでしょうか」→ YES

    昨夜、仕事の目処がついたので、しばし、install 状況を眺めていて、たまたまエクスプローラで「pc」のところを開いていて、一瞬マウントされたのに気がつきました。

  • ドライブレターの取得について

    • インストーラがマウントした iso イメージのドライブレターは、ファイルパスが一瞬でなくなってしまうので、非〜〜常に難しいです。

はやて さん情報について

  • ドライブレターは取得できない時がありますね。はやてさんと同じように、失敗でしてもリトライすると OK になるのも同じですね。

    スリープでダメなら、「サブコマンドレット終了待ち」とかのオプションないかしら?

  • 「start texlive2020-r56669.iso」は、かなり早くレスポンスが帰ってくるけど Mount-DiskImage コマンドレットだと結構時間がかかりますね。

時間ができたら以下をやろうかと考えています。

  • インストーラからスクリプトイメージをとり出して、手動でそのスクリプト動かしてみる ... できるかどうかわかんないけど。
和田 勇 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 和田 勇 の投稿

なんとなくわかったぞ

遅いデバイスを利用した時、一般ユーザでマウントしたドライブレターの取得に時々失敗するようだ。でもその直後に再試行すれば取得できるようだ。

インストーラの解析

  • 前回、インストーラから情報を抜き出すと書きましたが、リバースエンジニアリングできました。
    • マウントしてドライブレターが取得できたら、移動して install-tl-windows.bat を実行
    • 取得できなかったらダイアログ出してISOイメージは削除
  • 結果は、阿部さんの指示している以外の情報は無かった

マウント状況のドライブレター取得について

はやて さんの観察大変参考になりました。

    powershell -Command Write-Output (Mount-DiskImage 'C:\Users\USER\Desktop\texlive2020-r56669.iso' ^| Get-Volume).DriveLetter

上記、コマンドを「管理者権限」と「一般ユーザ」で検証してみました。

  • 管理者権限では確実に所得できる(テストした限りでですが)
  • 一般ユーザでは取得できない現象が発生することがある
    • リブート直後
    • マウント・アンマウント操作をしばらく行わない
    • 2時間くらいかなと思っていましたが 15 分くらいのようでした (15 分の根拠は後ほど)
  • 一般ユーザでは取得できない時、再試行すると取得できる
  • 連続すれば... と思い、インストーラで失敗直後にインストーラ再試行して みましたが再発
  • では ... ISO イメージコピー中にコマンドプロンプト等でマウントイベン ト発生させてみたところ、無事インストール作業が進みました。

    • マウントイベントは上記 Mount-DiskImage を ISO イメージの 3/4 くら いコピーしたところで発行

    • 生成されるファイルのスタンプ情報から ISO イメージコピーは 18 分く らいでした(仮想環境だということもありますが、随分前の遅い CD/DVD ドライブなせいみたい)

    • 以上の情報からマウント情報のキャッシュ推定時間は 15 分かと思っています。

  • ちなみに管理者権限でインストーラを起動すると問題なくインストールできます

  • ちなみに2、美文書の DVD イメージをエクスプローラで単純にローカルにコピーして、 そのインストーラで実行すると ISO イメージのコピーも早いし、失敗しても即座にリトライ すればインストールできますね。 ←この項サポートページに反映させるための情報になりますね。

インターネットの情報

インターネットでこの件について調べると以下のようでした。たくさんあるので URL は省略します。

  • マウント前後のドライブレターリストを比較
  • マウントとドライブレター取得を別々にしたら
  • 関連する機能を幾つか連結して最後で取得
  • 管理者権限が必要だという説もある

いろいろな対処策

  • サポートページには、「DVDメディアでのインストール失敗したら、メデイ アのコンテンツをローカルにコピーし、そのインストーラを使ってください。 ただし、失敗したら、直後にリトライしてください。云々」みたいなことを 記述するか否か検討してください。
  • インストーラの方では、マウント後のドライブレターが空だったら再試行す るよう改修 ... 美文書9に向けての改修?
    • 二度実行すれば多分取得できるとはおもいますが ... プログラムだと間隔が短すぎるので
    • 間隔は「等間隔」「2の冪乗」「フィボナッチ数列」のいずれかな
    • 個人的には、愛読書からのヒントで「テトラちゃんのフィボナッチサイン」 の「1、1、2、3、5」のように5回程度が、短すぎず、長すぎず、多すぎずでいいかな…
    • この対処に合わせたダイアログメッセージの改訂

作業後記

  • 今回は、遅いデバイスがあったので Windows の秘孔をついたようだ
  • 今回は少なくとも 2 回 ISO イメージコピーが必要で遅いデバイスだと 18 x 2 で 40 分弱要する
  • でも、メディアをローカルにコピーは 20 分で、インストーラによる ISO イメージは一分もかからないので、リトライしてもローカルコピーの方がいいな。
和田 勇 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 阿部 紀行 の投稿
お二人とも大変有用な情報をありがとうございます.原因はよくわかりませんが,マウントしてからGet-Volumeを繰り返すというのができそうな対策ですね.その方針でやってみようと思います.
阿部 紀行 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 阿部 紀行 の投稿
この方針で動くようにしてみました.添付のものがそれです.もしよろしければこちらに差し替えて動くか試していただけますでしょうか.
阿部 紀行 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 和田 勇 の投稿

exe ファイルを解析して、修正内容を確認し、手動で コマンド動かしてみました。

マウント後、ドライブレターが取得できないときは、以下の用に しています。 「str」は追いかけきれていないのですが、 おそらく ローカルディスクにコピーした ISO イメージだと思います。

以下は str の推定が間違っていたら没ですが ...

      FileName = "powershell.exe",
      Arguments = "-Command Write-Output (Get-Volume -FilePath '" + str + "').DriveLetter",

なので「 (Get-Volume -FilePath C:\Users\i-wada\Desktop\texlive2020-r56669.iso ).DriveLetter」 を実行すると「C」しか返ってこないと思います。

      Get-Volume -FilePath C:\Users\i-wada\Desktop\texlive2020-r56669.iso

     DriveLetter FriendlyName FileSystemType .... 省略
     ----------- ------------ --------------
     C                        NTFS

で、代替案を探し https://impsbl.hatenablog.jp/entry/MountISOandChangeDriveLetter を参考にすると

      Get-DiskImage C:\Users\i-wada\Desktop\texlive2020-r56669.iso | Get-Volume

      DriveLetter FriendlyName FileSystemType.... 省略
      ----------- ------------ --------------
     H           TeXLive2020  Unknown

となり、DriveLetter でピックアップすれば目的のものが求められると思います。

こうして得た文字列を最大20文字以内だったら 成功としている点はわかりかねますが、 コマンドレット名を取り替えれば概ね良いと思います。

なお、遅いデバイスでないと実験は再現できないと 考えていますが、手持ちのブランクDVDメディアは 経年劣化のためか、悉く認識せず、対策を含めて検討中です。

和田 勇 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 和田 勇 の投稿

str について

気になったので調べてみました。

str は Mount-DiskImage の処理結果から DevicePath 情報を 抜き出したものでした。

Mout-DiskImage の DevicePath は和田の環境では \.\CDROM1 なのでこれを str に見立てて実行するとドライブレターは取得できました。

ですので、昨夜の和田の投稿は無視してください。

これから、バッチスクリプトで15 分から30分の間隔を空けて mount 直後に ドライブレターを取得する実験を計画しています。

和田 勇 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 阿部 紀行 の投稿
すみません,説明不足だったようです.もともとの美文書インストールDVDの中にあるbibunshoTeXsetup.exeを先日添付したものを解凍して出てくるものに取り替えると動くようにしたつもりですので,それで試していただけると助かります.
阿部 紀行 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- はやて (h20y6m) の投稿

元のインストーラが失敗することも含めて試してみました。

DVDから直接実行すると失敗。

ログを C:\texlive\bibunsho_log.txt に作成します。
D:\texlive\texlive2020-r56669.iso を C:\Users\***\AppData\Local\Temp\duo5yeds.wdh\texlive2020-r56669.iso にコピーしています……
**************************************************************************************************
コピーを終了しました。
ISO ファイルをマウントします。
ISO ファイルのマウントに失敗しました。再度インストールを試してみてください。現象が続く場合は出版元へ問い合わせてください。

winフォルダとtexliveフォルダをローカルディスクにコピーして(キャッシュをクリアするためにPCを再起動して)実行した場合も失敗。

ログを C:\texlive\bibunsho_log.txt に作成します。
C:\tmp\bibunsho8\texlive\texlive2020-r56669.iso を C:\Users\***\AppData\Local\Temp\t0biuyft.omt\texlive2020-r56669.iso にコピーしています……
**************************************************************************************************
コピーを終了しました。
ISO ファイルをマウントします。
ISO ファイルのマウントに失敗しました。再度インストールを試してみてください。現象が続く場合は出版元へ問い合わせてください。

bibunshoTeXsetup.exeを差し替えて(PCを再起動して)実行すると正常にTeX Liveのインストールが開始されました。

ログを C:\texlive\bibunsho_log.txt に作成します。
C:\tmp\bibunsho8\texlive\texlive2020-r56669.iso を C:\Users\***\AppData\Local\Temp\b4jkcvfj.eqf\texlive2020-r56669.iso にコピーしています……
**************************************************************************************************
コピーを終了しました。
ISO ファイルをマウントします。
TeX Live のインストールを開始中……

Loading G:/tlpkg/texlive.tlpdb
Installing TeX Live 2020 from: G: (not verified)
はやて (h20y6m) への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 和田 勇 の投稿

低速デバイス=実デバイスに拘りすぎていた

昨日 sleep で代替できるのが判明したのに阿部さんの改修されたものへの応用するのを 忘れていました。:-(

ローカルにメディアからコピーして阿部さんの改修インストーラに置き換えて検証のため提示したコマンドバッチスクリプトで検証してみました。

改修インストーラの状況

はやてさんの方でも確認されたようですが、 こちらでも改修されたインストーラで問題なく インストールできることを確認しました。

以下のような「低速ドライブを sleep で代替」した スクリプト install.bat を用意しbibunshoTeXsetup.exe におき 「install.bat 1200」で実験しました。

      @echo off
      set local

      :main
      call :date "wait %1 seconds for as copying TeXLive ISO image copy"
      call :sleep %1
      call :date "start bibunshoTeXsetup.exe
      bibunshoTeXsetup.exe
      exit /b

      :sleep
      powershell sleep %1
      exit /b

      :date
      for /f "usebackq delims=" %%i in (`powershell date`) do set  date=%%i
      echo %date% %1
      exit /b

「1200」の根拠は、添付したコマンドバッチスクリプトから、 マウント状況の情報は「900秒」をどうやらttl としているということが 昨日からの実験で確証を得ていました。なので、それを上回る 20 分の 1200 秒を指定して、遅いデバイス環境ををエミュレートしました。

添付したコマンドバッチスクリプトの実行環境など

  • C:\temp に「check.bat」と「texlive2020-r56669.iso」を配置
  • コマンドプロンプトで C:\temp に移動し「check.bat texlive2020-r56669.iso」
  • sleep で情報アクセスを中断させているので2時間近くかかります。

添付したコマンドバッチスクリプトから判明したこと

  • 900秒(15分)以上前回と間隔を開けて devicePath からドライブレターを得ようとすると 必ず1回目は取得できない

    以下は、コマンドバッチスクリプトの表示結果を見やすく編集したものです。 左から「試行回数」「日時」「発行コマンド概要」「ドライブレター」です。

      /// 960 /// ← 16分間 sleep の意
      2022年2月26日 17:41:34 "Mount-DiskImage with get DevicePath C:\temp\texlive2020-r56669.iso"
    
      1 2022年2月26日 17:41:56 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter"       ←取得できていない
      2 2022年2月26日 17:42:12 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" E
      3 2022年2月26日 17:42:23 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" E
      4 2022年2月26日 17:42:36 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" E
    
      2022年2月26日 17:42:52 "DisMount-DiskImage C:\temp\texlive2020-r56669.iso"
    
      /// 900 /// ← 15分間 sleep の意 ... この値が閾値ないし ttl のようだ
      mountISO 900 seconds sleeping ... ZZZ ZZz Zzz zzz .... as copying TeXLive ISO image
    
      2022年2月26日 17:59:55 "Mount-DiskImage with get DevicePath C:\temp\texlive2020-r56669.iso"
    
      1 2022年2月26日 18:00:08 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter"       ←取得できていない
      2 2022年2月26日 18:00:17 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" E
      3 2022年2月26日 18:00:24 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" E
      4 2022年2月26日 18:00:31 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" E
    
      2022年2月26日 18:00:38 "DisMount-DiskImage C:\temp\texlive2020-r56669.iso"
    
      /// 840 /// ← 14分間 sleep の意
      mountISO 840 seconds sleeping ... ZZZ ZZz Zzz zzz .... as copying TeXLive ISO image
    
      2022年2月26日 18:16:04 "Mount-DiskImage with get DevicePath C:\temp\texlive2020-r56669.iso"
    
      1 2022年2月26日 18:16:20 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" H ←取得できてる
      2 2022年2月26日 18:16:31 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" H
      3 2022年2月26日 18:16:39 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" H
      4 2022年2月26日 18:16:47 "(Get-Volume -FilePath \\.\CDROM1).DriveLetter" H
    
      2022年2月26日 18:16:56 "DisMount-DiskImage C:\temp\texlive2020-r56669.iso"
    

    ※ この手の powershell の起動は、通常おおむね 1 秒、2秒ですが...

    ※ 仮想環境プラス 複数数個の CPU/GPU ぶん回しプロセスがホスト側で動いているので一回の powershell 起動に時間を要しています。

  • 参考

    dsevicePath を抽出するのではなく以下のようにするとどんな間隔でもドライブレターを取得できます

      (Mount-DiskImage C:\temp\texlive2020-r56669.iso > $null)
      (Get-DiskImage C:\temp\texlive2020-r56669.iso | Get-Volume).DriveLetter
    
  • 呟き

    • Licence の関係からだと思うのですが ISO イメージではなくマウントした状態で美文書メディアを作成できていれば、以下のような簡単な バッチスクリプトになっただろうな

      cd CTAN  仮のディレクトリ
      install-tl-windows.bat
      NKF や texworks のインストール
      
和田 勇 への返信

Re: Windows 11 で『[改訂第8版]LaTeX2e美文書作成入門』のインストールができない

- 阿部 紀行 の投稿
動いていそうということで安心しました.こちらで書籍担当者と相談させていただこうかと思います.本当にありがとうございました.