ffmpeg で mkv ファイルを avi ファイルに変換2017年07月19日 12時06分15秒

Windows では mkv ファイルの再生がそのままでは出来ないようなので、avi ファイルに変換。
% ffmpeg -i input.mkv output.avi
このオプションだと、画質が随分と落ちているように見える…

壊れたのは Windows と外付けのハードディスク2017年03月05日 16時29分40秒

Windows を壊して外付けのハードディスクも壊した。今回壊れたのは結局ハードディスク二つの MBR だった。

Windows の方は起動不可能だが、CD から起動した FreeBSD で見るとパーティションは壊れていない。そこで、このディスクの MBR のバックアップは古かったので、パーティション構成が違っていたはず。そのため、MBR を修復する前に、FreeBSD で第三と第四パーティションのデータを複製。

その後、古い MBR のバックアップで、元に戻す。FreeBSD の dd で 512 バイトのみ。

$ dd if=rv515-ada0.mbr of=/dev/ada0 bs=512 count=1
この後、案の定、第三と第四パーティションは見えなくなったが、取り敢えず Windows は起動するようになり、第二パーティションのデータは無事だった。

外付けのディスクは、バックアップはとても古いものしか無かった。こちらは、比較的最近 FreeBSD を起動できる様に再構成したものだった。どうもこちらは、パーティションテーブルも壊したようで、後部のパーティションの復帰は無理そう。古いバックアップの MBR を戻しても、第一パーティションのあったデータは無事見えるようになったが、それ以降のパーティションは無理だった。システムの複製が入っていただけなので、被害は軽微。

壊れた外付け USB ディスクの様子を FreeBSD で見る2017年03月02日 14時09分18秒

取り敢えず、前回破壊した外付け USB ディスクを FreeBSD に繋げると、こうなる。
da2 at umass-sim2 bus 2 scbus5 target 0 lun 0
da2: <I-O DATA HDPS-U > Fixed Direct Access SCSI-2 device
da2: Serial Number 000902A1541C
da2: 40.000MB/s transfers
da2: 305245MB (625142448 512 byte sectors)
da2: quirks=0x2<NO_6_BYTE>
GEOM_PART: integrity check failed (da2, MBR)
GEOM_PART: integrity check failed (ufsid/4cff0efe10087de1, MBR)
GEOM_PART: integrity check failed (diskid/DISK-000902A1541C, MBR)
ディスクの先頭領域が壊れているようだ。
% ls /dev/da2*
/dev/da2
ls でもパーティションは表示されていない。

FreeBSD には、この整合性の点検を無効にする方法がある。MBR 等を破壊してしまったディスクからの復旧に、役に立つ。root ユーザで。

$ sysctl kern.geom.part.check_integrity=0
% ls /dev/da2*
/dev/da2        /dev/da2s1      /dev/da2s2      /dev/da2s3      /dev/da2s4
これで、mount やら ntfs-3g などで、ディスクの中のファイルを見られる様になる。

なお、このディスクを繋いでも、起動画面が出ることも無い。

Windows が壊れた要因は良く分からない2017年03月01日 15時39分40秒

Windows が起動しなくなったが、実は再現環境が今でも分からない。Windows 7 が入っているのは、この Samsung の機種一機のみ。Windows Vista や Windows XP、それ以前の Windows が入っていた機種なら、HP や Toshiba などが複数台ずつあったが、間違ったボタンを押してもキーキーキーと不快音がなる程度で、起動しなくなった事は無い。

Windows 7 の問題なのか、Windows 7 から変わった LBA 等の起動機構に寄るものなのか、FreeBSD のブートローダが Windows 7 とは相容れないのか、はたまた Samsung 機種だからかなのかは分からない。

取り敢えず、この機械に、外付けのハードディスクを繋いで FreeBSD を起動するときには一段と気を付けなければいけないようだ。特に F5。

この機種に、FreeBSD のブートローダの入った USB ディスクで、F5 を押すと壊れるのは USB ディスクと内蔵ディスクの二台。MBR や LBA の情報が入っている、先頭 512 バイトが破壊される様だ。

