弊社の法人の確定申告の季節がやってきました。
通常の企業の確定申告では、会社の経理・会計担当さんが税理士事務所へ依頼するとか、確定申告機能を有する会計ソフトを利用するなどで対応するため、わざわざ
「確定申告する環境づくり」 を意識することはないでしょう。
一人会社にとってはこれが大きな関心事で、決算日の後から決算書類の作成〜法人税などの申告・納税まできちんと自分の手で進める必要があります。
最終的にその年の法人税などを納めるわけですが、有料の確定申告代行サービスを利用しないのであれば、納税手段は以下の2つに絞られます。

  1. 直接最寄りの税務署へ書類を提出する
  2. 『e-Taxソフト(ダウンロード版)』を使って電子申告

近年、コロナ禍もあり、1の選択肢は少し気を遣う傾向もあり、2の方法を使う方も多いと思います。
ただし、会社で「Windows」を一切使わないような場合、『e-Taxソフト(ダウンロード版)』の利用はかなりハードルが高いものになります。

合同会社タコスキングダム|蛸壺の技術ブログ
https://www.e-tax.nta.go.jp/download/e-taxSoftDownLoad.htm

これはMacユーザーにも当てはまるのですが、わざわざ年1回のイベントのためだけにWindowsパソコンを購入を検討するのはあまりに経費がもったいないことです。
ということで、今回の話は、「Debian(Linux)でe-Taxソフト(ダウンロード版)」を動かすまでの手順をまとめています。
なお、Windowsへe-Taxソフトをインストールする手順は別の記事にまとめているので、必要であればそちらを参考にしてください。

参考|e-Tax(イータックス)ソフト(ダウンロード型)の初回設定手順
合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】シェルスクリプトをこれから学びたい人のためのオススメ書籍&教材特集

Linuxでのe-Taxの利用は「KVM/QEMU」を使おう



このブログでも度々紹介していますが、LinuxでWindowsアプリを動かす定番となっているのが
「Wine」 です。
結論からいうと、Wineでもe-Taxソフトの本体は動くのですが、e-Taxソフトの仕様である「ライブラリーを追加でインストールする」機能が失敗するため、現状は使い物になりません。
そのため、ハードウェアリソースをかなり割くことになるのであまり使う気はしなかったのですが、Linux上で仮想化したWindowsを動かして、そちらでe-Taxソフトが動くかどうか試します。

KVM(Kernel-based Virtual Machine)



OS仮想化のソフトは、Linuxのみならず使える
VirtualBox が有名どころですが、Linuxにおいては KVM/QEMU のほうがより使いやすいと思います。
KVMとは、主にLinux環境で使われるオープンソースの仮想化技術です。 商用製品(VMware ESXi, Hyper-Vなど)とも十分に競合できる性能・機能を持っています。

KVM単体でみると、以下のような特徴があります。

  • KVM : Linuxカーネルに組み込まれた仮想化拡張機能を利用するカーネルモジュール。Intel VT-xやAMD-V等のCPUによるハードウェア仮想化支援機能を活用している
  • 特徴
    • Linuxカーネル自体がタイプ1ハイパーバイザーとして機能するため、高速な仮想化が可能
    • 仮想CPUの提供や高速なメモリ管理
    • ライブマイグレーションや柔軟なネットワーク仮想化等、エンタープライズ用途でも十分な機能・性能
  • メリット
    • 高速動作(仮想CPUやメモリ管理をカーネルが直接担当)
    • 無料、オープンソース
    • セキュリティ機能との連携
    • 拡張性・スケーラビリティが高い

また、セットとして利用するQEMU(Quick Emulator)に関しては、


  • QEMU : 汎用的なオープンソースのマシンエミュレータです。仮想マシン内の仮想ハードウェア(ネットワーク、ディスク、グラフィック等)のエミュレーションを担当します。
  • 特徴
    • 単体でも仮想化は可能だが、ソフトウェアエミュレーションのみの場合は動作が遅い
    • KVMと組み合わせることでCPU・メモリ部分はハードウェア仮想化となり高速化
    • x86以外にもARMやPowerPCなど多様なアーキテクチャも仮想化出来る
  • 主な用途
    • ゲストOSの種類やアーキテクチャを問わず柔軟に仮想化
    • KVMが非対応の環境でもエミュレーションによる仮想化実現が可能

