「Linux から BIOS を書き換える」の版間の差分
(→FreeDOS: 英語版から一部転載) |
|||
90行目: | 90行目: | ||
他の方法も存在します: [http://chtaube.eu/computers/freedos/bootable-usb/ FreeDOS prebuilt bootable USB flash drive image by Christian Taube] |
他の方法も存在します: [http://chtaube.eu/computers/freedos/bootable-usb/ FreeDOS prebuilt bootable USB flash drive image by Christian Taube] |
||
+ | === LinuxでFreeDOS提供のディスクイメージ+USBメモリを使う === |
||
− | === Using a FreeDOS-provided Disk Image + USB stick on Linux === |
||
− | + | 執筆時点(2017-07-11)では、{{AUR|unetbootin}} は FreeDOS の1.0より新しいバージョンには対応していません(現在のバージョンは1.2です)。Inspiron 17-3737 を A09 BIOS にアップグレードするには、以下の手順でうまくいきました。(Dell はこれを提供しています [https://www.dell.com/support/article/ca/en/cabsdt1/SLN171755/updating-the-dell-bios-in-linux-and-ubuntu-environments?lang=EN#Creating%20a%20USB%20Bootable%20Storage%20Device こちらのサイト]) |
|
+ | 始める前にいくつか注意点があります。 |
||
− | Some notes before starting: |
||
+ | * 現在の BIOS のバージョンは {{pkg|dmidecode}} で確認することができます。すでに最新版になっている可能性もあります。 |
||
− | * You can check your current BIOS version with {{pkg|dmidecode}}. You might already be at the latest version. |
||
+ | * ハードウェアベンダがこの方法がうまくいくことを確認していること(BIOS アップデート ''.exe'' を実行するために FreeDOS を使用すること。) |
||
− | * Ensure that your hardware vendor has verified this method works (use of FreeDOS to run BIOS update ''.exe'') |
||
+ | * ノートパソコンのユーザーは AC 電源なしでこれを試みてはいけない |
||
− | * Laptop users should not attempt this without AC power |
||
+ | * 危険ですので、この手順を実行する場合は、すべてのリスクを負うことを理解して下さい。 |
||
− | * This is dangerous, and you assume all risk for following this procedure. |
||
+ | 手順 |
||
− | Procedure: |
||
− | # |
+ | # [https://www.freedos.org/download/ FreeDOS ダウンロードページ] から最新の USB インストーラを入手する。 |
+ | #* 著者注:''full'' バージョンを使用したのは、より多くのドライバなどが含まれているのではないかという疑惑からです(純粋な推測です。) |
||
− | #* author note: used the "Full" version on suspicion that it might include more drivers, etc (pure speculation) |
||
+ | # アーカイブを展開すると、''.img'' ファイルができます。 |
||
− | # Extract the archive, you get a ''.img'' file |
||
− | # |
+ | # {{ic|/dev/sdX}} のどれが自分の USB メモリか判断する ({{ic|fdisk -l}} を使う) |
+ | # イメージをブロックデバイスに直接書き込む。 |
||
− | # Write the image directly to the block device: |
||
− | #* {{ic|1=dd if=FD12FULL.img of=/dev/sdX status=progress}} |
+ | #* {{ic|1=dd if=FD12FULL.img of=/dev/sdX status=progress}} |
+ | #ブロックデバイスに直接イメージを書き込む。(ここで {{ic|X}} はブロックデバイスとしての USB メモリを表す文字です。パーティションにイメージを書き込まないでください) |
||
− | # Double-check that the image copying worked: |
||
+ | # イメージのコピーがうまくいったかどうかダブルチェックしてください。 |
||
− | #* {{ic|fdisk -l}} (you should see a single partition on a DOS disk with the bootable ("boot") flag set) |
||
+ | #* {{ic|fdisk -l}} です。(起動可能 ("boot") フラグが設定されたDOSディスクの1つのパーティションが表示されるはずです) |
||
− | # Mount the partition, and copy over the ''.exe'' used to update your firmware |
||
+ | # パーティションをマウントし、ファームウェアのアップデートに使用した ''.exe'' をコピーしてください。 |
||
− | #* Stay on the safe side and limit the filename to 8 characters (without extension), upper case |
||
+ | #* ファイル名は8文字以内(拡張子なし)、大文字でお願いします。 |
||
− | #* Ensure that you verified any checksums provided by your hardware vendor |
||
+ | #* ハードウェアベンダから提供されたチェックサムを検証していることを確認します。 |
||
− | # Unmount and reboot. Do whatever is needed to boot from the USB drive |
||
+ | # アンマウントしてリブート USB ドライブから起動するために必要なことは何でもしてください。 |
||
+ | これで FreeDOS のライブインストール環境が整いました。 |
||
− | Now you will find yourself in the FreeDOS live installation environment. |
||
+ | # 言語を選択する |
||
− | # Select your language |
||
+ | # FreeDOS のインストールを促すプロンプトが表示されます。 |
||
− | # You will be prompted to install FreeDOS |
||
+ | #* "いいえ - DOS に戻る" を選択します。 |
||
− | #* Select "No - Return to DOS" |
||
− | # |
+ | # プロンプトが表示されるはずです ({{ic|C:\>}}) |
+ | # ファームウェアアップグレードツールが存在することを確認します。 |
||
− | # Run {{ic|dir /w}} and verify that your firmware upgrade tool is present |
||
+ | # 実行ファイルを実行する |
||
− | # Run the executable |
||
+ | #* 著者注:Dell のツールの場合、マシンはスプラッシュスクリーンを表示した後、再起動しました。再起動後、自動的にファームウェアのアップグレードが開始され、ファンをフル回転させた状態で2分ほど実行されました) |
||
− | #* author note: in the case of the Dell tool, the machine displayed a splash screen and then rebooted. Upon reboot, it started the firmware upgrade automatically, and ran for about 2 minutes with the fan at full speed) |
||
+ | # ベンダー固有のプロセスが完了したら、オプションで BIOS セットアップ画面や、Linux に戻ったときに {{Pkg|dmidecode}} を実行して確認することができます。 |
||
− | # Once the process specific to your vendor completes, optionally verify through the BIOS setup screen, as well as by running {{Pkg|dmidecode}} when you are back in Linux |
||
=== Using a FreeDOS-provided Disk Image + USB stick with Windows === |
=== Using a FreeDOS-provided Disk Image + USB stick with Windows === |
2022年3月17日 (木) 04:32時点における版
この記事では Linux でシステム BIOS を書き換える方法についての情報を提供します。ほとんどのメーカーは Windows でしか実行できない Windows の実行ファイルか BIOS 実行ファイルしか提供していません。しかしながら、Linux でシステム BIOS を更新することを可能にするユーティリティが少数ながら存在します。
はじめに
以下に説明するツールに加え、多くの ノートパソコン ページには、特定のモデルに対する個別の指示が含まれています。その説明には、時には特注のユーティリティが含まれ、ある特定の機種のアップグレード処理に特化している場合もあります。特定の機種のページがない場合、類似の機種のページを見てみると、対象機種に合わせた手順が可能な場合があります。例えば、HP ENVY m4-1015dx のページには、様々な HP モデルで動作する手順が記載されています。
fwupd
fwupd はソフトウェアによってローカルマシンのファームウェアをアップデートできるようにするシンプルなデーモンです。デスクトップ用に開発されていますが、スマートフォンやタブレット、ヘッドレスサーバーなどでも利用できます。GNOME Software などの GUI のソフトウェアマネージャを使ってアップデートを表示・適用したり、コマンドラインツールやシステムの D-Bus インターフェイスを直接使うことができます。
Dell や Logitech などのメーカーによって Linux にファームウェアのアップデートを配布するために使われています。
fwupd は UEFI モードでの BIOS アップデートだけサポートしています。
インストールや使用方法について詳しくは fwupd を見てください。
BiosDisk
BiosDisk は Linux におけるシステム BIOS の書き換えプロセスを簡単にします。
インストール
biosdisk-gitAUR パッケージをインストールしてください。
使用方法
biosdisk ユーティリティを使って BIOS フラッシュイメージを作成するには、まずメーカーのウェブサイトからあなたのシステム用の最新の生の BIOS イメージをダウンロードします。ただし、入手するのは BIOS 実行ファイルであって Windows の実行ファイルでないのでそこを確認してください。それからはふたつの選択肢があります: ISO を作成するか、あるいはブートローダー用のイメージをインストールするかです。
- mkimage はユーザーのハードドライブ上に ISO イメージを作成します。使用方法は以下の通り:
# biosdisk mkimage [-o option] [-i destination] /path/to/.exe
- install は biosdisk イメージを作成して、イメージファイルを
/boot
にコピー、そしてそのイメージのエントリと共にブートローダーを更新します。したがってユーザーがするべきことはシステムを起動し BIOS を書き換えるイメージを選択するだけです。ハードドライブから直接 biosdisk イメージがロードされて BIOS が書き換えられます。
# biosdisk install [-o option] [--name=] /path/to/.exe
Flashrom
Flashrom はフラッシュチップを確認・読込・書込・検証・消去するためのユーティリティです。メインボードやネットワーク・グラフィック・ストレージコントローラーカード、そして様々なプログラマーデバイスにおける BIOS/EFI/coreboot/ファームウェア/optionROM イメージを書き換えるために作られました。
インストール
flashrom か flashrom-gitAUR パッケージをインストールしてください。
使用方法
ウェブサイトであなたのマザーボードや (内部の) チップセットが flashrom によってサポートされているか確認してください: Supported Hardware。次のコマンドを実行してハードウェアがサポートされているか確認することもできます:
# flashrom --programmer internal
上のコマンドはあなたのマザーボードとチップセットを表示します。それから次のコマンドを実行することでサポートされているか確認できます:
# flashrom --programmer internal -L | grep CHIPNAMEfrompreviouscommand
新しいメインボードを使っている場合、複数のロムチップが表示されることがあります。上のコマンドで表示されたところからチップの名前を選択してください。-c
オプションを使うことでコマンドによってどの ROM を書き換えるのか選択できます:
# flashrom --programmer internal -c "CHIPNAME" -r backup_CHIPNAME.bin
ROM チップ上に新しい BIOS イメージ (プロプライエタリのイメージまたは Coreboot) を書き込んで検証する:
# flashrom --programmer internal internal -c "CHIPNAME" -w newbios.bin
メインボード上の他のフラッシュチップを書き換えたい場合は、次のコマンドで全てのオプションを知ることができます:
# flashrom
FreeDOS
FreeDOS はフリーの DOS 互換のオペレーティングシステムで、プロプライエタリの DOS を必要なくさせるという挑戦をしています。必要なのは FreeDOS カーネルが載ったブータブルフロッピーディスクイメージだけです。
Unetbootin
ブータブルな FreeDOS USB スティックを作成する一番簡単な方法は unetbootinAUR を使うことです。
USB メモリを FAT16 でフォーマットして "boot" フラグを有効にします (gparted や partitionmanager などで GUI を使って行うことができます)。それから、フラッシュドライブをマウントした後、ディストリビューション FreeDOS とマウントしたスティックを選択します。アプリは自動的にイメージをダウンロードしてドライブにコピーします。最後に、書き換えたいもの全てをコピーすることができます (BIOS, ファームウェアなど)。
dosemu
公式 FreeDOS イメージの問題点は、ファームウェアや BIOS のアップデートファイル、プログラムを保持するための余分なスペースがないことです。Linux で任意のサイズの DOS、ブータブル FAT ドライブを作る最も簡単な方法は mount a FAT drive under dosemu and then make it bootable with the FreeDOS sys command です。
別の方法として、Gentoo:BIOS Update#FreeDOS environment を参照してください。
ビルド済みのイメージ
他の方法も存在します: FreeDOS prebuilt bootable USB flash drive image by Christian Taube
LinuxでFreeDOS提供のディスクイメージ+USBメモリを使う
執筆時点(2017-07-11)では、unetbootinAUR は FreeDOS の1.0より新しいバージョンには対応していません(現在のバージョンは1.2です)。Inspiron 17-3737 を A09 BIOS にアップグレードするには、以下の手順でうまくいきました。(Dell はこれを提供しています こちらのサイト)
始める前にいくつか注意点があります。
- 現在の BIOS のバージョンは dmidecode で確認することができます。すでに最新版になっている可能性もあります。
- ハードウェアベンダがこの方法がうまくいくことを確認していること(BIOS アップデート .exe を実行するために FreeDOS を使用すること。)
- ノートパソコンのユーザーは AC 電源なしでこれを試みてはいけない
- 危険ですので、この手順を実行する場合は、すべてのリスクを負うことを理解して下さい。
手順
- FreeDOS ダウンロードページ から最新の USB インストーラを入手する。
- 著者注:full バージョンを使用したのは、より多くのドライバなどが含まれているのではないかという疑惑からです(純粋な推測です。)
- アーカイブを展開すると、.img ファイルができます。
/dev/sdX
のどれが自分の USB メモリか判断する (fdisk -l
を使う)- イメージをブロックデバイスに直接書き込む。
dd if=FD12FULL.img of=/dev/sdX status=progress
- ブロックデバイスに直接イメージを書き込む。(ここで
X
はブロックデバイスとしての USB メモリを表す文字です。パーティションにイメージを書き込まないでください) - イメージのコピーがうまくいったかどうかダブルチェックしてください。
fdisk -l
です。(起動可能 ("boot") フラグが設定されたDOSディスクの1つのパーティションが表示されるはずです)
- パーティションをマウントし、ファームウェアのアップデートに使用した .exe をコピーしてください。
- ファイル名は8文字以内(拡張子なし)、大文字でお願いします。
- ハードウェアベンダから提供されたチェックサムを検証していることを確認します。
- アンマウントしてリブート USB ドライブから起動するために必要なことは何でもしてください。
これで FreeDOS のライブインストール環境が整いました。
- 言語を選択する
- FreeDOS のインストールを促すプロンプトが表示されます。
- "いいえ - DOS に戻る" を選択します。
- プロンプトが表示されるはずです (
C:\>
) - ファームウェアアップグレードツールが存在することを確認します。
- 実行ファイルを実行する
- 著者注:Dell のツールの場合、マシンはスプラッシュスクリーンを表示した後、再起動しました。再起動後、自動的にファームウェアのアップグレードが開始され、ファンをフル回転させた状態で2分ほど実行されました)
- ベンダー固有のプロセスが完了したら、オプションで BIOS セットアップ画面や、Linux に戻ったときに dmidecode を実行して確認することができます。
Using a FreeDOS-provided Disk Image + USB stick with Windows
The author for this procedure encountered several issues related to mounting the FAT partition type of the USB using the previous method on Linux with dd. This procedure seeks to outline a method to flash the BIOS with FreeDOS, a USB stick and Ruckus on Windows 7/8/8.1/10. This procedure was performed on 4 JULY 2019 on a Dell Inspiron 5547 Laptop to upgrade from BIOS A10 to A12.
Prerequisites:
- Download and install Rufus for Windows. This can be either the full installation or the portable version.
- Download the latest Full USB installer for FreeDOS (v1.2 as of the time of writing).
- Download the latest BIOS update from the vendors' website
- It is assumed that dmidecode is installed on the system
Procedure:
- Extract the contents of the FD12FULL.zip archive, noting the .img file
- Insert a flash drive and flash the FD12FULL.img file using Rufus, leaving all default options
- Detailed use of Rufus is not covered in this guide. Refer to Rufus' manual or documentation for detailed usage
- Once flashed with Rufus, rename the BIOS file with 8 uppercase characters (not including the extension) and copy it over to the flash drive
- Eject the flash drive and plug it into the laptop.
- Perform whatever steps are necessary to boot from the USB with LEGACY BOOT
- Author note: For my Dell Laptop, I press F12 for boot options and select 'USB Storage Device' under 'Legacy Options'. I have explicitly enabled legacy boot from within my BIOS, but this option may not be present if the system is only configured to boot with UEFI
- You will be presented with the FreeDOS Installation environment
- Select preferred language
- Select 'No - Return to DOS' on the next screen
- Type dir to view the contents of the USB flash drive
- To execute the BIOS upgrade file, simply type the filename and press enter
- Note: My upgrade took <2 minutes with the fans at full speed. The system reboot 3 times total.
- Once the upgrade completes and the system boots back into the OS, issue
dmidecode | grep -E 'BIOS|Version'
as root and validate the BIOS version has been upgraded
イメージがフロッピーに収めるには大きすぎる
フラッシュイメージがフロッピーには大きすぎる場合、FreeDos bootdisk ウェブサイト に行って、10Mb のハードディスクイメージをダウンロードしてください。このイメージは完全なディスクイメージで、パーティションを含んでいるため、フラッシュユーティリティを追加するのはすこし手間が要ります:
まず最初のパーティションを確認してください (これを書いている時点では、最初のパーティションはブロック63から始まっています。つまりパーティションはオフセット 512 * 63 = 32256 からです)。次のコマンドを実行:
# file -sk <image-file> | sed -r 's/.*startsector ([0-9]+).*/\1/' 63
もしくは:
# fdisk -l <image-file> … Units = sectors of 1 * 512 = 512 bytes … Device Boot Start End Blocks Id System * 63 19151 9544+ 1 FAT12
そしてイメージをマウントします:
# mount -oloop,offset=$((63 * 512)) <image-file> /mnt
これで通常通りにファイルシステムにフラッシュユーティリティをコピーできます。完了したら:
# umount /mnt
通常の手順どおり USB スティックにイメージをコピーするか、memdisk として起動することが可能です。
使用方法
OEM Bootdisk バージョンを推奨します。kernel
と command.com
しか含まれておらずフラッシュユーティリティや新しい BIOS イメージのための領域が存在するからです。FreeDOS イメージをダウンロードして解凍:
$ wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz $ gunzip FDOEM.144.gz
フロッピーディスクイメージをマウントしてBIOS フラッシュユーティリティと新しい BIOS イメージをコピーします。必要なモジュールをロード:
# modprobe vfat # modprobe loop
/proc/fileystems
で必要なファイルシステムがサポートされているかどうか表示されます。フロッピーディスクイメージを一時的なパスにループマウント:
$ mkdir /tmp/floppy $ mount -t vfat -o loop FDOEM.144 /tmp/floppy
マウントで何もエラーが出なかったら、BIOS フラッシュユーティリティと新しい BIOS イメージをコピーしてください。マザーボードのメーカーサイトからダウンロードした圧縮ファイルを解凍したら、おそらく2つのファイルが作られるはずです。例:
# unzip 775Dual-VSTA\(2.60\).zip Archive: 775Dual-VSTA(2.60).zip inflating: 75DVSTA2.60 inflating: ASRflash.exe # cp 75DVSTA2.60 ASRflash.exe /tmp/floppy
2つのファイルがフロッピーに収まることを確認:
Filesystem 1K-blocks Used Available Use% Mounted on /tmp/FDOEM.144 1424 990 434 70% /tmp/floppy
フロッピーディスクイメージをアンマウント:
# umount /tmp/floppy
次に CD/DVD-RW メディアにフロッピーイメージを書き込みます。後で起動できるように注意してください。まずブータブル CD イメージを作成して、焼き込み:
# genisoimage -o bootcd.iso -b FDOEM.144 FDOEM.144 # wodim -v bootcd.iso
または GRUB のメニューにイメージを追加することもできます。Syslinux をインストールして memdisk
とイメージを /boot
にコピー:
# cp /usr/lib/syslinux/memdisk /boot # cp FDOEM.144 /boot/flashbios.img
そしてエントリを /boot/grub/menu.lst
に追加:
title Flash BIOS kernel /memdisk initrd /flashbios.img
あるいは GRUB2 の場合、/boot/grub/grub.cfg
に追加:
menuentry "Flash BIOS" { linux16 /boot/memdisk initrd16 /boot/flashbios.img }
あるいは Syslinux の場合、/boot/syslinux/syslinux.cfg
に追加:
LABEL flashbios MENU LABEL Flash BIOS LINUX ../memdisk INITRD ../fdboot.img
最後にマシンを再起動して、ブートの順序で CD ドライブが一番最初に来ることを確認して、CD を起動したら BIOS アップグレードを実行してください。GRUB メニューを使う場合、リストの新しいエントリを選択すれば FreeDOS が起動します。
ブータブル光学ディスクのエミュレーション
Geteltorito.pl スクリプトは El Torito 起動イメージを抽出します。X220, X230, X260, W540, T450, T450s などの Lenovo のノートパソコンで使えることを確認済みです。他のメーカーでも利用できるかもしれません。
インストール
geteltoritoAUR パッケージをインストールしてください。
使用方法
メーカーのサポートサイトから BIOS アップデート ISO を取得してください。geteltorito のイメージ抽出を実行:
$ geteltorito.pl -o <image>.img <image>.iso
イメージを usb メモリにコピー:
# dd if=<image>.img of=<destination> bs=512K
再起動して USB メモリから起動し、メーカーの指示に従ってください。
Windows PE
もし、メーカーが exe ファイルしか提供せず、事前のアドバイスに従わなかった場合、Windows PE フラッシュドライブを作成し、そこから通常通りバイオスアップデートをフラッシュすることができます。
使用方法
ISO Windows PE をダウンロードし、起動可能なドライブを作成します。
その USB を起動し、メーカーサイトでそれぞれのアップデートをダウンロードし、通常通り実行します。
HPユーザー
HP BIOS の一部、特にビジネスラインで利用可能なもの - ProDesk 600、EliteDesk 800、Thin Client (T620, T730 など) - には、BIOS 内から BIOS をアップデートするオプションがあります。このオプションは通常Fileメニューの下にあり、"Flash System ROM "と呼ばれています。2つの異なるディレクトリ構造があり、動作するようです。お使いの BIOS はどちらのディレクトリ構造でも動作する場合としない場合があります。
- FAT32 でフォーマットされた USB ドライブのルートに BIOS *.bin ファイルを置き、他のディレクトリを作らない。他のファイルは必要ありません。
- 説明されているようなディレクトリ構造を使用する こちら
上記のいずれのディレクトリ構造もうまくいかないようであれば、HP があなたの BIOS バージョンに関連する DOS 実行ファイルを提供している場合は FreeDOS 法を使用するか、Windows マシンで HP BIOS Flash Recovery USB をまず作成し、その USB を使って同じ Flash System ROM オプションを使って BIOS をフラッシュすることになります。
手順
- シリアル番号と OS として Windows を指定して、HP のサポートウェブサイトから BIOS 実行ファイルをダウンロードします。
- この exe ファイルはアーカイブになっており、7z を使って解凍することができます。
7z e <filename>.exe
- 上記のように USB 内に適切なディレクトリ構造を作成する。片方でうまくいかない場合は、もう片方を試す
- USB をアンマウントする
- BIOS のアップグレードが必要なコンピュータに取り付ける(USB ドライブを作成するために別のコンピュータを使用する場合。)
- コンピュータを再起動し、BIOS に割り当てられたキー (例:
F10
) を使って BIOS に入る。 - BIOS に入ったら、Flash System ROM オプションを見つけて選択します。次の3つのオプションからフラッシュすることができます。
- USB
- Hard disk
- Network
- 適切なオプション(この場合は USB)を選択すると、USB ドライブのルートに置いた BIN ファイルのファイル名が書かれた別のテキストボックスがポップアップ表示されます。
このとき、USB ドライブのルートに置いた BIN ファイルのファイル名が表示されます。Enter キーを押すと、現在の BIOS のバージョンとアップグレードする新しいバージョンが表示されます。
- 画面の指示に従ってBIOSをアップグレードし、最後に再起動します。
一部のモデル、特に 2010 年から 2014 年頃のモデルでは、実行ファイルを解凍すると、BIOS ファイルとそのファイルの RSA 署名を含む .fd で終わるファイルが生成されます。 この.fdファイルから展開する方法が公開されており、ツールもいくつか公開されています。これらのファイルを解凍してUSBメモリに入れたら、それを使ってアップデートを実行することができます。ファームウェアアップデートのユーザーインターフェイスでファイルへの移動が可能な場合もあるが、特定のディレクトリに特定の名前で配置する必要がある場合もある。 バイオスファイルには通常 .bin' という接尾辞が付き、署名ファイルには .sig または .s12 という接尾辞が付きます。HP ENVY m4-1015dx のページでは、そのようなモデルの具体的な詳細を説明しています。