Windows 10でシャットダウンできない問題を回避
はじめに
Windows 10 (ver 1511)をAniversary Update (ver 1607)にアップデートすると、シャットダウンができないという問題が起きました。一度電源が切れるものの、2秒くらい経つとすぐに再起動する現象が発生。
おそらくドライバー等の問題ではないかと思い、いろいろと試す(高速スタートアップの無効化、デバイスによる電源管理の無効化 etc)も効果なし。
そのうちWindowsが対応してくれるだろうと思い、放置していましたが、Creators Update (ver 1703), Fall Creators Update (ver 1709)にしても改善せず…。
解決策
ver 1511のサポートも切れるので、セキュリティ的によろしくないと思い、再度挑戦。
これまで試した対応策の中に「接続されているUSB機器を抜く」というのがありました。これももちろんやったのですが、もしかしてネットワークケーブル?と思い、恐る恐るこれを抜いてシャットダウンすると…
再起動しない!!
まさかそこだったとは…。実は使っているパソコン(マウスコンピューター)は拡張カードで有線LANを設置しているのですが、これが原因でした(インテルギガビットLANアダプター)。
オンボードのLAN口を使えば、再起動しなくなり、無事解決しました。だいぶ時間(とお金:増設代)を無駄にしましたが、とりあえず一件落着。
2018/05/25追記
3,4ヶ月ほど順調だったのちに再発しましたが、その対応策を書きました。
WordPressでSFTPを設定する
はじめに
サーバーがSFTPにしか対応していない場合、WordPressのプラグインをブラウザ経由ではインストールすることができません(FTP、FTPSのみがデフォルトで対応しているため)。SFTP対応のプラグインを手動でインストールすることで、この問題は解決します。
対応策
(1)
プラグインをダウンロードします。例えば:
SSH SFTP Updater Support — WordPress プラグイン
など。
(2)
ローカル上で解凍し、ssh-sftp-updater-supportというフォルダ(バージョンのあるフォルダ(例:ssh-sftp-updater-support.0.7.1)のひとつ下の階層にあります)をwp-contents/pluginsというフォルダにアップロードします。
(3)
WordPressの管理画面から「プラグイン」を選び、有効化します。
(4)
他のプラグインをインストールする際、次のような画面が現れます。SSH2を選択し、上方のユーザー名とパスワードを入力します。この際、WordPressのユーザー名ではなく、サーバーにログインするユーザー名とパスワードが必要になるので注意してください。
起動しなくなったWindows10からUbuntuでファイルを救出する
はじめに
急にWIndows 10が起動しなくなりました。以前(かなり前ですが)Linuxをつかって救出したことがあったのですが、今回はエラーが出てうまくいかず…。
エラーは簡単に言うと、Windowsのあるディスクにアクセスできない、というもの(error mounting /dev/sdb1 at ...などのように出てきます)。
これはどうやらWindowsの高速起動なるもののためにディスクが「休止状態」になり、そのため「使用中」と判断されてLinuxからアクセスできない、ということのようです。
対策
(1) LinuxのDVDをつくる
今回はUbuntuを使います。詳細については「Ubuntu データ救出」などで調べたらたくさん出てきます。
まずはISOファイルをウェブからダウンロード、それをDVDに焼きます。そしてこのDVDからコンピューターを起動する、ということになります。
(2)コンピューターの起動優先順位を変える
BIOSを起動し(電源入れてすぐにF2、F10、F12あたり(コンピューターによって異なります)を連打)、BootメニューからPriorityを変更します。Windowsのあるディスクが一番になっていると思いますが、これをCD/DVDのデバイスよりも下にします。
(3)DVDからUbuntuを起動する
BIOSを終了すると、DVDから起動します。ファイルを読み込むために起動には時間がかかりますので辛抱強く。
「Ubuntuを試す」を選択(重要!インストールにしたらファイルが全部消えます)して起動を待ちましょう。
(4)コマンドラインから入力する
左のバーのあたりにディスク一覧が表示されます。それをクリックすれば基本的にはアクセスできるはずなのですが、前述の通りマウントエラーができました。エラーコードからWindowsのある場所の名前を取得しましょう。dev/sda1などとなっているはずです(ディスクの配線によって数字やアルファベットがわかります。sdb1, sda2など)。
そこで、コマンドラインから強制的に読み取り専用のアクセス権を取得します(書き込みは不可)。まず、Ctrl+Alt+Tでターミナルを起動、次のコマンドを入力。
sudo mkdir /media/ubuntu/PC
#マウントする先を作ります
sudo mount -t ntfs-3g -o ro /dev/sda1 /media/ubuntu/PC
#さきほど作った場所にdev/sda1を読み取り専用でマウントします
【参考】UbuntuでWindowsの休止状態のNTFSボリュームをマウントする - Qiita
(5)ファイルを選んでUSBメモリなどにコピーする
これでディスクにアクセスできるようになるので、必要なファイルをUSBメモリなどにコピーしましょう(Usersのなかのアカウント名ごとフォルダをコピーするのが早いかもしれません)。
Python (Jupyter)でファイルが読み込めない問題
エラーの内容
WindowsでPython (Jupyter)を使っている場合、ファイルを読み込む際に次のようなエラーが出ることがあります。
UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 0: illegal multibyte sequence
これは例えばutf-8のファイルを開くときに起きることがありますが、Windowsのデフォルトの文字コードではデコードできないというエラーです。
対処法
その対処法としてはcodecsを使って、encodingを指定して開くのが有効のようです。
# coding: utf-8
import codecs
f = codecs.open('jikken.txt', mode='a', encoding='utf-8') # 追加書き込みモードで開く
f.write("This is a pen.") #文字列をファイルに書き込む
f.close() #ファイルを閉じる