ということで、これら2つを組み合わせる(KVM/QEMU)ことにより、

  • QEMUが仮想マシン全体のエミュレーション・管理を行い、CPUとメモリ操作はKVMに処理を委譲する形で高速化
  • 仮想CPU(KVM)、メモリや仮想I/O(QEMU)と役割分担することで、効率良く動作する仮想化基盤が構築可能
  • 管理や自動化にはlibvirtやvirt-manager等のツールが併用可能


ということで、KVM/QEMUは、高速かつ安全な仮想化基盤としてLinuxサーバ・クラウドの標準技術で、オープンソースでコストもかからず、様々なOSの仮想化やスナップショット、ライブマイグレーションなどの高度な機能も備えています。
表でまとめておくと、

KVM QEMU
役割 CPU・メモリ仮想化(カーネル統合) 仮想マシン管理・ハードウェアエミュレーション
パフォーマンス 高速(ハードウェア仮想化支援) エミュレーションは遅いがKVM連携で高速化
対応OS 主にLinux 多様なアーキテクチャに対応

というようになります。


合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】シェルスクリプトをこれから学びたい人のためのオススメ書籍&教材特集

KVM/QEMUでWindows11を動かす

KVMマネージャーのインストール



DebianでKVM/QEMUを最小限で動かすためには以下をパッケージインストールします。

            $ sudo apt -y install virt-manager qemu-system 

        

ちなみに、Windows11を動かす場合に、以下のパッケージも必要となります。

            $ sudo apt -y install ovmf swtpm swtpm-tools

        

では早速KVMマネージャーを起動してみましょう。

            $ sudo virt-manager

        
合同会社タコスキングダム|蛸壺の技術ブログ


問題なく起動できていたらOKです。
次にWindows11をKVM上にデプロイさせてみます。
Windows11のイメージファイルは評価用の無償版がMicrosoftから公開されているものを利用します。
なお、無償版ですので、利用の際にはMSアカウントが事前登録が必要です。

Windows11イメージから仮想マシンを作成



以下のリンク先からWindows11のISOイメージファイルを探してダウンロードしましょう。

Windows 11 のダウンロード
合同会社タコスキングダム|蛸壺の技術ブログ



保存先としてはPC内の任意の場所で良いのですが、外付けのUBBドライブだったり、ブートローダーが自動では認識しないようなところは避けましょう。
また、保存したISOファイルから仮想マシンが作成される仕様になっているので、一旦仮想マシンを作成してしまうと、その場所から参照中のISOファイルを削除するとエラーになります。 そのため、tmpやcache、downloadといった一時ファイル置き場には置かないほうが良いでしょう。
ではまずvirt-managerを起動して、KVMマネージャーから新しい仮想マシンをクリックします。

            sudo virt-manager

        
ローカルのインストールメディア を選択して次に進みます。

合同会社タコスキングダム|蛸壺の技術ブログ
参照 を押して保存したISOファイルを選択します。

合同会社タコスキングダム|蛸壺の技術ブログ
合同会社タコスキングダム|蛸壺の技術ブログ


ここでの注意は外付けのリムーバブルディスクにISOファイルを保存してそれを参照してしまうと、色々と問題が起こってしまうことがあります。

合同会社タコスキングダム|蛸壺の技術ブログ


ちゃんとKVMがブート可能な場所を選択することが重要です。
次に仮想マシンに割り振るリソースの設定ですが、e-Tax自体は処理にさほど負荷がないので、軽めに設定しておきます。 例えば、以下のような感じです。


  • メモリサイズ : 4096MB
  • vCPU : 2
  • ディスクサイズ : 20GB
  • インストール前に設定をカスタマイズする : チェックする

