org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 途中でファイルの末尾に達しました。

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 途中でファイルの末尾に達しました。

javax.naming.NamingException: 途中でファイルの末尾に達しました。

重大: キー UserDatabase でユーザデータベースを検索中の例外です
javax.naming.NamingException: 途中でファイルの末尾に達しました。

LifecycleException: キー UserDatabase でユーザデータベースコンポーネントが見つかりません

tomcatの起動時に発生したエラー。原因はconfディレクトリ内にある「tomcat-users.xml」というファイルに問題があるために発生している模様。私のこのエラーが発生する環境では、当該のファイルの中身が消去されてしまっていた。意味がわからないが再起動かなんかのタイミングでエラーが発生してtomcat-users.xmlのファイルの中身が削除されてしまったのだろう(そんなことがあり得るのだろうか・・・)

とりあえず新たにtomcatのアーカイブを解凍してtomcat-users.xmlのファイルだけをコピーしてきて問題のあるファイルと置き換える。これで一応起動できるようにはなった。ただどうしてこんなことになったのかという原因がわからずじまい。またこのファイルの中身がどっか消失したらコピーしてきてと応急処置を繰り返すのか。さらに謎なのは同じ構成のPCが他にもあって問題が起こっているのはこの1台だけという状況。他のマシンも同様のエラーが発生しているのならわかるのだが。

No space left on device デバイスに空き領域がありません

Ubuntuサーバーでファイルをmvしようとしたとき、No space left on device となってファイルの移動コマンドを受け付けないようになってしまった。移動できない場合の原因として主なものは

  • ディスクの容量が本当にいっぱいでこれ以上保存できない場合
  • inodeを使い切ってしまっていて追加できない場合

大体この2つが原因らしい。

私の場合はそのどちらでもなく、ディスクスペースもinodeも余裕があるにもかかわらずNo space left on deviceというエラーが発生するようになってしまった。現象としては

  • 特定のファイルが移動できない
  • エラーが出たファイルとは別の名前のファイルなら移動できる

というような感じ。

このようなエラーが出るようになったきっかけは、思い当たるところではmvコマンドを実行中に途中で強制的にコマンドを遮断してしまったことぐらい。イレギュラーな操作をしてしまったことでディレクトリ情報の何かが壊れてしまって特定のファイルのコピーを受け付けないようになってしまったのかなと予想しているがそんなことがあり得るのかどうか不明。結局、そのディレクトリにはファイル移動ができなくなってしまったので新たにディレクトリを作成して、今度はmvコマンドのプロセスを途中でkillするようなことなく最後まで完遂させることにした。こういうことがあると巨大なファイルや膨大なファイルを移動させるときに今後は細心の注意を払う必要がある。

容量の大きいディスクから小さいディスクへddコマンドでクローンする場合

linuxのターミナルで使うことができるddコマンドについて、ddコマンドとはディスクのクローンを作るときに使われるコマンドで、あるディスクとそっくりそのままの内容を別のディスクへ複製することができる。ただし条件があり、
・元となるディスクと同じ容量か大きいディスクのみクローン作成可能
・元となるディスクより容量が小さいディスクへはクローンできない
といった条件がある。

またddコマンドができることは
・ディスクのクローン作成
・パーティションのコピー
といったことができる。

で、大きい容量から小さい容量のディスクへコピーする場合について。たとえばubuntuのOSが入っているディスクのクローンを作成する場合、パーティションが切られているのが普通であり、ブートローダがあるバーティション、本体のファイルシステムがあるパーティションといった具合に存在する。容量の大きいディスクから小さいディスクへのクローン作成は本体のファイルシステムのあるパーティションをddコマンドでコピーすることで目的を達成することにした。

Ubuntuでクローンを作成する場合
手順としては、

  1. 元となるディスクの最も大きいパーティションのサイズをgpartedを使って小さいディスクの容量に収まるようにリサイズする。
  2. 移行先となる容量の小さいディスクに元となるディスクに存在するOSと同じものをクリーンインストールする
  3. ubunbtuのインストールメディアをusbかなんかに保存してliveインストールディスクとして使えるようにする。(遊んでるlinuxマシンがある人はそちらで可)
  4. 3で作ったインストールディスクでliveOSを起動する(この起動するマシンに移行元と移行先のディスクをあらかじめ接続しておく)
  5. liveOSでデスクトップが起動したらターミナルを起動してddコマンドを実行してパーティションをコピーする
    例:# dd if=/dev/sda2 of=/dev/sdb2 bs=4M

以上のような手順でとりあえずディスクのクローンという目的は達成することができた。容量大から容量小へのddコマンドディスク複製の実行はたとえパーティションサイズが同じであってもディスク全体の容量が違うということでコマンドを完遂することができない。当たり前といえば当たり前だけれども。パーティションサイズを整えて使用済みの容量と移行先の容量は揃えたからあとはddコマンドさんよろしく・・・というようなことはできない模様。ifには元となるディスクまたはパーティションを指定、ofには移行先となるディスクまたはパーティションを指定。

ディスクをクローンする場合
例:# dd if=/dev/sda of=/dev/sdb bs=4M

パーティションをクローンする場合
例:# dd if=/dev/sda2 of=/dev/sdb2 bs=4M