BIOS で CD-ROM から起動するようにしたり、他の外付けの USB ディスクを繋ぎ直して、FreeBSD を起動することは出来る。ディスクも起動情報を直せばデータは無くならない。

Reboot and Select proper Boot device or Insert Boot Media in Selected Boot device and press a key2017年02月28日 14時37分12秒

Samsung RV515 に入っていた Windows 7 の機械を壊してしまった。電源を入れると「Reboot and Select proper Boot device or Insert Boot Media in Selected Boot device and press a key」と出てきて何も起動しない。

実は、この機械は一度同じように壊したことがあった。当時は日記に書く余裕が無かったが、確か 2013 年の冬の事。それ以来この機種では気つけていたのだが。

取り敢えず落胆中ではあるが、今回は再発防止を含めてのメモ。

まずは、再現方法。

  1. FreeBSD の boot ローダの入った USB デバイスを繋ぎ、BIOS で USB を優先する
  2. F1 などの起動パーティションを指定するところで、内蔵ディスクを指す F5 を押す
といたって簡単に破壊できる。

復旧にはデータを失わないように時間をかけるのだが、修復方法はいたって簡単。 MBR のあるディスクの先頭 512 バイトをバックアップから書き戻す。この部分のバックアップをしていなければ、各種 Windows でのもっと複雑な復旧作業が必要になるだろう。

FreeBSD の ndis で Windows のドライバを使う2016年09月03日 12時37分14秒

NDIS 自体はかなり昔から実装されていた機能。Windows のドライバを利用し、コンパイルして作成するので FreeBSD のリリースバージョンに依存する。ドライバを無くさないようにするのが、大切だ。

eMachines eM250-1915 の bwn ドライバが不安定で、ndis を試したら、こちらの方が安定していた。今回 11.0-RELEASE に向けて準備をしようとしたら、ドライバが見付からなくて、手間取った。折角なので、手順も記録。

$ tar xvf Broadcom_BCM43xx_5.100.235.19_win5x.exe
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/SilentInstall_Driver_Only_XP.bat
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/Notes.txt
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/bcm43xx.cat
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/bcm43xx64.cat
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/bcmwl5.inf
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/setup.iss
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/setup.exe
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/bcmwlcoi.dll
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/bcmwlcoi64.dll
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/bcmwl5.sys
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/bcmwl564.sys
x [wikidrivers.com] Broadcom_BCM43xx_5.100.235.19_win5x/
$ cd \[wikidrivers.com]\ Broadcom_BCM43xx_5.100.235.19_win5x
ドライバを展開して .inf と .sys ファイルを見付ける。
$ ndisgen bcmwl5.inf bcmwl5.sys
        ==================================================================
        ------------------ Windows(r) driver converter -------------------
        ==================================================================

                        INF file validation

        This .INF file appears to be Unicode.
        Trying to convert to ASCII...
        Done.

        Press return to continue...



        ==================================================================
        ------------------ Windows(r) driver converter -------------------
        ==================================================================

                        Driver file validation

        This .SYS file appears to be in Windows(r) PE format.

        Press return to continue...
リターンキーを押すと次の画面になる。
        ==================================================================
        ------------------ Windows(r) driver converter -------------------
        ==================================================================

                        Driver file conversion

        The script will now try to convert the .INF and .SYS files
        using the ndiscvt(1) utility. This utility can handle most
        .INF files; however, occasionally it can fail to parse some files
        due to subtle syntax issues: the .INF syntax is very complex,
        and the Windows(r) parser will sometimes allow files with small
        syntax errors to be processed correctly which ndiscvt(1) will
        not. If the conversion fails, you may have to edit the .INF
        file by hand to remove the offending lines.

        Press enter to try converting the files now: 

        Conversion was successful.

        Press enter to continue... 
更にリターンキーを押す。
        ==================================================================
        ------------------ Windows(r) driver converter -------------------
        ==================================================================

                        Firmware file conversion

        If your driver uses additional firmware files, please list them
        below. When you're finished, just press enter to continue. (If your
        driver doesn't need any extra firmware files, just press enter
        to move to the next step.)

        > 
