プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

Microsoft 365 Apps for Bussiness の導入

今更ですがこのたび Office 365 を導入することにしました。 ま、普通だと Word と Excel とせいぜい PowerPoint が使えればいいんですが、なぜか最近、 Access での問い合わせが多くて、 Access が使えるサブスクリプションにする必要が出てきました。

いくつかプランを探すと、

Microsoft Office 全製品の比較 | Microsoft Office

この Microsoft 365 Apps for Bussiness が、 Access も利用できて、年間1万円強なのでいい感じです。

で、早速をこれを契約してみようと思ったところ、思いのほかはまったので気になったところを取りとめもないですがメモっておきます。

オンラインサインアップができない?

マイクロソフトのOfficeの紹介ページに行くと、これでもかというほど、あちこちに『今すぐ購入』ボタンがあります。天下のマイクロソフトがそこまで売り気出さなくてもいいのになー、と思いつつ、めったに買うこともないので、ちょっとドキドキしながら、ぽちっとボタンを押しました。

すると、

f:id:junichim:20200518233940p:plain

のように、メールアドレスを入力しろ、と出てきます。

なので、何も考えずに仕事用のメールアドレスを入力すると、

f:id:junichim:20200518234124p:plain

と出てきます。

サインアップできないとはどういうことだ?と思ってしまいました。このメールアドレス(自分のドメインのメアドです)は、マイクロソフトアカウントとしても登録していたし、以前少しだけ Office 365 を試すのに使ったこともあったので、これは何かゴミが残っていて認識されないのかな?さあ、大変だ、と思い込んでしまいました。

別のメールアドレスを試してもよかったのですが、最初に入力したメールアドレスを使いたかったので、さらに焦ります。

結論からすると、この文面『サインアップを完了できません』の意味を盛大に取り違えたようです。入力したメールアドレスに対して組織アカウントが設定されていないので、新規に設定してね、ということだったようです。

下に書いたように、あれこれ調べたら試したり、しばらく試行錯誤しても状況が変わらずで、仕方ないので『新しいアカウントを作成』ボタンを押したら、ユーザー名や電話番号などを入力する画面が出て、さらに初期ドメイン名を入力する画面に移ったので、上記の組織アカウントがないので作らないといけない、ということに気が付きました。

思い込みとは恐ろしいですね。

あとは必要な情報を入力したら、問題なく組織アカウントのセットアップが済み、クレジットカード情報も入力して、購入できました。

(参考)試したこと

あと、上記に気づくまで試したことや調べたことをメモっておきます。

マイクロソフトアカウントのメールアドレスの変更

最初、入力するメールアドレスは、マイクロソフトアカウントのメールアドレスでなければならない、と思い込んでいました。

ですが、うまくいかないので、ネットで調べると、ビジネス用(一応上記のプランも法人向けのプランでした)のプランの場合は、組織アカウントというのをセットアップして、それを使う必要がある、ということに気が付きました。

さらに調べると、同じメールアドレスが、マイクロソフトアカウントと組織アカウントに紐づいているような場合があり、ある時期からそれが禁止されるようになった、ということなどもわかりました。

[Microsoftアカウント]と[職場または学校アカウント]の違い | Developers.IO

Microsoft アカウントと組織アカウントの違い – Productivity for PC

さすがにややこしすぎて、ちょっといやになってきました。

ということで、入力したメールアドレスはむしろマイクロソフトアカウントだとまずいのではないかと思い、下記のリンクなどを参考にして、マイクロソフトアカウントのメールアドレスも独自ドメインのものから、 outlook.jp のものに変更したりもしました。

MSアカウントと組織アカウントのメールアドレス重複について | ブチザッキ

が、状況は変わりませんでした。

ドキュメントは見つけてないし、試してもないので単なる推測ですが、いま振り返ると、Microsoft 365 購入時の最初に入力するメールアドレスは、組織アカウントの初期ドメインのメールアドレスではなく、連絡用のメールアドレス、という扱いになってることから、マイクロソフトアカウントに登録されていても、組織アカウント設定用のメールアドレスには使えたのではないかと思います。

あと、マイクロソフトアカウントと組織アカウントは結構入り乱れているようで、サービスによって、使えるアカウントの種類が違うようです。

例えば、関係ありそうなものとしては、 Visual Studio Express はマイクロソフトアカウントが必要ということのようです。

Microsoftアカウントと組織アカウント - Qiita

過去のサブスクリプションについて

以前、Office 365 (というか SharePoint)を試す際に、上記と同じメールアドレスで試していました。その時、初期ドメインも作っていたようです(全然記憶にないですが、メールが残ってました)。実は今回の組織アカウントの登録時に、以前と同じ初期ドメイン(xxx.onmicrosoft.comのxxxの部分)を指定したのですが、問題なく登録されました。

