raspberrypi php7+NGinxでワードプレスを運用していたけどアップデートしたら動かなくなった

しばらく実行していなかったので、
raspbianのアップデートアップグレードを実行しました。

sudo apt update
sudo apt upgrade -y

すると、、、やってしまいました。WordPressが開けなくなりました。

Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
あなたのPHPのインストールには、ワードプレスによって要求されたMySQLの拡張を利用できないようです。

MySQLの拡張?

php-mysqlというのが入っていないのでしょうか
今まで動いていたのに、おかしいですね・・・。

$ sudo apt-get install php-mysql
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
php-mysql はすでに最新版です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。

インストール済み・・・がっかり。

phpになんのモジュールが入っているかは-mでわかるそうです。

php -m|grep mysql

無い・・・mysqlのモジュールが入ってい無いと・・・?
php-mysqlはインストールされているのに、phpに入ってないということは、バージョン違い??

試しにさくらインターネット(ベーシック)にて試してみると・・・

$ php -m|grep mysql
mysqli
mysqlnd
pdo_mysql

ちゃんと入っていますね。

試しにphp関連のパッケージを確認してみます。

$ dpkg -l|grep php
ii dh-php 0.21~bpo8+1 all debhelper add-on to handle PHP PECL extensions
ii php-common 1:53+0~20170804100549.2+jessie~1.gbpa3f349 all Common files for PHP packages
ii php-mysql 1:7.1+53+0~20170804100549.2+jessie~1.gbpa3f349 all MySQL module for PHP [default]
ii php-pear 5.6.30+dfsg-0+deb8u1 all PEAR - PHP Extension and Application Repository
ii php5 5.6.30+dfsg-0+deb8u1 all server-side, HTML-embedded scripting language (metapackage)
ii php5-cgi 5.6.30+dfsg-0+deb8u1 armhf server-side, HTML-embedded scripting language (CGI binary)
ii php5-cli 5.6.30+dfsg-0+deb8u1 armhf command-line interpreter for the php5 scripting language
ii php5-common 5.6.30+dfsg-0+deb8u1 armhf Common files for packages built from the php5 source
ii php5-fpm 5.6.30+dfsg-0+deb8u1 armhf server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php5-json 1.3.6-1 armhf JSON module for php5
ii php5-mysql 5.6.30+dfsg-0+deb8u1 armhf MySQL module for php5
ii php5-readline 5.6.30+dfsg-0+deb8u1 armhf Readline module for php5
ii php7.0 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 all server-side, HTML-embedded scripting language (metapackage)
ii php7.0-cli 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf command-line interpreter for the PHP scripting language
ii php7.0-common 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf documentation, examples and common module for PHP
ii php7.0-dev 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf Files for PHP7.0 module development
ii php7.0-fpm 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php7.0-json 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf JSON module for PHP
rc php7.0-mysql 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf MySQL module for PHP
ii php7.0-opcache 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf Zend OpCache module for PHP
ii php7.0-readline 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf readline module for PHP
ii php7.1-common 7.1.8-2+0~20170804100723.7+jessie~1.gbpae7f04 armhf documentation, examples and common module for PHP
ii php7.1-mysql 7.1.8-2+0~20170804100723.7+jessie~1.gbpae7f04 armhf MySQL module for PHP
ii pkg-php-tools 1.28 all various packaging tools and scripts for PHP packages

あれれ?なにかおかしいです。
まずphpのバージョンが7.0です。

$ php -v
PHP 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 (cli) (built: Aug 10 2017 14:34:58) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206, Copyright (c) 1999-2017, by Zend Technologies

それなのにいくつか7.1用のモジュールが入っていますね。
しかも、当該の「php7.0-mysql」は削除(rc)されてしまっています。
php7.1-mysqlがインストールされていますが、おそらくこれだとバージョン違いになってしまうのでしょう。

古いバージョンが入るかどうか不安ですがインストールしてみます。

