lenovo z575でwin10アップグレードの失敗と復帰メモ

lenovo z575はプリインストールでwindows 7 home premiumが長年問題無く良好に稼働。

リカバリーディスクはDVDが複数枚必要なのが面倒で作っていなかった。

8月13日にフッと思い立ち、win10導入を開始。サクッとインストールできるもの!と思いきや、これが、なかなか、なかなかのトラブルの始まり。

まず。

windows10を入手する。をクリック後、アップグレードを開始するが、これがうまくいかず躓く。エラーコードは80240020。これをググりだした事からのめり込んでしまったのが失敗の始まり。

windows10を入手する。からではなくwinsows updateからアップグレードをしてみてもダメ。管理者DOS窓で操作すれども、msconfigも操作すれども、結局、以前のバージョンに戻る、と、なり、でうまくいかない。その間のエラーコードはC1900101、80240055、8024000B。

ググりながら局所的に対処し懲りずにインストールしてググるを続けているうちに、MSサイトからWindows 10 Media Creation Toolをダウンロードし、これを使うとうまくいったという記事をいくつか目にし、8月21日にさっそく試してみたところ、今度はモダン セットアップ プログラムがエラーで、インストールが始まる前に止まってしまう事態になった。エラーコードを見ると、C190011F。これをググりいろいろ試すが、どうしてもストップしてしまう。と。8月24日に[FIX] "Modern Setup Host Has Stopped Working" While Upgrading To Windows 10なる記事を見つける。

これに従い、モダン セットアップ プログラムがエラーしたプログラムが止まった時点でWindows 10 Media Creation Toolを終了し、setupprep.exeをDOS窓で叩いたら記事どおり、再びインストールが始まった。が。最後の環境の構築で、ブルー画面となりドライバエラーのメッセージを表示し、以前のバージョンに戻るの画面となってしまった。

エラーメッセージはすかさずメモし、ググってみるとアンインストールしなかったプログラムのドライバだったので、これをアンインストールすればうまくいくのでは!と思っていたところ、今度はいつまでたってもwin7に戻らない・・・。ここは、我慢。という事で、6時間ほど席を離れ戻ってきたら、DOS窓にプロンプトが表示されている画面となっていた。

30分ほどこの画面を眺めていたが、ディスクアクセスがその間全く無く、キーボードのキーなどをバタバタ叩いてもウンともスンとも言わないので、仕方無く電源をオフし再びオンの強制再起動を敢行。

で。なんと!起ち上がったのは、win10で、起動途中に何らかのウインドが2度ほど目にもとまらないスピードで表示された後、修復、回復と進みオートリブートが延々と繰り返されるようになった。

 

終わった感。ありあり。で。この日は、マシーンをオフして終了。。。

 

翌日より気を取り直し、既に光学ドライブは壊れてしまっているEarly 2009なMacBook ProにてMSサイトよりISOなwin10をダウンロードしUSBブートを試みる。

が。古いMacなのでBoot Camp アシスタントのInfo.plistに細工をしないとUSBに書き込めない事を始めて知る。。。

ようやくisoをUSB Flashに送り込み、z575でUSBブート。ここで修復系の各メニュー、初期化、クリーンインストール等、いろいろ試すが全てダメ。で。DOS窓でマシーンを覗いてみると、なんと!Cドライブが200Mしか無い。?ってな事で、diskpartで、list volumeしてみると、win7で使っていたドライブレターがFになっていた。これをググれども、さすがにコレといった記事が見当たらず・・・いよいよ、行き詰まった感ありありで、迷走。

z575のOne Key Recoveryは効かず、リカバリディスクも作っていない。なら。って事で、リカバリーできるツールが無いかググってみたら、MSでSoftware Recoveryを配布してる記事を見つけ、探すが、MSでは配布が既に停止(終了?)しており手に入らず。