うまく登録できたので問題ないのですが、何か気持ち悪いので、ちょっと調べてみました。

以前、お試しに使った際は最終的にサブスクリプションをキャンセルしてました。下記の記事によると、キャンセルしてしばらく(90日超?)すると、一切の情報が削除されるようです。

サブスクリプションが終了した場合、データとアクセスはどうなりますか? | Microsoft Docs

どこかの記事で、組織アカウントは Azure Active Directory で管理されているというのを読んだので、上記記事のADから削除、ということから、登録していた初期ドメインに関する記録も削除されたのではないかと推測しています。

ま、なんにせよ使えるようになって一安心です。

Thinkpad T410 の HDD を SSD に換装

先日、下記の記事で書いたように Thinkpad T410 を Windows 7 から 10 にアップグレードしました。

blog.mori-soft.com

そこでも触れたように、 HDD を SSD に換装して、もうちょっと快適に使えるようにしたので、メモっておきます。

SSD の購入

ずいぶんと古い機種なので、果たして今どきの SSD がつながるのか不安でしたが、T410 のSSD 換装を調べてみるといくつも記事が見つかりました。

ThinkPad T410のSSD換装 | 太陽光発電と農業で脱サラ

ちょうど上記記事で使っていることもあるし、以前購入したこともあるので、今回も Crucial の SSD, MX500 250GB にしました。 あ、現在のHDD容量が 250GB なので、同じサイズということですね。

参考までに、後日、Crucial のサイトでも T410 の換装用に紹介されてたのが見つかったので、リンク張っておきます。

メモリRAMおよびSSDアップグレード | lenovo | thinkpad t series | ThinkPad T410 Series | Crucial JA

HDD -> SSD の換装

実際の換装の手順ですが、基本的には、 Crucial のサイトに手順が載ってるので、それに従えば問題ないです。

www.crucial.jp

せっかくなので、やったことをメモしておきます。

HDD のクローン

HDDをSSDにクローンします。Crucial の場合、クローニングソフトが使えるので、それを利用します。

まずは SSD を USB 接続します。USB との接続には少し前に購入していた下記のケーブルを使いました。

電源アダプタに接続後、USBにつなげるとランプが光って認識されたことがわかります。

f:id:junichim:20200518084237j:plain

次に Acronis True Image for Crucial をダウンロードして、インストールします(サイトのURLは前述の Crucial のガイド中にで紹介されているので、最新の情報はそちらを確認してください)。

インストールが終了したら、おもむろに起動します。

f:id:junichim:20200518085029p:plain

『ツール』の『ディスクのクローン作成』を選択します。

ウィザードが起動するので、クローンモードとして今回は『自動』を選択します。

f:id:junichim:20200518085049p:plain

自動モードでも、クローン元とクローン先の容量が異なる場合にはパーティションサイズを調整してくれるそうです。手動を選べば自分でもパーティションサイズなどを調整できるようです。詳しくは、 Acronis True Image for Crucial のユーザーガイドをご覧ください。

ソースディスクを選択します。

f:id:junichim:20200518085152p:plain

1台しかないので選択の余地がないですね。

次に、ターゲットディスクを選択します。

f:id:junichim:20200518085231p:plain

USB 接続した SSD を選びます。

f:id:junichim:20200518085308p:plain

自動の場合はこれで設定完了です。

『実行』ボタンを押すと、クローニングが始まります。T410の USB 3.0 の端子が調子悪くて、 2.0 の端子につないでいたこともあるためか、クローニングが完了するまで大体1時間45分ぐらいかかりました。

画面に『完了しました』の旨のメッセージが表示されれば終了です。

換装

次はいよいよ、 HDDの換装です。T410の場合は、HDDの交換は非常に簡単です。ネット上に、Lenovo 公式の交換手順がありましたので、そちらも載せておきます。

ハードディスク・ドライブ (HDD) スロット・カバー, HDD と HDD ゴム製レールまたは ソリッド・ステートドライブ (SSD) とストレージ・コンバーターの取り付け/取り外し手順 - ThinkPad T410, T410i - JP

クローン終了後、一旦シャットダウンします。次に、バッテリーを外します。その状態で何度か電源ボタンを押しておきます。

筐体を裏返しにして、

f:id:junichim:20200518085859j:plain

f:id:junichim:20200518090015j:plain

右下にあるネジを外してからカバーを取ります。こんな感じになってます。

f:id:junichim:20200518090104j:plain