$ sudo apt-get install php7.0-mysql
[sudo] password for mlin:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
php7.0-mysql
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 1 個。
105 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 432 kB のディスク容量が消費されます。
以前に未選択のパッケージ php7.0-mysql を選択しています。
(データベースを読み込んでいます ... 現在 118917 個のファイルとディレクトリがインストールされています。)
.../php7.0-mysql_7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206_armhf.deb を展開する準備をしています ...
php7.0-mysql (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) を展開しています...
php7.0-fpm (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) のトリガを処理しています ...
php7.0-mysql (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) を設定しています ...
php7.0-fpm (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) のトリガを処理しています ...

入った!

そして、無事起動!!Wordpressが開きました!

モジュールさえ入ってしまえば再起動は不要なようでした。

あー、よかった 汗

BONZの永久保証は最強すぎて不安になった

知る人ぞ知るBONZです。
アマゾンや楽天、ヤフーショッピングに出品しているショップです。
主にメモリを扱っているようです。
少し前は最安だったのですが、今はそうでもなくなっています。
でも、買うのはおすすめです。というのも永久保証がついているのです。

BONZは永久保証

もちろん折ったり、水濡れしたり、っていうのは保証されません。

BONZのメモリを買うとこんな保証書がはいっています。

ハンコまで印刷だし、ここに書いてあるような

  • 購入証明書
  • 納品書
  • 製品シール

ってなくって、配送は簡易なものでこの保証書が入っているだけなのです。
で、チョー不安になりますけど、結果から言いまして、まったく問題はありませんでした。
永久保証はちゃんと効きます。

私の場合・・・2年で故障

私の場合はラズパイ(Raspberry pi2)での使用でしたので、いつか壊れるだろうと思っていました。2年だと意外と持ったな、というイメージです。

保証規定の「正常な状態で使用中」がどんな状態を示すのか具体的に書いていないのでわかりません。物理的なダメージはもちろんダメでしょう。それは分かるんです。

ところが、SDカードの素子って、壊そうと思えば壊せます。強引に何度も書き換えを行うと壊れてしまいます。
わざと壊したわけではないとは言え、ラズパイ(Raspberry pi2)での使用は「正常な状態で使用中」なのでしょうか・・・?

とりあえず聞いてみた

悩んでいても仕方ないので、ヤフーショッピング(私はここで買った)の問い合わせからメールを送ってみました。

使用中に突然読み書きができなくなって、認識もしなくなってしまいました。
保障が効くかどうか教えてください。

とまあ、こんな感じです。
そうしたら

代替品を送りましたので、返信用封筒にてお手持ちのメモリをご返送ください。

てな感じでした。結局保証規定も何も関係ない感じでした・・・。良いのかな??

暫く待つとトランセンドの代替品が届きました。前回はノーブランドでしたのでなにげにグレードアップしました。

BONZはオススメ

というわけでBONZ自体のことが少し心配になる結果でしたが、
購入側としてはとてもおすすめできると思いました。

とは言えこれで経営が傾かれても困りますので、もうすこし規定を厳しくしても良いのかな、と邪推なことを思ったりしました。

USBメモリのマウントでトラブル[raspberry pi]

ファイルの保存場所としては、
システムのmicroSDの中じゃなくて、USBメモリにした方がいいんじゃないかと思いたち、テストを始めたのですが、いまいちうまく行っていません。

?書き込み権限がない!

差し込むと自動マウントされるのはいいのですが、
何かファイルを書き込もうとすると

「許可がありません」

と怒られてしまいます。sudoすればいけますが、何かと不便です。
一般ユーザーのcronで何かやろうとしてもすべて蹴られるってことですしね。
権限を緩めれば?とマウントポイントの /media/usb0 フォルダをchmodで変更しようとしても何も変化がないのです。

vfatでの方法は見つけた

usbの自動マウントはusbmountという機能で行われています。
設定ファイルは /etc/usbmount/usbmount.conf です。

これの FILESYSTEMS と FS_MOUNTOPTIONS です。

FILESYSTEMSは

FILESYSTEMS="ntfs vfat ext2 ext3 ext4 hfsplus"

としました。ntfs以外はデフォルトです。

FS_MOUNTOPTIONSはこのように変更します。