ああ。イヤだなぁと思いつつもtorrentで探したら、やっぱり有る。背に腹はかえられずな迷走ぶりで、ファイルをisoでゲット。これをBoot Camp アシスタントでUSBに送り込みz575に差し込んで、さー来い。ってな意気込み虚しくブートせず。ファイルが壊れているのかと思い、違うファイルで試してみてもやはりブートせず。さらに暴走し、win7をゲットしてUSBに送り、これを試しても、やはりブートしない。あー。ってな事で、再びDOS窓に戻る。

diskpartでlist partitionして、win7が残っている(らしき)partition2をselect partition 2してdetail partitionしてみたら、activeになっていない。なら。って事で、これをactiveにしたところ、volumeレターがCに戻る事に気づく。おおっと思い、USBを外しマシーンを再起動してみると、今度はwin10の再起動を繰り返す画面ではなく、OSが無いとメッセージが出てブラック画面のままストップ。じゃあ。ここで、win10のUSB使って修復メニューを実行すれば治るかも。と思い試してみるが、どれもダメ。初期化もダメ。クリーンインストールも相変わらず、ディスクがロックされている。とかで、これもダメ。

 

partitionのactiveを元に戻し、 ゲットしたisoを板に焼いて試してみてはどうかな、と思い、遊んでいるwin7マシーンを所有している友人に借りに行く。

 

そして8月29日(今日)。借りてきたマシーンで、Windows7-USB-DVD-Download-Toolをインストールし、先のisoをUSB Flashに送りこんでみたら・・・これがうまくいかない。うーん。ってな事でググってみると、UltraISOとかいうソフトを使ってUDFをチェックし、その他のチェックを外さないとダメ。みたいな事らしい。

で。recoveryなisoをUltraISOを使って記事どおり操作、これをUltraISOでUSB Flashに送り込み、z575に挿してやったら。ブートした。

で。画面ではFドライブのwin7をちゃんと認識していて、このFをリカバリーしてみたら、正常とのメッセージが出ていた。なら。という事で、diskpartでvolumeレターFにあたるpartition 2をactiveにして、再起動し再度リカバリーしてみたら、今度はリカバリーするか否かのメニューが出てきて、リカバリーを選択したら、なんらかの操作が始まり、最後にsuccessっぽい表示が出て終了。

おお!と思い。USBを外し、再起動したら!なんと!!windows 7が起動!!!

で。ログイン後、デスクトップが表示される前に、

Windows 10 をインストールできませんでした

お使いのPCは、Windows10のインストールを開始する直前の状態に戻りました。

0xC1900101 - 0x4000D

MIGRATE_DATA操作中にエラーが発生したため、インストールはSECOND_BOOTフェーズで失敗しました」

とメッセージが表示され、右下に「閉じる」だけのボタンがある画面で停止。

何じゃこれ?と、瞬間躊躇するも、「閉じる」をクリック。すると、ブラックアウトし、再びマシーンが静かになった。が、よーく見ると、うっすらとマウスカーソルが映っており、動かすと動く。ここは我慢。って事で、こちらもひっそりとひたすら恭順。

 

待つ事、おそらく5分くらい。で。見事デスクトップが表示されました。

 

勉強になりました。。。

