/proc/mdstatのデバイス名でのソート [Linux]
しかし、/proc/mdstat はデバイス名でソートされておらず、少々見づらい。
このため、/proc/mdstat をデバイス名でソートするスクリプトを作成した。
詳細は、以下の通りである。
1. スクリプト (mdstat)
#!/bin/sh # # Get status of MD devices sorted by device name. # usage: mdstat # # - MD is an abbreviation for "multiple device". # - The most common use case is commonly known as "Software RAID". # export LC_ALL=C # sort status of MD devices by device path sort_md_status() { local info=$1 local first_line last_line md_dev local i # get first line, last line, list of MD device first_line=`echo "$info" | sed -n 1p` last_line=`echo "$info" | sed -n \\$p` md_dev=`echo "$info" | grep '^md[0-9]\+ :' | sed 's/ :.*//' | sort -n` # sort data by device path echo "$first_line" for i in $md_dev; do echo "$info" | grep -A2 $i done echo "$last_line" } sort_md_status "`cat /proc/mdstat`" exit $?
2. 使用方法
% mdstat
3. 実行例
% mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] \ [raid10] md0 : active raid1 sda5[0] sdb5[1] 20971456 blocks [2/2] [UU] md1 : active raid1 sda6[0] sdb6[1] 20971456 blocks [2/2] [UU] md2 : active raid1 sda7[0] sdb7[1] 204736 blocks [2/2] [UU] md3 : active raid1 sda8[0] sdb8[1] 204736 blocks [2/2] [UU] md4 : active raid1 sda9[0] sdb9[1] 41942976 blocks [2/2] [UU] md5 : active raid1 sda10[0] sdb10[1] 204736 blocks [2/2] [UU] md6 : active raid1 sda11[0] sdb11[1] 204736 blocks [2/2] [UU] md7 : active raid1 sda3[0] sdb1[1] 83886016 blocks [2/2] [UU] unused devices:
% cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] \ [raid10] md2 : active raid1 sda7[0] sdb7[1] 204736 blocks [2/2] [UU] md5 : active raid1 sda10[0] sdb10[1] 204736 blocks [2/2] [UU] md1 : active raid1 sda6[0] sdb6[1] 20971456 blocks [2/2] [UU] md3 : active raid1 sda8[0] sdb8[1] 204736 blocks [2/2] [UU] md7 : active raid1 sda3[0] sdb1[1] 83886016 blocks [2/2] [UU] md6 : active raid1 sda11[0] sdb11[1] 204736 blocks [2/2] [UU] md4 : active raid1 sda9[0] sdb9[1] 41942976 blocks [2/2] [UU] md0 : active raid1 sda5[0] sdb5[1] 20971456 blocks [2/2] [UU] unused devices:
Windows 7 Home EditionのWindows 10への無償アップグレード [Windows]
下記の理由から、サポート終了後も Windows 7 を使用している。
・Windows 環境は MS Office 文書の編集くらいにしか使用していない。 ・MS のサポートを使用することはない。 ネット検索や自身での調査により、ほとんどの問題を解決できる。 また、解決できない問題が残る場合は、その部分を使用しないだけである。
しかし、Windows 10 の下記の情報を見て、アップグレードを検討するようになった。
・MS の方針変更があり、以降は OS の新規購入の必要がない。 Windows 10 内でのバージョンアップとなる。 ・Windows 7 から Windows 10 への無償アップグレードが 2021-01 でも実施できる。 無償アップグレードの期限終了後もアップグレードができている。 ・現在の PC 環境が Windows 10 のハードウェア要件を満たしている。
以下は、下記の項目についてまとめたものである。
・Windows 10 への無償アップグレードを実現するまでの経過
・現状と今後の予定
1. Windows 7 の Windows 10 への無償アップグレードの実現までの経過
1-1. 通常の無償アップグレード手順の実施 (2021-03 上旬に実施) → 異常終了
下記のエラーが発生し、Windows 10 をインストールできない。
[エラーメッセージ] この PC で Windows 10 を実行できるかを判断できません。 セットアップをやめてやり直してください。
(1) 実施方法
・MediaCreationTool20H2.exe を使用。 ・Windows 7 の Product Code を入力せずに実施。 (インストール終了後にライセンス認証を行うため。) ・データの引き継ぎ/クリーンインストールのいずれでも実施。 [この PC を今すぐアップグレードする] を選択の場合 ・Windows 7 のデータが引き継がれる。 [別の PC のインストール メディアを作成する] を選択の場合 ・Windows 10 がクリーンインストールされる。
(補足)
上記の曖昧なエラーメッセージからは、下記のいずれなのかが判断できない。
・Windows 10 への無償アップグレードに該当する環境ではない。
・Windows 10 に対応した環境ではない。
1-2. Windows 10 評価版のインストール (2021-04 上旬に実施) → 正常終了
Windows 10 Enterprise Edition の評価版が存在することを知り、インストールを実施。
(その後、Windows 10 評価版をバックアップし、パーティションの初期化を実施。)
(1) 目的
Windows 10 に対応した環境かどうかを確認するため。
(2) 結果
インストールできたため、Windows 10 に対応した環境であると確認できた。
1-3. Windows 10 への無償アップグレードの再実行 (2021-04 上旬に実施) → 正常終了
下記の手順により、アップグレードできる。
(1) Windows 10 のクリーン・インストール
・パーティション、ファイルシステム(NTFS)は事前に作成する。 ・ダウンロードした iso ファイルを書き込んだ DVD でブートする。 ・インストール時には、Windows 7 の Product Code を入力しない。
(2) インストール後のライセンス認証
・インストール後に、Windows 7 の Product Code でライセンス認証を行う。
2. 現状 (2021-05 下旬)
下記の理由により、パックアップ・データから Windows 7 をリストアし、Windows 7 を使用している。
(尚、Windows 10 は、現在のイメージをバックアップしている。)
理由は、下記の通りである。
(1) Windows 10 の Windows Update の終了に非常に時間を要することがある。
Windows 10 では、Windows Update が強制実行される。
また、エラーの発生、およびその取消のために 最大で 2時間程度、shutdown が終了しないことがあった。
(2) Windows 10 のディスク使用量が想定を遥かに越える。
・Windows 7 では、C: 20GB、D: 10GB で運用できていた。 ・Windows XP では、C: 10GB、D: 10GB で運用できていた。 ・Windows 10 では、C: 30GB、D: 10GB でも余裕がない。 Windows Update が実施された後にこの傾向が堅調となる。
(3) 不要なアプリケーションが多数インストールされる。
これまでの Windows 以上にインストールされる。
また、アン・インストールの手順が面倒なアプリケーションが多数存在する。
3. 今後の予定
(1) Windows 10 の再使用
1 年の半期毎にあるバージョンアップのタイミングで、Windows 10 の更新と状況確認を確認し、再使用の有無を検討しようと思う。
ライセンス的にはグレーゾーンではあるが、Windows 7 と同時に使用しない限り問題ないように思われる。
・Windows 10 が快適に使用できるなら、移行したいと思っている。 ・現在の Windows 10 は快適ではない。 Windows Update を強制するが、更新プログラムの完成度が低く快適ではない。 ・仕方なくWindows 7 に戻し、Windows 10 の改善を待っているような状況である。
(2) Windows 10 での Windows Update の無効化
・サービスやタスクの無効化では効果がない。 ・Home Edition では、Windows Update を無効化するソフトウェアを使用する。 (例) win-updates-disabler
Windows XPでのAFT対応ディスクの使用 [Windows]
現在、Windows のサブ環境として、Windows XP を Linux とマルチ・ブートできるようにしている。Windows 環境は MS Office 文書の編集くらいにしか使用しないため使用頻度が低く、その障害時用のサブ環境となると使用頻度はさらに低い。
しかし、Windows XP は Windows にしてはディスク使用量が少なく、動作も軽いため、今もインストールしたままにしている。
先日、この Windwows XP が使用するハードディスクに障害が発生し、ハードディスクの交換を行った。AFT 未対応のハードディスクから AFT 対応のハードディスクへの変更である。
そこで、AFT の機能を使用するため、Windows XP のブートセクタを 63 から 2048 に変更したところ、ブートできない状況となってしまった。
現在サポートされている Windows では問題とならないことではあるが、問題の解決に手間取ったため、備忘録として発生事象と対応方法をまとめてみた。
1. 発生事象
ハードディスクの交換後、Windows XP のブートセクタを 63 から 2048 に変更したところ、ブートできなくなった。
[エラーメッセージ] A disk read error occurred Press Ctrl + Alt + Delete to restart
・パーティションのサイズ(セクタ数)はハードディスクの交換前と同じである。
・Linux の GRUB から Windows XP をブートしている。
・パーティションの作成、ファイルシステム(NTFS)の作成は Linux 上で実施。
・バックアップ・データのリストアも Linux 上で実施。
2. 原因
C: ドライブ用のパーティションの PBR(Partition Boot Record) にブートセクタの位置情報が保存されており、この値がパーティションの開始セクタと一致していないためである。
3. 対処方法
下記の手順により、PBR の情報を修正する。
(1) 当該パーティションをフォーマットする(FS type: ntfs)。
# mkfs.ntfs /dev/sda1 または # mkfs.ntfs -f /dev/sda1
-f オプションを指定した場合には、下記のように動作する。
・ボリュームの 0 クリアをしない。
・セクタの異常の有無をチェックしない。
・このため、フォーマットに要する時間を短縮できる。
(2) 上記パーティションのフォーマット直後の PBR を保存する。
# dd if=/dev/sda1 of=/tmp/pbr.dat bs=512 count=1
(3) 上記パーティションにバックアップ・データをリストアする。
今回は、ntfsclone で取得したバックアップ・データを使用する。
(4) 上記パーティションの PBR の先頭 32 バイトを保存したデータで変更する。
# dd if=/tmp/pbr.dat of=/dev/sda1 bs=32 count=1
・PBR の先頭の 32 バイトには、下記のデータが含まれる。
Jump instruction (3 バイト)
OEM name (8 バイト)
BPB: BIOS Parameter Block の一部 (25 バイト中の 21 バイト)
・実際に修正が必要な項目は、下記の通りである。
BPB の Hidden Sectors (18-21 の 4 バイト) … ブートセクタの位置情報