#FS_MOUNTOPTIONS="-fstype=ntfs,uid=pi,gid=pi,iocharset=utf8,codepage=932"
↓
FS_MOUNTOPTIONS="-fstype=vfat,iocharset=utf8,codepage=932,uid=500,gid=500,dmask=000,fmask=011"

変更しました、というか、これ以外はまったくうまく行きませんでした。

ntfs ext4 はまったくうまくマウントできない!

この-fstypeをntfsにしてみます。

$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb           8:16   1  1.9G  0 disk
mqsdb1        8:17   1  1.9G  0 part /media/usb1

マウントされたっぽいですが、

$ cd /media/usb1
-bash: cd: /media/usb1: 通信端点が接続されていません

なぬ?
何回やっても同じ結果で、アクセスできません。試しにFATに戻してみるとあっさりつながるのでNTFSがなにかおかしいようです。

次にext4でやってみます。

$ touch test
touch: `test' に touch できません: 許可がありません

見覚えのあるやつです。

試しに

FS_MOUNTOPTIONS="-fstype=ext4,iocharset=utf8,codepage=932,uid=500,gid=500,dmask=000,fmask=011"

とすると、自動認識もされなくなってしまいました。
まだ、

FS_MOUNTOPTIONS="-fstype=vfat,iocharset=utf8,codepage=932,uid=500,gid=500,dmask=000,fmask=011"

のほうがマウントされるだけマシです。

どうしてこうなるのかまったくわかりません・・・。

extundeleteでファイル復旧にチャレンジ![raspberry Pi]

それほど重要なファイルというわけではないのですが、
はずみでrmして、うっかりファイルを消してしまいました。
たまにやってしまいますね 汗
こういうときのためにrmは使わないで、
要らないファイルはどこかにmvしておく形式にしたほうが良い、とは思っているものの
またやってしまいました。

そこで、試しに復旧方法を調べてみると、なかなか良さそうなものがありました。

extundeleteで簡単復旧?!

extundeleteというので簡単に復旧できるそうです。
てなわけで、実行してみたいわけですが、コンパイルしないといけません。
本当は復旧したいディスクはリードオンリーにして使わないことが鉄則ですが、
起動ドライブであるためそうは行かず、
それでも一応USBメモリをさして、そこでコンパイルすることにしました。

 

> wget https://sourceforge.net/projects/extundelete/files/extundelete/0.2.4/extundelete-0.2.4.tar.bz2/download
> tar -zxvf extundelete-0.2.4.tar.bz2
> cd extundelete-0.2.4
> sudo ./configure
Configuring extundelete 0.2.4
configure: error: Can't find ext2fs library

ext2fsがないのでインストールします。
(実際はこういうことを復旧したいドライブでやるのはNGです)

$ sudo apt-get install ext2fs-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
Note, selecting 'e2fslibs-dev' instead of 'ext2fs-dev'
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  dc libasn1-8-heimdal libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal
  libheimntlm0-heimdal libhx509-5-heimdal libkrb5-26-heimdal libroken18-heimdal libwind0-heimdal
  libxfce4ui-1-0 xfce-keyboard-shortcuts
これを削除するには 'apt-get autoremove' を利用してください。
以下の追加パッケージがインストールされます:
  comerr-dev e2fslibs e2fsprogs libcomerr2
提案パッケージ:
  doc-base gpart e2fsck-static
以下のパッケージが新たにインストールされます:
  comerr-dev e2fslibs-dev
以下のパッケージはアップグレードされます:
  e2fslibs e2fsprogs libcomerr2
アップグレード: 3 個、新規インストール: 2 個、削除: 0 個、保留: 282 個。
1,190 kB のアーカイブを取得する必要があります。
この操作後に追加で 798 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main e2fslibs armhf 1.42.12-2 [173 kB]
取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main e2fsprogs armhf 1.42.12-2 [728 kB]
取得:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main libcomerr2 armhf 1.42.12-2 [59.7 kB]
取得:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main comerr-dev armhf 2.1-1.42.12-2 [37.6 kB]
取得:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main e2fslibs-dev armhf 1.42.12-2 [192 kB]
1,190 kB を 2秒 で取得しました (435 kB/s)
(データベースを読み込んでいます ... 現在 125349 個のファイルとディレクトリがインストールされています。)
.../e2fslibs_1.42.12-2_armhf.deb を展開する準備をしています ...
e2fslibs:armhf (1.42.12-2) で (1.42.12-1.1 に) 上書き展開しています ...
e2fslibs:armhf (1.42.12-2) を設定しています ...
libc-bin (2.19-18+deb8u4) のトリガを処理しています ...
(データベースを読み込んでいます ... 現在 125349 個のファイルとディレクトリがインストールされています。)
.../e2fsprogs_1.42.12-2_armhf.deb を展開する準備をしています ...
e2fsprogs (1.42.12-2) で (1.42.12-1.1 に) 上書き展開しています ...
man-db (2.7.0.2-5) のトリガを処理しています ...
e2fsprogs (1.42.12-2) を設定しています ...
(データベースを読み込んでいます ... 現在 125349 個のファイルとディレクトリがインストールされています。)
.../libcomerr2_1.42.12-2_armhf.deb を展開する準備をしています ...
libcomerr2:armhf (1.42.12-2) で (1.42.12-1.1 に) 上書き展開しています ...
libcomerr2:armhf (1.42.12-2) を設定しています ...
libc-bin (2.19-18+deb8u4) のトリガを処理しています ...
以前に未選択のパッケージ comerr-dev を選択しています。
(データベースを読み込んでいます ... 現在 125349 個のファイルとディレクトリがインストールされています。)
.../comerr-dev_2.1-1.42.12-2_armhf.deb を展開する準備をしています ...
comerr-dev (2.1-1.42.12-2) を展開しています...
以前に未選択のパッケージ e2fslibs-dev を選択しています。
.../e2fslibs-dev_1.42.12-2_armhf.deb を展開する準備をしています ...
e2fslibs-dev (1.42.12-2) を展開しています...
man-db (2.7.0.2-5) のトリガを処理しています ...
install-info (5.2.0.dfsg.1-6) のトリガを処理しています ...
comerr-dev (2.1-1.42.12-2) を設定しています ...
e2fslibs-dev (1.42.12-2) を設定しています ...

リベンジ!
prefixでUSBドライブの中を指定しています。

$ sudo ./configure -prefix=/media/usb0/src/extundelete-0.2.4/src
Configuring extundelete 0.2.4
Writing generated files to disk

成功した・・・?!

$ sudo make
make -s all-recursive
Making all in src
extundelete.cc: In function ‘ext2_ino_t find_inode(ext2_filsys, ext2_filsys, ext2_inode*, std::string, int)’:
extundelete.cc:1272:29: warning: narrowing conversion of ‘search_flags’ from ‘int’ to ‘ext2_ino_t {aka unsigned int}’ inside { } [-Wnarrowing]
    buf, match_name2, priv, 0};
                             ^

成功したのでしょうか・・・?

$ sudo make install
Making install in src
  /usr/bin/install -c extundelete '/media/usb0/src/extundelete-0.2.4/src/bin'

指示の通り /media/usb0/src/extundelete-0.2.4/src/bin にちゃんとバイナリができてました。
なんとか成功したっぽいです。

2:30頃のエポック時間です。

$ date -d "14:30" +%s
1501997400

指定して実行してみました。

$ ./extundelete --after 1501997400 --restore-all /dev/root
Only show and process deleted entries if they are deleted on or after 1501997400 and before 2147483647.
./extundelete: No such file or directory  /dev/root
./extundelete: No such file or directory when trying to open filesystem /dev/root

ところが「/dev/rootなんかないよ」と言われてしまいます。
どうやら起動しているシステムドライブは対象にできないようです・・・?sudoしてみても同じでした。

試しに接続してるUSBドライブでやってみます。

$ sudo ./extundelete /dev/sda1 --restore-all
./extundelete: Bad magic number in super-block when trying to open filesystem /dev/sda1

FATではだめってことです・・・。

仕方ないので、一度rpi-cloneでクローンドライブを作って、そのドライブに対して実行してみます。

$ sudo ./extundelete --after 1500000400 --restore-all /dev/sdb2
Only show and process deleted entries if they are deleted on or after 1500000400 and before 2147483647.
NOTICE: Extended attributes are not restored.
WARNING: EXT3_FEATURE_INCOMPAT_RECOVER is set.
The partition should be unmounted to undelete any files without further data loss.
If the partition is not currently mounted, this message indicates
it was improperly unmounted, and you should run fsck before continuing.
If you decide to continue, extundelete may overwrite some of the deleted
files and make recovering those files impossible.  You should unmount the
file system and check it with fsck before using extundelete.
Would you like to continue? (y/n)
y
Loading filesystem metadata ... 476 groups loaded.
Loading journal descriptors ... 32574 descriptors loaded.
Searching for recoverable inodes in directory / ...
4 recoverable inodes found.
Looking through the directory structure for deleted files ...
4 recoverable inodes still lost.
Unable to restore inode 3612833 (file.3612833): No undeleted copies found in the journal.
Unable to restore inode 3620865 (file.3620865): No undeleted copies found in the journal.
Unable to restore inode 3620897 (file.3620897): No undeleted copies found in the journal.
Unable to restore inode 3620898 (file.3620898): No undeleted copies found in the journal.

 

実行したドライブにRECOVERED_FILESというフォルダが作られます。
で、その中にファイルが吐き出されるはずなのですが・・・。
残念なことに、復活ならずででした。フォルダは空っぽ・・・。

extundelete というコマンドの有効性については気になりますので、もう一度検証はしたいと思います。

nginxが起動しなくなった[raspberry pi]

突然RaspberryPiのNginxが起動しなくてかなり焦ったのでメモしておきます。

起動しない

再起動すると起動しなくなっていた。
自動起動がうまく行かなかったのかと、
sudo service nginx start
するも起動しません。

検証

エラーは以下のとおりです。

Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' for details.

このメッセージは

‘systemctl status nginx.service’ と ‘journalctl -xn’ で詳細を調べろ!

ってことらしいです。

$ sudo systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: exit-code) since 水 2017-08-02 22:58:37 JST; 18s ago
  Process: 2756 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 654 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 2759 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
 Main PID: 657 (code=exited, status=0/SUCCESS)

 8月 02 22:58:37 raspberrypi nginx[2759]: nginx: [alert] could not open error log file: open(...ry)
 8月 02 22:58:37 raspberrypi nginx[2759]: 2017/08/02 22:58:37 [emerg] 2759#0: open() "/var/lo...ry)
 8月 02 22:58:37 raspberrypi nginx[2759]: nginx: configuration file /etc/nginx/nginx.conf tes...led
 8月 02 22:58:37 raspberrypi systemd[1]: nginx.service: control process exited, code=exited s...s=1
 8月 02 22:58:37 raspberrypi systemd[1]: Failed to start A high performance web server and a ...er.
 8月 02 22:58:37 raspberrypi systemd[1]: Unit nginx.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.

途中、省略されちゃってます。

Hint: Some lines were ellipsized, use -l to show in full.
幾つかの行が省略されちゃってるから、-lを使えばいいじゃん?

てなわけで、リベンジ。

$ sudo systemctl -l status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: exit-code) since 水 2017-08-02 22:58:37 JST; 2min 10s ago
  Process: 2756 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 654 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 2759 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
 Main PID: 657 (code=exited, status=0/SUCCESS)

 8月 02 22:58:37 raspberrypi nginx[2759]: nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (2: No such file or directory)
 8月 02 22:58:37 raspberrypi nginx[2759]: 2017/08/02 22:58:37 [emerg] 2759#0: open() "/var/log/nginx/access.log" failed (2: No such file or directory)
 8月 02 22:58:37 raspberrypi nginx[2759]: nginx: configuration file /etc/nginx/nginx.conf test failed
 8月 02 22:58:37 raspberrypi systemd[1]: nginx.service: control process exited, code=exited status=1
 8月 02 22:58:37 raspberrypi systemd[1]: Failed to start A high performance web server and a reverse proxy server.
 8月 02 22:58:37 raspberrypi systemd[1]: Unit nginx.service entered failed state.

前半はよくわからない。
どんなサービスが動かなかったかの結論だけ言ってるみたいで、原因らしいものがないみたい。
後半の「could not open error log file: open() “/var/log/nginx/error.log” failed」がきになりました。
nginx.confのログファイルの場所はここじゃなくて別の場所に変更しているのに、なぜここが開かないというのかな・・・?
確かに、/var/log/nginx/のディレクトリはないけれど・・・。

そこで、ふには落ちないけど、mkdir -p?/var/log/nginx をしてから sudo service nginx start して起動してみました。やはりだめ?
ああ、パーミッションかな?ととりあえず chmod 777 でユルユルにしてもう一度起動すると・・・!起動したーー!
結局/var/log/nginx/error.logという0ファイルができました。どうやらここは設定ファイルで指定しなくても必要なようですね・・・?バグだと思うけどね。

 

こうなった原因

原因はswapをRamdiskに変えたことでした。

microSDの突然死がありましたので、以下を見つけて設定したのです。

Raspberry Pi、RAMディスクで micro SDを長寿命化

rc.localに更に以下を追加しました。

mkdir -p /var/log/nginx
chown root.www-data /var/log/nginx

これで、再起動してもちゃんと起動するようになりました。

今回はなんとかなりましたけど、やっぱり再起動する前にはバックアップしないと危険ですね。

microSDカードを買ったのでチェックしてみた

新しいmicroSDが届きましたー。
値上げして値上げして・・・約2500円でした。まあ、大昔よりは安いですけど。

こんな感じ。怪しいところはないかな・・・。

むー。並行輸入品ということなのかなあ?
今時はこんな感じですね。
またはバルクですかね。裸。

開封すると中はこんな感じでした。更にふたしてあると思わなかった。

よく見ると右上にOPENとなってますね。

無理やりこじ開けるところでした。。。

裏面はこんな感じで、怪しげな中華シール(?笑)はありませんでした。

テストしてみた

何も信用してはいけません 笑

まずはh2testwですね。
H2testw

1時間位かかるみたいです。カードリーダーがUSB2.0なことも影響していると思います。
USB3.0な小型のリーダーってまだないんですよね・・・

とおもったら、あったー

アマゾンで800円ぐらい、楽天だと1200円くらい、でした!
microSDが装着時ちょっとはみ出すことがウィークポイントみたいです。

でもやっぱり小型の商品はこれぐらいみたいですね。
中華が面白いリーダーを出しくくれるといいのですが、いまだ2.0のが多いみたいですね。

結果出ました。大丈夫そうです。

Warning: Only 59079 of 59080 MByte tested.
Test finished without errors.
You can now delete the test files *.h2w or verify them again.
Writing speed: 18.0 MByte/s
Reading speed: 18.9 MByte/s
H2testw v1.4

ついでにベンチマーク
Attoです。

リーダーが2.0なのでこんなものでしょう。

ChkFlashは超絶時間がかかりそうなので、また今度。

試行錯誤の末・・・(HP Pro tablet 610 G1)

簡単に分解できないタブレットPCのデメリット

HP Pro tablet 610 G1はかなりオーソドックスなタブレットPCです。
無骨な感じで、メジャーな端末で言うとNexus7の様な感じです。
目に見えるネジは一切なく、どうやって分解するかかなり謎です。

とにかく一番大きな問題は、「振動が止まらない」なのですから
振動する部品を取り外してしまえばいいのかもしれません・・・!

まったく開くような気がしないのですが、こういうものを使って強引にこじ開けるみたいです。

壊れそう・・・。

タブレットPCを 買うときから思っていましたが、
持ち運びに便利なことは間違いないですが、調子が悪くなった際に部品を変えることが出来ません。

検索してみるとタブレットは突然死事案が多いようです。
でもそもそも分解が難しいのでごみになってしまう・・。
ふつうのPCならHDDだけ取り外して部品取りに売ることも出来ますが、タブレットはどうしようもない・・・。
エコじゃないですね。

 

泣きのラスト1回

夜中の10時を過ぎ、私もかなり疲れました 汗
とりあえず分解してみるにしてももう一回だけ最新のBIOSをあててみることにしました。

それで、もう今日は寝る!

USBやHDDへの書き込みは成功しないので、一番上の直接アップデートです。

インストールを開始すると、プツン、と画面が切れました。
待っていても何も変化がなく、今回は


の画面も無しでした。

仕方ないのでおそるおそる電源を入れると・・・。
あの懐かしい、一瞬のブルル、というバイブレーションのあと、震えは止まり・・・

治ったーーー!!!

多少はPCのこと詳しいつもりですけど、一体何が悪かったのかついぞわかりませんでしたが、
この瞬間直りました。

  • 震えてない
  • Winキーも反応する
  • 回転機能が機能再開
  • 音量キーが正常に機能

全部直りました!

治ったのはめでたしでしたが、

これって、BIOSアップデータに何か問題があるんじゃないの???

問い合わせ不能

HPのWebサイトに行くとわかりますが、問い合わせは不能です。
連絡させない、という狂気すら感じます 笑

一応アンケートが送信できたので、

アップデータファイルがカクカクシカジカの理由で変ですよ、よかったら返事ください、

てな感じで送っておきました。
返事は来ないでしょうねえ・・・。

 

HPのPCは注意したほうが良いかもしれませんね・・・。

続)HPのサイトのBiosファイルの謎(HP Pro tablet 610 G1)

Biosアップデートファイルを実行してもUSBメモリやHDDへの書き込みがまったくうまくいかないHPのドライバの件です。
なにか私が間違えているのか?といろいろ検索してみますが、情報はほとんどなく、よくわかりません。
もしやWindowsでは認識できないファイルなのかと思いCygwinで

ls -a
find .

などやってみますが、やはり空っぽです。
もしかすると、今インストールしているバージョンよりも古いBIOSだと書き出さない仕様なのでしょうか?
でも、それであれば「既に新しいバージョンがインストールされています」とダイアログを出せばいいだけなのでは??と疑問は更に深まります。

そもそも、なぜ一番上のupdateはグレーアウトしてしまうのでしょう?
やっぱり今の現状から判定しているのでは?と思えます。

HPのアップデート方法説明ページを発見

こちら

動画もありました。

説明によれば「Windowsが起動しなくなってしまった場合に、別のPCでBIOSアップデート媒体を作る手段」としてUSBがあると読めます。
そこで、方針転換で、別のPCにて実施してみました・・・。
ところが・・・。
どういうことが起きたかといいますと、「今度は実行自体ができない」状況になりました。
1段階目の解答はできるのですが、2段階目の「HP System BIOS Update Utility」がHP以外のPCでは起動しないのです。
Windows7では「実行できませんでした」のダイアログ、8、10では何も起動してこないし、無理やりexeをクリックしてみてもまったくの無反応でした。どうもHP(のPCかどうかの)チェックが入っているのではと疑われます。滑稽な話です。世の中のPCが全てHPだと思っているのでしょうかね・・・。

ところで、この動画でもUpdateがグレーアウトしていますね(2:28?のあたり)。

また、その前の解凍でUSBメモリを選択していますが、無意味です。
あれは単に「HP System BIOS Update Utility」を解凍しているだけなので。
開発と広報部隊の連携がうまく行っていないじゃ?という感じがしますよ。

 

無理やり解凍してみたら・・・

実はexeファイルというのは解凍ファイルで強引に解凍をすることが出来るのです。
そこで、解凍してみた所・・・。BIOSアップデートに必要そうなファイルがいくつか出てきました。最終的にはこれを何とかして使うしかなさそうです。

兎にも角にも、HPにアップされているファイルはおかしいので、きちんと検証してほしいです。
一応メールを投げてみましたが、担当者に届くかは不明です。。。

HPのサイトのBiosファイルの謎(HP Pro tablet 610 G1)

なんとなく、故障というよりも、
ソフトとハードとの整合性がおかしくなったように感じる
HP Pro tablet 610 G1でした。
なら、もしかして、古いBIOSに戻すことが出来たら治るかもしれない・・・。

Biosファイルを探しにHPのWEBサイトへ

検索するとすぐに見つかりました。過去分についてもかなり古いものまでアップされていました。

(注意)ここ数日で大幅に削除されています。いまあるのは一つ前だけ。何か問題があったのでしょうか。

(↑現行と一つ前だけになっている。数日前はたくさんあったのに・・)

とりあえず、一つ前のものをダウンロードしました。

様子がおかしいBiosアップデータ

HPのBiosアップデータは実行すると、一旦Cドライブに解凍するようになっています。
解凍すると、その中のexeが勝手に実行されてインストールが続行されます。

ところが、最新版と少し様子が違います。

この一番上のUpdateが直接インストールなのですが、グレーアウトしていてチェックできません。

しかたなく、下のCreate Recovery USB Flash driveを選択します。
するとUSBメモリに何かが書き込まれて終了します。

ところがどう実行すればいいのかがわかりません。
一応Bios画面にUSBからブートするような設定はありますが、設定してもWindowsが起動してきてしまいます。

そりゃそうです。「USBには何もコピーされてない」のですから。

USBにはディレクトリが作られるだけで何もコピーされていないのです。
これはどういうこと??
この下の「Copy」を実行しても、今度はディレクトリどころか何も起きません・・・汗

もしかしたら、ダウングレードには対応していないということかも・・

ところが最新版でやってもまったく同じ状況なのです。一番上のチェックボックスがチェックできるってところだけが違うだけで。。。

この話は続きます・・・

HPのWinタブレットPC 610 G1がBiosアップデートによって狂った

震えっぱなしのタブレットPC Pro Tablet 610 G1の続きです。

最新のBiosをインストールしてみても改善せずでした。

振動以外もおかしくなっている

スタンドに建てると、割りと音が気にならないことに気が付きました。
机にペタン、とおいてしまうと机が共振して震えます 汗
とりあえずWindowsは起動するので、振動を止める方法が本当にないのか調べることにしました。
するとおかしくなっていることに気が付きました。

  • 画面が回転しない

タブレットですから、画面の向きが縦横に応じて変わるわけです。これが反応しなくなっていて、横になってしまいます。
じゃあ緊急的に横で、、、と思いますよね。ところが電源アダプタ・USBコネクタ・HDMIが全て下側についているため横画面にしてスタンドに建てることができません。
右クリックメニューの、画面の解像度、から画面の方向を変えることはできるのですが、電源を落とすたびに横画面に戻ってしまいます。
ふとチャームを見るといつもあった「ディスプレイ」のアイコンが

単に「明るさ」というアイコンに変わってしまっていました。
回転用のデバイス?を見失ったような印象を受けました。

そもそも回転はどうやっているのでしょうか?
いま、デバイスマネージャを見てみますと、「センサー」という項目があり、「簡易デバイス方向センサー」というのがありました。
もしかしたらこれが消えていたかもしれませんね。

画面が回転しなくなったら、要チェックですね。

  • 音量ボタンが変

音量ボタンマイナス側を押すと音声アナウンスが流れるようになってしまい、音量の調節ができなくなってしまいました。
音量ボタンプラス側では、画面がフラッシュするようになりました。これなにかと思っていたのですが、スクリーンショットですね。ピクチャの中に沢山のキャプチャが取れていました。

  • 静電容量のWindowsキーが効かない

Windowsタブレットは画面の下側に静電容量のWindowsキーが付いています。これを押しても全く効かなくなっていました。
上の音量ボタンと合わせて考えると、効かないというよりは、押しっぱなしになっている感じがしますね・・・。

  • バッテリーがつねに100%表示

振動しっぱなしで、充電ケーブルも挿していないのにバッテリー表示が「100%」のままになってしまいました。
しかし、色々いじっているうちに、アダプターを刺さないと起動ができなくなってきました。バッテリーが尽きたのでしょう。
しかし、挿して起動すると一気に100%・・・抜くと落ちる・・・。
一応HPのパソコンには「HP Support Assistant」というソフトが有りハードウェアの簡易診断ができるので、やってみるとまさかの「バッテリー無し」でした。

 

このように、一気に不調が発生しました。
整合性がおかしくなっているような感じですよね。
だとするとやっぱりBIOSなのかな、と思います。

というわけで、次は古いBIOSにできるのかどうかを試してみました。