centos7でconfigureの際に、required file `./config.rpath' not foundとか、Makefile.inが無いとか、その時

autoconfしても、configureがうまくなく、makeできないので困った・・・

で。

aclocal

autopoint

aclocal

autoconf

autoheader

libtoolize

automake

これで、何とかうまくいった。

 

それでもダメなら、

configure.ac中を見て、AM_INIT_AUTOMAKE([ ])の中に必要なバージョンが記載されているか確認し、

autoreconf --install

centos7 postfix+dovecot+α移行の要点

SMTP-Authでsaslauthdは使わずdovecotに任せる

main.cfで

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth

と指定した事で、saslauthdを停止しないと認証エラーが出る。このあたりを理解せず、約5時間浪費。

ただし、メールアカウントのパスワードはシステムアカウントと切り離したのでメールアカウント用のパスワードをsasl2passwdで生成する。

/etc/sasl2/smtp.conf

pwcheck_method: auxprop
mech_list: cram-md5 plain login

sasl2passwd -u メールドメイン -c アカウント

 

dovecot側の設定 for SMTP-Auth

/etc/dovecot/conf.d/10-auth.conf

!include auth-system.conf.ext
!include auth-passwdfile.conf.ext
この2つをイキにする。

 

/etc/dovecot/conf.d/auth-passwdfile.conf.ext

passdb {
driver = passwd-file
args = /etc/dovecot/dovecot-passwd
}

userdb {
driver = passwd-file
args = /etc/dovecot/dovecot-passwd

}

として、/etc/dovecot/dovecot-passwdに、view /etc/passwdを見てアカウント情報をコピーし、(mech_listで利用可能にしたcram-md5を使った)dovecotpwで生成したコードを埋め込む

$ dovecotpw
Enter new password:
Retype new password:
{HMAC-MD5}dcbe8064d829ee98ad16817611150a6c7ee5fe1c9dfd79f5395be892f162bfd3

 

CentOS7のepel-releaseなamavisd-newの起動方法

systemctl start amavisdすると、エラーで起動できずpostfixとの連携からメールの受信ができなくなり、約5時間悩む。おそらく、amavisd.serviceな起動スクリプトに問題がある模様。で。素直に、

/usr/sbin/amavisd -c /etc/amavisd/amavisd.conf

としたら、あっけなく起動。OK。

 

 

error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument

$HOME/local以下に、gcc4.8.3導入後、glibc2.20を投入。しかし、aria2コンパイル後できた実行ファイルで、表題のエラーが出る。

 

実行ファイルを調べてみると。

 

/lib64/ld-linux-x86-64.so.2 --list $HOME/local/bin/aria2c

    linux-vdso.so.1 => (0x00007fffccffe000)

    libaria2.so.0 => $HOME/local/lib/libaria2.so.0 (0x00007fb310027000)

    libcares.so.2 => $HOME/local/lib/libcares.so.2 (0x00007fb30fe16000)

    libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x00007fb30fb8f000)

    libdl.so.2 => $HOME/local/lib/libdl.so.2 (0x00007fb30f98b000)

    libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007fb30f786000)

    libgnutls.so.26 => /usr/lib64/libgnutls.so.26 (0x00007fb30f4e3000)

    libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00007fb30f254000)

    libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fb30ef01000)

    libz.so.1 => /lib64/libz.so.1 (0x00007fb30eceb000)

    libstdc++.so.6 => $HOME/local/gcc/lib64/libstdc++.so.6 (0x00007fb30e9e8000)

    libm.so.6 => $HOME/local/lib/libm.so.6 (0x00007fb30e6e5000)

    libgcc_s.so.1 => $HOME/local/gcc/lib64/libgcc_s.so.1 (0x00007fb30e4cf000)

    libc.so.6 => $HOME/local/lib/libc.so.6 (0x00007fb30e132000)

    librt.so.1 => $HOME/local/lib/librt.so.1 (0x00007fb30df29000)

    /lib64/ld-linux-x86-64.so.2 (0x00007fb3105ea000)

    libtasn1.so.3 => /usr/lib64/libtasn1.so.3 (0x00007fb30dd19000)

    libpthread.so.0 => $HOME/local/lib/libpthread.so.0 (0x00007fb30dafd000)

 

$HOME/local/lib/ld-linux-x86-64.so.2 --list $HOME/local/bin/aria2c

    linux-vdso.so.1 (0x00007fff69f79000)

    libaria2.so.0 => $HOME/local/lib/libaria2.so.0 (0x00007f7d26dfa000)

    libcares.so.2 => $HOME/local/lib/libcares.so.2 (0x00007f7d26be9000)

    libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x00007f7d26961000)

    libdl.so.2 => $HOME/local/lib/libdl.so.2 (0x00007f7d2675d000)

    libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007f7d26558000)

    libgnutls.so.26 => /usr/lib64/libgnutls.so.26 (0x00007f7d262b5000)

    libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00007f7d26026000)

    libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f7d25cd3000)

    libz.so.1 => /lib64/libz.so.1 (0x00007f7d25abd000)

    libstdc++.so.6 => $HOME/local/gcc/lib64/libstdc++.so.6 (0x00007f7d257ba000)

    libm.so.6 => $HOME/local/lib/libm.so.6 (0x00007f7d254b7000)

    libgcc_s.so.1 => $HOME/local/gcc/lib64/libgcc_s.so.1 (0x00007f7d252a1000)

    libc.so.6 => $HOME/local/lib/libc.so.6 (0x00007f7d24f04000)

    librt.so.1 => $HOME/local/lib/librt.so.1 (0x00007f7d24cfb000)

    /lib64/ld-linux-x86-64.so.2 => $HOME/local/lib/ld-linux-x86-64.so.2 (0x00007f7d273bd000)

    libtasn1.so.3 => /usr/lib64/libtasn1.so.3 (0x00007f7d24aeb000)

    libpthread.so.0 => $HOME/local/lib/libpthread.so.0 (0x00007f7d248cf000)

 

ls -l /lib64/ld-linux-x86-64.so.2

    lrwxrwxrwx 1 root root 10 11月 4 21:44 2014 /lib64/ld-linux-x86-64.so.2 -> ld-2.12.so*

ls -l $HOME/local/lib/ld-linux-x86-64.so.2

    lrwxrwxrwx 1 user user 10 11月 6 15:41 2014 $HOME/local/lib/ld-linux-x86-64.so.2 -> ld-2.20.so*

 

という事で、rootでシンボリックファイルを張り直せばOKのような気がしたが、root権限が無いuserなので、これはできない。。。

 

LDFLAGS="-Wl,--dynamic-linker=$HOME/local/lib/ld-linux-x86-64.so.2" ./configure --prefix=$HOME/local --enable-libaria2

 

1週間程度時間を費やし、上記でようやく解決。

none rootなcloudlinuxにgcc4.8.3導入

試行錯誤に約4日。コンパイルに半日以上。

とりあえずインストール完了したのでメモ。

 

GNUで新しいパッケージを既に$HOME/local/以下で利用していたため、

  • aclocalは、$HOME/local/binを利用している事を確認。
  • PKG_CONFIG_PATHとld.so.confで、いずれも$HOME/local/配下にあるものを、/usr/lib62, /lib64より先に読み込んでいるか確認。

で。

mkdir $HOME/local/gcc

 

cd $HOME/local/work

wget -O - ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.bz2 | bzip2 -dc | tar xf -

cd gmp-5.1.3

M4=$HOME/local/bin/m4 ./configure --prefix=$HOME/local/gcc --enable-cxx

make -j2

make -j2 check

make install

 

cd $HOME/local/work

wget -O - http://www.mpfr.org/mpfr-3.1.2/mpfr-3.1.2.tar.bz2 | bzip2 -dc | tar xf -

cd ../mpfr-3.1.2

./configure --prefix=/$HOME/local/gcc --with-gmp=$HOME/local/gcc

make -j2

make -j2 check

make install

 

cd $HOME/local/work

wget -O - http://www.multiprecision.org/mpc/download/mpc-1.0.2.tar.gz | gzip -dc | tar xf -

cd ../mpc-1.0.2

/configure --prefix=$HOME/local/gcc --with-gmp=$HOME/local/gcc --with-mpfr=$HOME/local/gcc

make -j2

make -j2 check

make install

 

cd $HOME/local/work

wget -O - http://ftp.gnu.org/gnu/gcc/gcc-4.8.3/gcc-4.8.3.tar.bz2 | bzip2 -dc | tar xf -

mkdir gcc-build

cd gcc-build

../gcc-4.8.3/configure --enable-languages=c,c++,fortran --prefix=$HOME/local/gcc --with-gmp=$HOME/local/gcc --with-mpfr=$HOME/local/gcc --with-mpc=$HOME/local/gcc --with-stage1-ldflags="-
Wl,-rpath,$HOME/local/gcc/lib" --with-boot-ldflags="-Wl,-rpath,$HOME/local/gcc/lib" --with-multilib-list=m64 --program-suffix=46

make -j2

ここで、

msgfmt -o de.mo ../../../../gcc-4.8.3/libstdc++-v3/po/de.po

が、セグメント違反なエラーでコンパイル停止。

$HOME/local/bin/msgfmtでは無く、/usr/bin/msgfmtを使うように変更し、再び、make -j2

make install

 

ld.so.confの先頭に、$HOME/local/gcc/lib64を追加し、ldconfig実行

$HOME/.bash_profileのPATHの先頭に、$HOME/local/gcc/binを追加し、source $HOME/.bash_profileを実行

 

さらに、シンボリックリンクを張る。

ln -b -s $HOME/local/gcc/bin/gcc46 $HOME/local/bin/gcc
ln -b -s $HOME/local/gcc/bin/gcc-ar46 $HOME/local/bin/gcc-ar
ln -b -s $HOME/local/gcc/bin/gcc-nm46 $HOME/local/bin/gcc-nm
ln -b -s $HOME/local/gcc/bin/gcc-ranlib46 $HOME/local/bin/gcc-ranlib
ln -b -s $HOME/local/gcc/bin/gcov46 $HOME/local/bin/gcov
ln -b -s $HOME/local/gcc/bin/gfortran46 $HOME/local/bin/gfortran
ln -b -s $HOME/local/gcc/bin/c++46 $HOME/local/bin/c++
ln -b -s $HOME/local/gcc/bin/cpp46 $HOME/local/bin/cpp
ln -b -s $HOME/local/gcc/bin/g++46 $HOME/local/bin/g++

 

AWSのEBSダイエット

rsyncの以前にメモした方法では、うまくいっていない事が判明。

 

と。いう事で。

 

  1. ターゲットインスタンスを停止し、スナップショット(big-snap)を作成
  2. big-snapからボリューム(big-volume)を作成
  3. 減量させたボリューム(small-volume)も作成
  4. ターゲットインスタンスをスタート(他に活きているインスタンスが無かったので・・・)
  5. big-volumeとsmall-volumeを4のインスタンスへデタッチ
    big-volumeは、/dev/xvdf。small-volumeは、/dev/xvdg。ってな具合。
  6. ターゲットインスタンスにシェルログインし、rootになり、
  7. e2fsck -f /dev/xvdf
  8. resize2fs -M -p /dev/xvdf
    これをすると、blocksizeが表示されるので、この数字を使ってチャンクナンバー(ddのcount)を計算する。
    blocks * 4 / (chunk_size_mb * 1024) 切り上げで整数に。
    ちなみにchunk_size_mbは、16Mが推奨。(chunk_size_mb = 16)
  9. dd if=/dev/xvdf ibs=16M of=/dev/xvdg obs=16M count=チャンクナンバー(整数値)
  10. resize2fs -p /dev/xvdg
  11. e2fsck -f /dev/xvdg
  12. で。big-volumeとsmall-volumeをデタッチ
  13. samll-volumeのスナップショットをとり、そのスナップショットからイメージ(AIM)を作成
  14. 作ったAIMをLaunch。(CPUは、ターゲットインスタンスを参照し、キメ打ち)

で。ダイエット版がブートしました。

 

none rootなlinuxへrtorrent導入メモ

ターミナル操作ができるホスティングサービスなarvix。yumできれば、amazonいらずかもな感もあるが、そうは問屋が卸さない。

 

久しぶりのconfigureで、make、installな試行錯誤を繰り返したので、メモ。

 

gccのバージョンが古く、c++11周りのエラーで素直にインストールできなかった。

結局、autoconf、cppunitから--prefix=$HOME/localへmake install。

rtorrentとlibtorrentのソースは

http://libtorrent.rakshasa.no/ の tar.gzを展開(gitのほうでは何故かうまくいかず・・・)

make checkで不気味なエラーも表示されるが、とりあえずこれでrtorrentしたら動いた。

(設定はこちらを参照)

 

まだまだ課題が残るが。。。ってな事で、メモを。