Lenovo X250 Ubuntu(Desktop 20.04.2.0 LTS)BIOSアップデート

こんにちは。からあげです。

ある日、BIOSに脆弱性があることに気がつく

先日、旧式のノートパソコンLenovo X250にLinux定番ディストリビューションのUbuntuを入れたところ。

今はその軽快に動作するサクサクPCで快適なモバイルライフを送っている。そんななか、X250にインストールされているBIOSに脆弱性があるのを知った。いくらセキュリティの高いLinuxでも、おおもとのBIOSに欠陥があっては非常に危険だ。

 

BIOSの脆弱性(2016年7月28日更新)

System Management Mode(SMM)BIOSの脆弱性

潜在的影響:攻撃者がローカル管理者権限を持ち、SMMでコードを実行する可能性がある
重要度:高

管理者権限が奪われると、思いのままにPCを操られてしまう。直ちにアップデートしなければならない。

 

インストールされているBIOSのバージョン

PC起動時、Lenovoのロゴマークが表示されているときに、何かキーを押すとBIOSの設定画面が立ち上がる。この設定画面でBIOSのバージョンを確認できる。

または端末からのコマンド入力「sudo dmidecode -t bios」。

UEFI BIOS Version  N10ET48W(1.27)
  〃  Date    2017-09-12

Lenovo公式サイトではX250は「影響あり」となっているものの、バージョン「N10ET44W 」の時点ですでに修正済みとなっている。
それよりも新しいN10ET48W(1.27)は修正済みのバージョンで問題ないと思われる。だが最新版があるのに、バージョンアップしないのも勿体無い気がする。

BIOSのアップデートはリスクの高い作業。必要なければ極力しないほうがよい。

メーカーも警告しているが、やるなと言われると余計にやりたくなる私。リスク承知でBIOSのアップデートをやることにした。ああ、なんて面倒くさい質なんだ、おっさんは!

警告: BIOSのアップデートは慎重に行ってください。ご利用のPCのフリーズやクラッシュ、また処理中に電源が落ちると、BIOS、またはUEFIのファームウェアが破損することがあります。これはコンピューターを起動できない状態にします。

 

BIOSのアップデート作業

アップデート作業の流れ

起動CD用BIOSアップデートユーティリティの入手
   ↓
起動イメージの作成
   ↓
USBメモリに書き込み
   ↓
USBメモリから立ち上げてBIOSをアップデートする

本記事で紹介する方法はUbuntu最新版(20.04.2.0 LTS)を用いた方法。バージョンが古いと多少操作が異なるかもしれないので十分注意して作業していただきたい。

 

起動CD用BIOSアップデートユーティリティの入手

BIOSのアップデートユーティリティは残念ながらWindows版のみ。
Windowsに一旦戻してからBIOSをアップデートし、再度Ubuntuをインストールし直すのは効率が悪すぎる。
そこで公式サイトからダウンロードしたWindows版をgeteltoritoコマンドで変換してUSBメモリーに取り込み、それを使ってBIOSのアップデートを行う。
 
こちらの方がはるかに効率的。短時間で行うことができる。人生は有限だ。
注意点は拡張子.isoの起動CD用のイメージファイルをダウンロードすること。X250の場合、2021年3月時点で「n10ur27j.iso」が最新版となっている。
 
BIOS アップデート (ユーティリティ および 起動CD用) (Windows 10 64bit/ 8.1 64bit/ 7 32bit, 64bit) - ThinkPad X250 - Lenovo Support US
BIOS アップデート (ユーティリティ および 起動CD&#299...
 

起動イメージの作成

Ubuntu最新版(20.04.2.0 LTS)には、すでにgenisoimageがインストール済み。
「geteltorito -o bios.img n10ur27j.iso」とコマンド入力して、「bios.img 」というファイル名で変換する。

 

USBメモリに書き込み

変換したファイルをUSBメモリに書き込むには、まずデバイス名を知る必要あり。Linuxは融通が全く効かないので、きちんと指定してやる必要あり。
USBポートに挿し込み認識されたあとで、「dmesg | tail」とコマンド入力する。

すると上のように表示される。
私の場合、USBメモリのデバイス名は「sdc」。

「sudo dd if=bios.img of=/dev/sdc bs=512K」とコマンド入力する。

USBメモリに起動イメージファイルが書き込まれると、このように表示される。
 
 

USBメモリから立ち上げてBIOSをアップデートする

BIOS設定の変更

PCを再起動させて、Lenovoのロゴマークが表示されているときに、F1キーを連打する。
するとBIOS設定画面が立ち上がる。

SecurityタブーSevure Boot

Enabled→Disabledに変更する。

StartupタブーUEFI/Legacy Boot 

UEFT Only→Bothに変更する。すると、自動的にUEFI/Legacy Boot Priority:Legacy Firstとなる。

F10キーを押して設定変更を保存したのち再起動させる。

再起動の途中で、見慣れぬThinkPadのロゴマークが表示される。
この間に何かキーを押すとBoot Menuが立ち上がる。

USBメモリのデバイスを選択する。
Enterキーを押すと再起動し、USBメモリを読み込む。

 

BIOS更新のメインメニュー

初めて見るメインメニュー画面

数字キーの「2」を押して更新する。

すると警告画面が連続して表示される。
良ければYキーを押して進める。

警告!

このユーティリティーはシステム・プログラム(BIOS)を書き換えます。
オプションまたはこのユーティリティーのマニュアルをよくお読みになり、指示があった場合のみ先に進んでください。

インフォメーション

ACアダプターがシステム(PC)とコンセントに確実に接続されていることを確認してください。

重要!

更新中は電源を切らないでください。
更新中に切ると、システムが壊れる場合があります。

警告!
Microsoft(R)BitLocker(TM)
ドライブ暗号化が有効になっている状態でBIOSを更新すると、暗号化されたドライブからの起動ができなくなります。
BitLocker機能を使用されている場合はBIOS更新前にBitLockerを一時的に無効にしてください。

 
BIOS更新中の画面。所要時間は3分ほど。
更新完了後に再起動される。
 
あとは起動後にUSBメモリを抜いて、BIOS設定を元通りに戻すだけ。
お疲れさまでした!
 
 

BIOSアップデートまとめ

UEFI BIOS Version  N10ET61W(1.40)
  〃  Date    2020-03-17

BIOSのバージョンを確認してみると、無事にアップデートされていた。
Ubuntuの動作はスムーズ。エラーが出ることはなし。

今回、初めてのBIOSのアップデートは成功した。
失敗するとプログラム(BIOS)が壊れて起動できなくなるので十分注意して作業して欲しい。

失敗を恐れずになんでもやると、自然と楽しくなってくるから不思議。

参考サイト
ThinkPadのBIOSアップデート用起動ディスクをLinuxで作成する | blog.monophile.net
概要 ノートパソコンはBIOSの更新をしたい場合、サポートから提供されるアップデート方法はWindowsしか対応していない場合が多い。ThinkPadの場合はCDでブート可能なイメージを配布しているが、ほとんどのThinkPadに光学
LinuxでThinkPad X220のBIOSをアップデートする - paz3のおもいつき
概要 Linuxを使ってThinkPad X220のBIOSをアップデートできたので方法を説明します。 ThinkPadのBIOSをアップデートしようと調べると、Windows用の説明が多く、非Windowsな環境での方法についての説明が少なかったので、参考資料として記録します。 ThinkPad X220 + Arc...