詳しくは # fdisk -l とかしてディスク状況を確認するといいかもしれない。bsのサイズは適当。

M.2 NVME SSDの速度は体感できる

普通のSATA接続のSSDからm.2規格のNVME SSDに換装した。Intel 760pという品で最高Read 3210 MB/s 出るらしい2020年現在でもまだハイエンドのSSDへと環境を移行したが、前情報だとNVMEも普通のSATA SSDも体感できないというのが定説だったが、実際に使ってみると明らかに違う。大きなファイルやゲームなどで違いが出るのかなと勝手に思っていたが、OSの起動もそうだが全ての動作がいちいち速くなる。もうSATASSDには戻れない。

・・・2~3日もすると慣れてわからなくなった。

SSDにクローンしたらWindows10が起動できなかった件

現象

・クローン化したSSDを起動ドライブとしてPCを起動すると、初期のロード画面が終わってからログインのパスワードを入力する画面が表示されず真っ暗なまま。マウスを動かすとカーソルは一定時間表示される。処理中のアイコンも表示される。

原因(推測)

クローンソフトを使ってSSDにクローンしたが既存のSSDにあるパーティションの設定などが存在していたためクローン作業そのものは問題なく終わったものの起動時に何かしらのエラーが発生するようになったのかもしれない。

対策

・一度Windowsをクリーンインストールしてみて正常にインストールできるかどうかを確認する。インストールできて問題なく起動できたならばそのOS上でバックアップから復元をしてクローンの代わりにする。

使ったソフト

・Acronis True Image WD Edition (当該のPCにUSBでもなんでもWD製のストレージが接続されていれば無料で使える)

復元の手順

1.移行元のストレージをAcronis True Imageでバックアップする(私はコンピュータ全体ではなくディスクとパーティションだけをバックアップした)
2.移行先のSSDにWindows10を新規インストール(ライセンスキーの入力はありませんでいい)
3.移行先のSSDでWindowsを起動してAcronis True Imageをインストール&起動、バックアップタブを選択して下向き矢印のアイコンから既存のバックアップを追加を選択する。1で保存しておいたバックアップファイルを選択してディスクの復元をクリックしてバックアップと復元先をそれぞれ選択して復元する。以上

Raspberry Pi B+

Raspberry Pi B+ について。初代モデルBを大幅リニューアルしたデザインで3B+までの基盤レイアウトのベースとなった機種。

CPU情報
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7

CPUは1コア1スレッドである様子。ARMv6シリーズのCPUでラズパイの主流である3Bや4Bで使われているARMv7などと互換性がないためソフトウェアの利用時においてやや面倒な場合がある。というか対応していない可能性も高い。

HAPROXYに関する雑記

enable statsについて
haproxyのstatsを表示するにはコンフィグの各セクションでenable statsを追記すればいいらしいがmode httpの場合だけ見ることができる様子。nginxとかを運用しているケースを想定しているのかもしれない。mode tcpの場合はその設定は無視される。

config : ‘stats’ statement ignored for proxy ‘mysql-db’ as it requires HTTP mode.

HAProxy WIについて
haproxyをGUIで管理するためのツールでHAProxy-WIというものがあるが、ざっとインストールして使ってみた所基本的にはmode httpのサーバーを管理するためのツールであるような印象。nginxに特化しているかどうかわからないがhaproxyでnginxをロードバランスしようと考えている人には丁度いいと思う。それ以外の人には使えるかどうかわからない。私はmysqlのロードバランサーの設定をGUIでできないかと思って使ってみたが細かな設定はできなさそうに感じた。

Lenovo s145 のメモリ増設

先日注文したLenovo s145が配達されたので早速初期設定とメモリ増設。製品型番は81UT00HRJPで一番安いモデルで約3万4千也。

裏面のネジを全て外すとメモリ交換ができるようになる。ネジの仕様は普通の精密機器用プラスドライバーで外せるタイプのネジで特殊ネジではなかった。製品の仕様では空きメモリスロットが0と記載されていて心配だったがちゃんと増設用のメモリスロットは存在していた。画像の中央辺りにある黒い長方形のスペースがメモリを増設するためのスロットで黒いのはカバーとなっていた。このモデルは標準で4GBのメモリが搭載されていることになっているが、おそらく中央右辺りにあるマザーボードに直付けされているチップが4GB容量のメモリではないかと思われる。

SSDは中央左辺りにあるm.2スロットに装着されていておそらく2240タイプのnvme ssdである様子。さらにその下の空間のスペースにはSATA端子がありSATA接続のSSDなどを増設することができそうに見えた。わりと薄型のノートだけれど内部のスペースは余裕がありそうなレイアウトになっている。

メモリの増設が終わればカバーをしてネジ止めして作業終わり。で、電源を入れてシステム詳細からメモリを認識されていることを確認した。大まかなスペックはAMD Athlon™ 300U(2コア4スレッド)、メモリ12GB、NVME SSD 128GB 、Windows10というような仕様のマシンとなって、動作は軽快な印象で値段から考えると全く不満はない。筐体の質感もアルミ(?)かなんかの金属っぽいものが使われていてチープさは感じなかった。液晶も割と見やすいかなと個人的には思った。普段ポンコツ液晶を使っているからだけれども。