上記の手順を見ると引っ張って取り出すためのベロのようなものがついてるっぽいのですが、最初これがよくわからずに戸惑いました。よく見ると中央のプラスチックの黒い部分が動くので、手前に引き出してみると、

f:id:junichim:20200518090333j:plain

と、ベロが出てきました。こうなれば、あとは簡単ですね。このベロを引っ張れば、HDDを取り出すことができます。

f:id:junichim:20200518090448j:plain

f:id:junichim:20200518090545j:plain

あとは、左右のゴムのカバー(スライドレール?)を外せば、

f:id:junichim:20200518090651j:plain

f:id:junichim:20200518090707j:plain

HDD を止めているネジが出てくるので、SSDに交換します。

f:id:junichim:20200518090815j:plain

あとは、外した手順を逆にたどって、取り付ければ完了です。

動作確認

全て元通りにしたら、動作確認をしておきます。

電源を入れると何事もなかったかのように Windows 10 が起動します。ログイン後も特に問題なく動作しています。 起動および起動後も動作も若干快適になったように感じます。まあ、面倒なのでベンチマークは取りませんが、これでもう少し使えそうです。

余談

SSD に換装前の HDD のパーティションはこんな感じでした。ディスク0が換装前のHDD、ディスク1がUSB接続した直後のSSDになります。

f:id:junichim:20200518091216p:plain

Windows 10 にアップグレードする際に Thinkpad の Rescue and Recovery もアンインストールしているので、Qのドライブレターを割り当てているパーティションとかも不要になっているはずです。

今回は、パーティション構成もそのままでクローンしましたが、気が向いたらこれらの不要パーティションも消したいと思います(もっとも、空き容量的に困ってるわけではないのでいつになるやらわかりませんが・・・)。

EC2 の Ubuntu で apt upgrade した場合について

こちらの記事『 Let's Encrypt のプロトコルを ACME v1 -> ACME v2 に変更しました』 に書いたように、作業ミスにより、

sudo apt upgrade

を実行してしまいました。

システムに大きな変更はしていないので、特に問題もなくパッケージの更新が終わると思いきや、下記画面が表示されて grub の再設定を求められました。

f:id:junichim:20200514094929p:plain

とりあえずは、 grub はどこにもインストールしないとして進むと次に

f:id:junichim:20200514095032p:plain

と menu.lst が変更されてるのでどうするか?と聞かれます。

とりあえず、『現在インストールされているローカルバージョンを保持』を選択して、処理終了後一度再起動したら、問題なく動作しました。

このままだと気持ち悪いので、何が起きていたのか調べてみました。

問題

今回、この問題が発生した環境は EC2 上の Ubuntu 18.04 になります(ami-0eeb679d57500a06c)。

ネットを調べてみると類似の問題が昔からあるようです。いくつかの記事を見ていると、 apt upgrade --yes としても対話プロンプトが出てくるので自動更新できない、といった感じのものが多いようです。

amazon ec2 - "A new version of /boot/grub/menu.lst is available" when upgrading Ubuntu on an AWS server - Server Fault

(上記の機械翻訳っぽい記事)

AWSサーバーでUbuntuをアップグレードする場合の「/boot/grub/menu.lstの新しいバージョンが利用可能」

linux - How to avoid GRUB errors after running apt-get upgrade - Ubuntu - Server Fault

どうも、EC2 は起動する際に grub-legacy を使っているのに対して、 grub2 の設定とぶつかっているっぽい印象です。

システム更新後ですが、 grub 関連のパッケージはこんな感じに入っているようです。

ubuntu@ip-xxx-xxx-xxx-xxx:~$ dpkg --list | grep -i grub
ii  grub-common                      2.02-2ubuntu8.15                    amd64        GRand Unified Bootloader (common files)
ii  grub-gfxpayload-lists            0.7                                 amd64        GRUB gfxpayload blacklist
ii  grub-legacy-ec2                  1:1                                 all          Handles update-grub for ec2 instances
ii  grub-pc                          2.02-2ubuntu8.15                    amd64        GRand Unified Bootloader, version 2 (PC/BIOS version)
ii  grub-pc-bin                      2.02-2ubuntu8.15                    amd64        GRand Unified Bootloader, version 2 (PC/BIOS binaries)
ii  grub2-common                     2.02-2ubuntu8.15                    amd64        GRand Unified Bootloader (common files for version 2)
ubuntu@ip-xxx-xxx-xxx-xxx:~$ 

最初の画面のプロンプトをよく見ると『 grub-pc の設定』とあったので、その grub-pc パッケージの詳細を表示させるとこんな感じでした。