他のドライバは要らないので、そのままリターンキー。
        ==================================================================
        ------------------ Windows(r) driver converter -------------------
        ==================================================================


        List of files converted firmware files:


        Press enter to continue... 
次が最後のステージ。コンパイルが始まるので FreeBSD のソースが必要。
        ==================================================================
        ------------------ Windows(r) driver converter -------------------
        ==================================================================

                        Kernel module generation


        The script will now try to generate the kernel driver module.
        This is the last step. Once this module is generated, you should
        be able to load it just like any other FreeBSD driver module.

        Press enter to compile the stub module and generate the driver
        module now:



        Cleaning up... done.

        The file bcmwl5_sys.ko has been successfully generated.
        You can kldload this module to get started.

        Press return to exit.
コンパイルが終ってカーネルモジュールが作成されている。
$ ls *ko
bcmwl5_sys.ko
$ cp bcmwl5_sys.ko /boot/modules
カーネルを再構築しても、なくならない /boot/modules に移動する。

FreeBSD で msdosfs を小文字で2015年11月27日 16時43分53秒

msdosfs、つまり FAT ファイルシステムを FreeBSD でマウントすると全てが大文字で出てくる。この動作は FAT ファイルシステムの長いファイル名と大文字小文字の区別が無い為のようだが、小文字で表示した方が見やすい。

取り敢えず、-s オプションを使うと良いようだ。

$ mount_msdosfs -s /dev/da0s1 /mnt/msdos
$ ls /mnt/msdos
dcim

FreeBSD で NTFS を UTF-8 でマウント2015年11月18日 13時10分51秒

NTFS は元々、UTF-16 でファイル名が保存されている。ntfs-3g は内部で UTF-8 に変換してくれる。そのため、FreeBSD で NTFS を UTF-8 で扱うのには、mount 自体には特別な処理は必要ない。
# kldload fuse
# ntfs-3g /dev/da0s1 /mnt/ntfs
kldload で fuse を読み込んで、そのまま ntfs-3g にてマウントをする。

ここから先は、表示側の設定になる。xterm を UTF8 に設定し、ls も UTF-8 で実行するだけ。

% xterm -en UTF-8
% env LANG=ja_JP.UTF-8 ls /mnt/ntfs/dir
ディレクトリ
dir の中に作っておいたディレクトリが見える。
% env LANG=ja_JP.UTF-8 xterm -en UTF-8 &
どうせ、xterm 自体が UTF-8 用に起動されているので、この中の環境については全て ja に指定した方が楽。

前回

夏時間が終った2015年11月03日 08時30分55秒

アメリカでは、夏時間が十一月一日に終った。時間の針を一時間戻し、遅くなってきている夜明けに合わせる。夏の間に日の出ている時間を長く過ごせるので、夏時間は気に入っている。ここニューヨーク市でも、北海道ぐらいの緯度にあるので、昼間と夜の差が結構大きい。また、気温も低めで、日本から来た人は既に寒いと言っていた。

コンピュータの時刻が Windows と共有するために現地時間に設定されている FreeBSD では Windows の再起動が必要。FreeBSD 側や BIOS で直してしまうと、Windows が次に起動するときに更に更新されて一時間ずれてしまう。

既に恒例の行事。

マウスパッドの故障ではなく設定がおかしくなった2015年09月17日 10時53分23秒

マウスパッドが故障したのかと落胆していたが、以前にも似たような症状を経験したのを思い出した。

「コントロールパネル」を開き、「マウス」を選択。この機種は、その中に、「ELAN」というマウスパッドの設定がある。「コントロールパネル」からも「Multi-Finger」という項目で、直接操作できる。

記憶によれば、前回もこの設定が意図せずに変わってしまい、右クリックがおかしくなっていた。そこで、この「Elan Smart-Pad」を開き、「Default」に戻す。

これで、左クリックが出来ないのが直った。

前回