Quantcast
Channel: ぱぎーのブログ
Viewing all 286 articles
Browse latest View live

第7章♪ 第3回 Windows Update for Windows 10 Insider Preview

$
0
0
17682のインストールが完了しましたが、現在既知の問題に遭遇しました。
起動時にCritical Process Diedに遭遇しました。1度再起動すればなおります。

イメージ 1

それ以外は概ね問題なく動いています。
今回はここまでにします。
では、また。

第7章♪ 第3.5回Windows Update for Windows 10 Insider Preview

$
0
0
今日も新しいビルドがリリースされました。
Announcing Windows 10 Insider Preview Build 17692
今回は、Edgeの向上、「簡単動作」の向上、ナレーターの向上、ゲームバー、ゲームモードの向上、検索の向上、MRの向上があります。


既知の問題(一部)
・ログインメソッドにピクチャーパスワードを使っている場合、クラッシュすることがある問題
・17655以降のビルドでないと17692を受け取れない問題
・Surface Studioで17682、17686、17692にビルドアップデートできない問題


今回はここまでにします。
では、また。

GentooのSystemd-bootではまった

$
0
0
最近、全く記事が更新できていないこの頃ですが、Gentooを使い始めました。
今回は、GentooでSystemdでインストールする時に少々つまってしまったところを紹介します。
現在はArch Linuxを使っていて、Gentooをやってみたらいいのではないかとのお誘いが来たので(学校の先輩から)やってみました。
インストールするところは、割愛します(既にいろんな方がやっているので)。
Systemd-bootを使用するには、SystemdのUSEフラグにgnuefiを追加して

emerge -auDN @world

(うどんワールド)を行うだけです。
そしたらESPがFAT32で/bootマウントされているかを確認し

bootctl install

を実行します。
ここで、machine-idがないと言われたら

systemd-machine-id-setup

を実行して

bootctl install

を実行します。
そうしたら、/boot/loader/loader.confを編集します。
そして、/boot/loader/entries/gentoo.confを作成して以下のように編集しました。

title Gentoo Linux
linux /vmlinuz-(version)-gentoo
initrd /initramfs-genkernel-x86_64-(version)-gentoo
options root=PARTUUID=(PARTUUID) rw

そして再起動しいざ起動するも、「あれ?起動しないぞ?」となってしまいました。
以下の画像のようなエラーが出て止まってしまいます。

イメージ 1


/dev/sda2と入力したら正常に起動できたので、一旦gentoo.confの設定を以下の通りに変更しました。

title Gentoo Linux
linux /vmlinuz-(version)-gentoo
initrd /initramfs-genkernel-x86_64-(version)-gentoo
options root=/dev/sda2 rw

この設定では正常に起動できました。
しかし、この指定方法ではHDDの環境が変わってしまったら起動できなくなってしまいます。
わざわざ/dev/sda2を/dev/sdb2や/dev/sdc2と変更するのはなかなか面倒です。
というか起動できないので変更のしようがないです。
何とかしてパーティションの固有値で起動させたかったので調査することにしました。
するとあるページを見つけました
Booting with PARTUUID for root device
このページによると


UPDATE I discovered I am able to boot using a UUID using this boot entry

So it seems my problem is that I am able to boot using root=UUID=x but not when using root=PARTUUID=y




追記
私はこのブートエントリにUUIDを使用すると起動できることを発見しました。

なので、私と同じ問題と思われる問題ではroot=UUID=xを使うと起動できますが、root=PARTUUID=yでは起動できないようです。


とのことなので早速gentoo.confを編集しました。

title Gentoo Linux
linux /vmlinuz-(version)-gentoo
initrd /initramfs-genkernel-x86_64-(version)-gentoo
options root=UUID=(UUID) rw

このようにしてようやく起動できようになりました。

Skip Aheadリングにします!