さらにカスタマイズ設定で、
[概要] > [Firmware] にて、 UEFI x86_64:/usr/share/OVMF/OVMF_CODE_4M.ms.fd を選択しておきます。

合同会社タコスキングダム|蛸壺の技術ブログ


設定を反映させるために
適用 を押し、インストールを開始します。
しばらく待つと仮想マシンが作成されます。

合同会社タコスキングダム|蛸壺の技術ブログ

VMの起動〜Windowsのインストール



先程作成されたVMを起動してみましょう。
無事、Windowsイメージが読み込まれた場合、Windowsのセットアップ画面に移行するはずです。

合同会社タコスキングダム|蛸壺の技術ブログ


もしかしたら、以下のメッセージで、VMの起動が失敗するかもしれません。

            Network ‘default’ is not active

        

このエラーが出ると、一旦VMマネージャーを閉じて、以下のコマンドを叩きます。

            udo virsh net-autostart default

        
参考|QEMU (“Network ‘default’ is not active”) & (“Booting from Hard Disk…”)

ともあれWindows11のインストールを進めていきます。

合同会社タコスキングダム|蛸壺の技術ブログ


既にWindowsプロダクトキーをお持ちの場合にはここでプロダクトキーを入力できますが、そうでない無償版のみを利用したい方は、ご自身のMSアカウント情報を入力することになります。

合同会社タコスキングダム|蛸壺の技術ブログ


すべてを入力し終えると、ようやくインストールが始まります。

合同会社タコスキングダム|蛸壺の技術ブログ


遅いホストマシーンだと、インストール完了まで
3時間弱 もかかってしまいます。
仮想化は、ここらへんのセットアップでかなり時間が取られるのが難点ですが、気長に待つしか方法がありません...
ようやくインストールが終わると、初回設定の画面が現れます。

合同会社タコスキングダム|蛸壺の技術ブログ


さて、著者的にWindowsも久しぶりなので、パスワードではなく
PINコード なるものを設定するようになっているようです。

合同会社タコスキングダム|蛸壺の技術ブログ


このPINコードは英字記号含めた
4桁の文字 で決めないといけないようです。 PINコードはログインに必要ですので、忘れずに控えておきましょう。
そして...ようやくWindow11がVMで立ちあがったのでした。

合同会社タコスキングダム|蛸壺の技術ブログ

合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】シェルスクリプトをこれから学びたい人のためのオススメ書籍&教材特集

Windows11(仮想マシン)でe-Taxを動かす



ようやく本題で、e-Taxソフト(ダウンロード版)の動作確認を行います。
インストールの詳しい手順は以下の記事に委ねます。

参考|e-Tax(イータックス)ソフト(ダウンロード型)の初回設定手順

インストーラーも正常です。

合同会社タコスキングダム|蛸壺の技術ブログ


e-Taxソフトのトップ画面も問題なく開けます。

合同会社タコスキングダム|蛸壺の技術ブログ


もちろん、ライブラリーの追加で、各種書類フォーマットが読み込めることも確認できました。

合同会社タコスキングダム|蛸壺の技術ブログ


色々と動作を見た結果、十分動いてるように思います。 (※カードリーダーの動作は未確認です)


合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】シェルスクリプトをこれから学びたい人のためのオススメ書籍&教材特集

まとめ



以上、今回はLinuxでどうしてもe-Taxソフト(ダウンロード版)が使いたいという一人会社で奮闘中の社長さんのために書かせていただいた内容になっています。
まとめると、

  • Linuxでも仮想化を使えばWindows11は動作可能
  • Windows11の評価版でもe-Taxソフト程度なら十分使える
  • とはいえトラブル時に多少はLinuxのコマンド操作やデバイスなどの知識が必要

ということが分かりました。

記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。

合同会社タコスキングダム|蛸壺の技術ブログ【効果的学習法レポート】シェルスクリプトをこれから学びたい人のためのオススメ書籍&教材特集