ubuntu@ip-xxx-xxx-xxx-xxx:~$ apt show grub-pc
Package: grub-pc
Version: 2.02-2ubuntu8.15
Priority: optional
Section: admin
Source: grub2
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: GRUB Maintainers <pkg-grub-devel@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 577 kB
Depends: debconf (>= 0.5) | debconf-2.0, grub-common (= 2.02-2ubuntu8.15), grub2-common (= 2.02-2ubuntu8.15), grub-pc-bin (= 2.02-2ubuntu8.15), ucf, grub-gfxpayload-lists
Conflicts: grub (<< 0.97-54), grub-coreboot, grub-efi-amd64, grub-efi-ia32, grub-ieee1275, grub-legacy, grub-xen
Replaces: grub, grub-common (<= 1.97~beta2-1), grub-coreboot, grub-efi-amd64, grub-efi-ia32, grub-ieee1275, grub-legacy, grub2 (<< 2.02-2ubuntu8.15)
Homepage: http://www.gnu.org/software/grub/
Task: ubuntu-live, kubuntu-live, xubuntu-live, lubuntu-live-share, lubuntu-live, lubuntu-live-qt, lubuntu-live-gtk, ubuntustudio-dvd-live, ubuntukylin-live, ubuntu-mate-live, ubuntu-budgie-live
Supported: 5y
Download-Size: 138 kB
APT-Manual-Installed: no
APT-Sources: http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
Description: GRand Unified Bootloader バージョン 2 (PC/BIOS バージョン)
 GRUB は移植可能で強力なブートローダです。このバージョンの GRUB は前のバー
 ジョンよりもきれいな設計に基づいており、また以下のような新しい特徴を持って います。
 .
  - Scripting in grub.cfg using BASH-like syntax.
  - Support for modern partition maps such as GPT.
  - Modular generation of grub.cfg via update-grub.  Packages providing GRUB
    add-ons can plug in their own script rules and trigger updates by invoking
    update-grub.
  - VESA-based graphical mode with background image support and complete 24-bit
    color set.
  - Support for extended charsets.  Users can write UTF-8 text to their menu
    entries.
 .
 このパッケージには、伝統的な PC/BIOS アーキテクチャで使うために構築された バージョンの GRUB が含まれています。

N: 追加レコードが 1 件あります。表示するには '-a' スイッチを付けてください。
ubuntu@ip-xxx-xxx-xxx-xxx:~$ 

grub2 を扱うためのパッケージのようです。一方 grub-legacy-ec2 パッケージを表示させると

ubuntu@ip-xxx-xxx-xxx-xxx:~$ apt show grub-legacy-ec2
Package: grub-legacy-ec2
Version: 1:1
Priority: extra
Section: admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 82.9 kB
Depends: debconf (>= 1.5.19) | cdebconf, ucf, debconf (>= 0.5) | debconf-2.0
Suggests: grub-legacy-doc
Conflicts: grub
Task: cloud-image, server
Supported: 5y
Download-Size: 19.4 kB
APT-Manual-Installed: no
APT-Sources: http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Description: Handles update-grub for ec2 instances
 EC2 instances that use grub-legacy as a bootloader need a way to keep
 /boot/grub/menu.lst up to date while not conflicting with grub-pc.
 This package provides that.

ubuntu@ip-xxx-xxx-xxx-xxx:~$ 

とあり、EC2 で grub-legacy を使うためのパッケージのようです。

回避策

基本的にサーバーで apt upgrade はやらないのですが、さきほど挙げた記事に回避策が載っているので、念のため実行しておきます。

ubuntu@ip-xxx-xxx-xxx-xxx:~$ sudo apt-get update
ubuntu@ip-xxx-xxx-xxx-xxx:~$ sudo mv /boot/grub/menu.lst /boot/grub/menu.lst.org
ubuntu@ip-xxx-xxx-xxx-xxx:~$ sudo update-grub-legacy-ec2 -y
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... 

Could not find /boot/grub/menu.lst file. 
Generating /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-5.3.0-1017-aws
Found kernel: /boot/vmlinuz-4.15.0-1052-aws
Found kernel: /boot/vmlinuz-4.15.0-1044-aws
Updating /boot/grub/menu.lst ... done

ubuntu@ip-xxx-xxx-xxx-xxx:~$ 
ubuntu@ip-xxx-xxx-xxx-xxx:~$ sudo apt-get dist-upgrade
ubuntu@ip-xxx-xxx-xxx-xxx:~$ sudo apt autoremove --purge
ubuntu@ip-xxx-xxx-xxx-xxx:~$ sudo reboot

これで問題なく更新できるようになるようです。