$
0
0
久しぶりのWindows 10 Insider Previewの記事です。
ここで突然の発表ですが、Windows Update for Windows 10 Insider Previewは、前回(第7章、3.5回)で定期的に更新することを終了させていただきます。
理由は週1ペースで更新するのがただめんどくさいからです。また、英語を読むのが辛く、Google翻訳だと意味不明な翻訳になるからです。
これからは気になった機能などあれば更新する次第です。(要するに不定期化)
お知らせはここまでにして、今回からWindows 10 Insider Previewの更新リングをSkip Aheadに設定しました。
RS3や、RS4の時もSkip Aheadを選択していましたが、私がミスをおかしてしまったため、Fastリングに戻されました。
何をしてしまったのかというと、ビルドが更新できないため、強制的にクリーンインストールで更新したところ、Slowリングになっていて、そこからFastに戻し、Skip Aheadを選択したら、定員オーバーで戻されるということをおかしました。
今回は間違ってもクリーンインストールをしないようにしたいと思います。
今回は今回はここまでにします。
では、また。

※今回はクリーンインストールしたことによって起こったことですが、消してクリーンインストールがいけないことではありません。システムが壊れたときには、クリーンインストールは有効です。

Windows 10 October 2018 Updateロールアウト再開について

$
0
0
お久しぶりです。
なかなか記事を更新できませんでしたが、久しぶりに投稿です。
今回、Windows 10 October 2018 Updateで起こっていた問題をご存じでしょうか?
その問題は、Windowsのアップグレード時にファイルが消失するといったもので、この問題の原因は、Known Folder Redirection(KFR)が有効になっていた環境で、リダイレクトもとにファイルが残っていた場合に起こる現象で、そのまま新しい場所に移動したときに、ファイルが消えるといったことが起きるようです。
そして、データ損失の修正を施したKB4464330をリリースし、そして、Windows 10 October 2018 Updateのロールアウトを再開しました。
現在は、このような事態は起こっていないので安心してOctober 2018 Updateにできます。
今回はここまでにします。
では、また。

WebKitのビルド時にNinjaのエラーが出る

$
0
0
今回、Gentoo の GNOME デスクトップを構築する際にハマったことを紹介します。
私は普段から Arch Linux では GNOME を使用しているのですが、前回、 Gentoo の Systemd-boot ではハマったことを紹介した際に Gentoo を使用し始めたと公言しました。
コンソール画面で作業するのもいいですが、やはりここはデスクトップ用途で普段使いをしたいため、デスクトップの導入は必須です。
Linux ではいろいろなデスクトップがはびこっています。
その中で、自分も使い慣れているし、人気No.1である GNOME を使いたいと思ったわけです。
(ちなみに KDE も使っている(ただし Unity 、お前はだめだ))
ぱぱっと USE フラグを設定し、 emerge をしました。
やはりデスクトップ環境を整えるには、たくさんのパッケージをコンパイルしなければならず、その数およそ400個にも及びました。
もうそのような数になると、バイナリパッケージとコンパイルではかかる時間が太陽と地球ぐらいの差が出ます。(マシンパワーにもよるがバイナリパッケージでは約10〜30分程度、コンパイルにかかる時間は4〜12時間程度(←「時間」だよ「時間」))
その中で一際目立つのは net-libs/webkit-gtk 。実はこれ、ちゃちい PC でコンパイルしようとするならば6時間以上かかります。(←もう草しか生えないわ!)
驚くことにこいつのコンパイルとなるとメモリをばかさか食う大食漢ですw
今回はこいつのコンパイルを取り扱おうと思います。
では、私の PC の WebKit のビルドに関わる大まかなスペックを紹介します。
Intel Core i7-4700MQ (4コア/8スレッド)
8GB(DDR3L SDRAM/SO-DIMM 8GB)
これで最初、 gnome-base/gnome グループをコンパイルしていました。
難なく完了すると思いましたが、 net-libs/webkit-gtk になってしばらくすると状況は一転、進んでいるのか止まっているのかわからない状況になりました。
どういうことかというと、カーソルは点滅、ただし、コンパイルしているソースの部分は変わらず、 tty 切り替えが反応せず。
といった状況でした。
しばらく待っていると、赤い「*」とコンパイル失敗を示す文字が現れました。
最初は全く状況がわからず、ずっと悩んでいたのですが、ある日、私の使っている他のディストリビューションでコンパイルを行ってみてはどうかという結論にいたり、そこでエラーの再現を行うことにしました。
そこで使ったのが Arch Linux です。
Arch Linux で「virtual memory exhausted: Cannot allocate memory」というエラーが出たので、メモリ 8GB では余裕で枯渇してしまうことがわかり、メモリ問題はスワップファイル作成で解決しようと思いましたが、ここでまた問題が発生したのです。
なんと、私の使っているファイルシステムが btrfs だったのです。
代わりの方法として、 /dev/loop* を一時的なスワップファイルとして使うことにしました。
とりあえず、 /dev/loop0 を一時的なスワップファイルとして使用します。
まず適当なディレクトリ(ただし / や、 /dev/sda* は除く)に /dev/zero デバイスの情報を書き込みます。

dd bs=1M if=/dev/zero of=/swap count=16384

これで、 16GB のスワップファイルのもとになるディレクトリが完成しました。
そしてそれを /dev/loop0 にマウントしていきます。

losetup /dev/loop0 /swap

そして /dev/loop0 にスワップファイルを生成します。

mkswap /dev/loop0
swapon /dev/loop0

これで、 /dev/loop0 にスワップファイルを生成できました
そしてこれで WebKit のコンパイルに再挑戦しました。
ですが、エラーは出なくなったものの、今度はスワップファイルを作成したときよりも長時間進まなくなってしまいました。
tty 切り替えもうまく行かなかったので、もしやコンパイル中に PC がフリーズしているのではないかと思いました。
よく PC がフリーズする原因は、 CPU 使用率が何らかの原因で 100% になる。ということで起きます(一例)。
今回過剰な並列コンパイルが原因と見て、並列コンパイル数を 9→5 に変更してみました。
そうしたら、普通にコンパイルが完了し、通常通り使えるようになりました。
最後に、今回の Ninja のエラーは2つの要因で起きていることがわかりました。
1つ目

swap — [不定] 
歴史的に、物理メモリの容量の2倍のスワップパーティションを用意するべきという一般法則がありました。より大容量のメモリがコンピュータに積まれるようになり、この法則はすでに現状にあてはまりません。メモリが 512 MB 以下のマシンでは、2倍ルールが基本的に適合します。大容量のメモリ(1024MB 以上)を積んでいるときは、スワップパーティションは小さく、または作らなくてもかまわないでしょう。2GB 以上の物理 RAM を持っているなら、スワップパーティションがないほうが一般的に良いパフォーマンスを発揮すると思われます。


このように 2GB の RAM を積んでいるマシンでは、スワップパーティションを作らない方がいいパフォーマンスを発揮できると言われています。これは正しいことです。
ディスクの IOPS などを考えると、ディスクに退避させるより、メモリ上で完結させるほうが遥かに高速です。
ですが、メモリのデータの収容能力を超えて処理したらどうでしょう?
仕方なくディスクに退避させるしか方法はないわけです。
そのためにスワップパーティションを作れというのかというとそうも行きません。
そのためだけに作るのはいかがなものかと思います。
だから、スワップファイルという仕組みが存在します。
結局何が言いたいのかというと、いくら物理メモリが多くても、スワップが必要になることはあるということで、今回がその例です。
2つ目

MAKEOPTS変数は、パッケージのインストール時にどれだけ並行してコンパルを走らせるかを定義します。CPU数(コア数)プラス1を選択するのがよい選択とされていますが、ガイドラインは常に最良とは限りません。


同時コンパイルを可能にする MAKEOPTS 変数ですが、普段は倫理コア数(スレッド数)+1が最良と言われていますが、書かれている通りこれが最良とは限りません。
用途に応じて増やす or 減らすなどの判断をすることのほうが大切なわけです。
パッケージによっては、ガイドラインより増やしたほうがより早く処理ができるでしょう。逆にガイドラインよりも減らしたほうがいい場合もあります。
今回の例でもありますが、極端に増やした場合、 CPU の処理が間に合わず、フリーズして失敗することもあります。

今回のことについては、スワップはときに重要になることと、並列コンパイルはコンパイルするパッケージ毎に臨機応変に変えていくことが理想です。
しかし、並列コンパイルをパッケージ毎に変えるというのは、そこそこ現実味がないので、ガイドラインで定められているのだと思います。
みなさんもこういったことにはくれぐれも気をつけていただきたいものです。
今回はここまでにします。
では、また。
Viewing all 286 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>