Windows7のパーティションを拡張する(暫定)
最近はWordPressのほうでblogっぽいことをやっているので、はてなの記事の更新が止まっていますが、久しぶりにコメントがありましたので記事を書いていますw
前置き
問い合わせがあったのでWindows7のインストールに使った領域の解放~Windows領域の拡張までを実際に行なってみました。
とりあえずWindowsの標準機能で実現可能のようです。
対象者
以前紹介したやり方でWindows7をインストールした方で、Installer領域を活用したい方。
つまり、↓↓こんな感じ↓↓のことがやりたい方。
手順
- Installer領域が非ブート、非アクティブであることを確認する
具体的には、[コンピュータの管理] → [ディスクの管理] でInstaller領域のStatusが "正常 (プライマリ パーティション)" であることを確認する。
この辺りはブートローダが移っていれば大丈夫だと思います。 - 解放したいパーティション(図ではFドライブ)を選択して、右クリックから "ボリュームの削除" を選択
- 確認のダイアログが出るので問題なければ "はい" で進む
- Fドライブが "未割り当て" になる
- 拡張したいパーティション(図ではCドライブ)を選択して、右クリックから "ボリュームの拡張" を選択する
- ウィザードが開始されるのでそれに従う
- Cドライブの領域が拡張されたことを確認する
余談
恐らくInstaller領域の状態が "正常 (プライマリ パーティション)" であれば一般的なパーティションとシステムからは見られているのでボリュームの削除は普通にできると思いますが、ポップアップメニューで選択できない場合は、EaseUS Patition Master などツールを使ってパーティションの削除・拡張を行なったほうがいいかもです。
経験上、EaseUS Patition Master は結構安定して使えるツールで、追加でLinuxなどをインストールしたいときなどパーティションの調整でよく使っていますw
なお、パーティションの操作は常に危険と隣り合わせなのでやる時は自己責任でお願いします。
冬イベはじめました。その3
E1海域のラスダン~周回(クリア後の掘り)について言及しています。
輸送ゲージが0になるとMAPの形が少し変わります。進行ルート的には空母マスを必ず通ることになるので最後は潜水艦編成で攻略したほうがよいです。先制雷撃の手数が多いほうが事故率が下がるので6隻編成がよいでしょう。
E1とE3は札が共通していて、E2では潜水艦を使わないのでここで主力を投入しても問題なさそうです。ただし、練度の低い潜水艦(サブ)でも十分クリアできるのでそこはお好みで。
ルートとしては、GLMDCBEHINと進みます。基地航空隊はBマスに集中させ、軽巡と駆逐艦が残ったらお祈りで。
ゲージ破壊後はNマスで弾薬を拾えるようになります。高速仕様(タービン+缶)の潜水艦を編成に入れることにより、GDCFBEHINと進むことができます。Fマスで燃料を拾えてエコですが、火力がやや不足気味になります。
先制爆雷できる艦が3隻いる場合は、軽巡1駆逐3雷巡1水母1でGDABEHINと進んだほうが掘りが安定しそうです。この場合、雷巡1は重巡1にしても大丈夫です。(Bマスでリ級が残ったときの事故対策)
冬イベはじめました。その2
艦これ冬イベE1海域に関する記事になります。
E1海域は、通常艦隊出撃による輸送作戦です。
この海域には、ボスキャラっぽいの(潜水棲姫)はIマスにいるけどボスはいないので、1-6みたいな感じでゴールマス(Kマス)に辿り着ければゲージを減らすことができます。ゆえに例えIマスで大破艦が出てしまっても進撃させることが可能です。
なお、TPが0まで減るとMAPに新たにマスが追加されて難易度が上がるので、掘りを行なう場合は輸送ゲージを残した状態でIマスで撤退するのが上策です。
潜水艦(4~6隻)を使えばかなり簡単にクリアできますが、掘りも兼ねて水上艦の編成でクリアしていきます(乙作戦)。なお、丙作戦での掘りの結果は最後のほうに記しておきます。
GCEHJの各マスは戦闘にならないので、Dマス(空襲)、A, Iマス(対潜)、Bマスが戦闘マスです。水上艦編成でも乙作戦と丙作戦とでは進行ルートが異なり、乙だとGDABEHIJKと進み、丙だと1戦少ないGDCBEHIJと進みます。掘りで周回する場合は、丙作戦のほうがやりやすいと思います。
DマスやAマスでワンパン事故がある可能性があるため、防空CI装備や先制爆雷できる艦がいるとよいでしょう。
自分は以下の編成で攻略と掘りを進めています。
Dマスで航空優勢となるように軽空母に艦戦を、IマスでのS勝利するために対潜装備と彩雲を配備。編成が軽すぎると撃ち損ねて雷撃をもらったりするので重巡や雷巡を入れています。朝潮改二では先制爆雷できませんが、先制爆雷できる艦は3隻くらい欲しいところ。
この編成でのTPは10なので、クリアするまで11回出撃しないといけません。(ちなみに潜水艦編成のほうがTPが高い)
Iマスでレア艦がドロップします。堀りの結果(ドロップ順)を以下に記します。
浜風、浦風、U511、吹雪、吹雪、文月、綾波、睦月、叢雲、朧、鹿島、朧、如月、睦月、伊58、曙、浜風、白雪、瑞穂、川内、伊58、天龍、如月、白雪、伊26、磯波、伊19、瑞穂、如月、磯風
MAP変化後(ラスダン)についてはその3で...
冬イベはじめました。その1
艦これの2017年冬イベントの記事になります。
【偵察戦力急展開!「光」作戦】ということで、ある程度の情報が出揃ってきていますが、3海域の小規模な作戦で潜水艦や神風型が活躍しそうな雰囲気です。
甲種勲章を集めているわけでもなく、甲作戦のクリア報酬に目ぼしいものがあるわけでもないので【乙乙乙】でクリアを目指そうと思います。
海域 | 難易度 | |
甲 | 乙 | |
E1 | 瑞雲(六三一空)、間宮、伊良湖x3、箪笥、補強増設 | 瑞雲(六三一空)、伊良湖x2、箪笥、補強増設 |
E2 | 望遠鏡、熟練搭乗員、洋上補給x3、勲章、松風 | 望遠鏡、洋上補給x2、勲章、松風 |
E3 | 甲種勲章、勲章x2、回収資材x8、彩雲(東カロリン空)、伊14 | 勲章x2、回収資材x5、彩雲(東カロリン空)、伊14 |
出撃制限札は2枚で、E1E3共通で作戦部隊の札とE2の海上護衛部隊の札。
新実装艦は、報酬で「松風」「伊14」、ドロップで「藤波」「伊13」。
イベント期間は、2/11(土)~2/28(火)午前中を予定。
バナーキャラが「伊58」「伊8」「伊401」だったので温存しておこうと思ったのですが、E2では潜水艦は使わないっぽい+E1E3の札は共通+E1は潜水艦を使うと簡単、ということでE1から使ってもよさそう。
今回は札数が少ないので編成を考えるのに困ることはなさそうです。
E1: 輸送作戦【通常艦隊】
E2: 輸送作戦【連合艦隊】
E3: 輸送作戦【通常艦隊】+殲滅作戦【連合艦隊】(Wゲージ)
E3にはなにやらギミックがあるらしく、前回のE4とE5を足して2で割ったようないじらしさがありそうです。
その2へ続く...
RPi3カーネルビルド再び...
前回のカーネルビルドから半年近く経ちましたが、Raspberry Pi Zero(未入手)に無線LANアダプタを付けることを想定して、代替的にRPi3でカーネルビルドを行ないました。
ところが、以前書いた手順に従っても上手くいかなかったのでカーネルビルドの新解釈を今回は記そうと思います。
結論
カーネルビルドは --jobs=2(-j2)で行なうべし。
エラーが出る場合は並列化オプションを外すべし。
いきさつ
過去記事の手順を見て、カーネルビルドを進めていったのだけど、make -j4 zImage modules dtbs でerrorとなってしまった。
そこでRaspberry Pi 公式ページにある手順でやってみたのだけどやはり、make -j4 zImage modules dtbs のところで同様のerrorが出た。
エラーログ(クリックして展開)
CC [M] fs/nilfs2/recovery.o
CC [M] fs/nfsd/nfs4state.o
CC [M] fs/nls/nls_cp950.o
CC [M] fs/nls/nls_cp1250.o
CC [M] fs/nls/nls_cp1251.o
CC [M] fs/nilfs2/the_nilfs.o
CC [M] fs/nls/nls_iso8859-1.o
CC [M] fs/nls/nls_iso8859-2.o
CC [M] fs/nls/nls_iso8859-3.o
CC [M] fs/nls/nls_iso8859-4.o
CC [M] fs/nilfs2/segbuf.o
CC [M] fs/nls/nls_iso8859-5.o
CC [M] fs/nls/nls_iso8859-6.o
CC fs/nfs/nfsroot.o
CC [M] fs/nls/nls_iso8859-7.o
CC [M] fs/nilfs2/segment.o
CC [M] fs/nls/nls_cp1255.o
CC [M] fs/nls/nls_iso8859-9.o
CC fs/nfs/sysctl.o
CC [M] fs/nls/nls_iso8859-13.o
CC [M] fs/nls/nls_iso8859-14.o
CC [M] fs/nls/nls_iso8859-15.o
CC [M] fs/nls/nls_koi8-r.o
CC fs/nfs/fscache.o
CC [M] fs/nls/nls_koi8-u.o
CC [M] fs/nls/nls_koi8-ru.o
CC [M] fs/nfsd/nfs4idmap.o
CC [M] fs/nls/nls_utf8.o
LD fs/nls/built-in.o
CC fs/nfs/fscache-index.o
CC [M] fs/nfsd/nfs4acl.o
CC [M] fs/nilfs2/cpfile.o
CC fs/nfs/nfs2super.o
CC fs/nfs/proc.o
CC [M] fs/nfsd/nfs4callback.o
CC [M] fs/nilfs2/sufile.o
CC fs/nfs/nfs2xdr.o
CC fs/notify/fsnotify.o
CC [M] fs/nfsd/nfs4recover.o
CC fs/notify/notification.o
CC [M] fs/nilfs2/ifile.o
CC fs/nfs/nfs3super.o
CC [M] fs/nilfs2/alloc.o
CC fs/notify/group.o
CC fs/nfs/nfs3client.o
LD [M] fs/nfsd/nfsd.o
CC fs/nfs/nfs3proc.o
CC fs/notify/inode_mark.o
CC fs/notify/mark.o
CC [M] fs/nilfs2/gcinode.o
CC [M] fs/nilfs2/ioctl.o
CC fs/notify/vfsmount_mark.o
LD fs/ntfs/built-in.o
CC fs/nfs/nfs3xdr.o
CC [M] fs/ntfs/aops.o
CC fs/notify/fdinfo.o
CC fs/notify/dnotify/dnotify.o
CC [M] fs/nilfs2/sysfs.o
LD fs/notify/dnotify/built-in.o
CC fs/notify/fanotify/fanotify.o
CC fs/nfs/nfs3acl.o
CC fs/notify/fanotify/fanotify_user.o
CC [M] fs/ntfs/attrib.o
LD [M] fs/nilfs2/nilfs2.o
CC fs/notify/inotify/inotify_fsnotify.o
LD fs/notify/fanotify/built-in.o
CC fs/notify/inotify/inotify_user.o
CC fs/nfs/nfs4proc.o
CC [M] fs/ntfs/collate.o
CC fs/nfs/nfs4xdr.o
LD fs/notify/inotify/built-in.o
LD fs/notify/built-in.o
CC fs/nfs/nfs4state.o
CC [M] fs/ntfs/compress.o
fs/nfs/nfs4xdr.c: In function ‘nfs4_xdr_enc_link’:
fs/nfs/nfs4xdr.c:2187:1: internal compiler error: Segmentation fault
}
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
CC [M] fs/ntfs/debug.o
CC [M] fs/ntfs/dir.o
LD fs/ocfs2/built-in.o
CC [M] fs/ocfs2/alloc.o
CC [M] fs/ntfs/file.o
CC [M] fs/ntfs/index.o
The bug is not reproducible, so it is likely a hardware or OS problem.
scripts/Makefile.build:258: recipe for target 'fs/nfs/nfs4xdr.o' failed
make[2]: *** [fs/nfs/nfs4xdr.o] Error 1
scripts/Makefile.build:403: recipe for target 'fs/nfs' failed
make[1]: *** [fs/nfs] Error 2
make[1]: *** Waiting for unfinished jobs....
CC [M] fs/ntfs/inode.o
CC [M] fs/ocfs2/aops.o
CC [M] fs/ocfs2/blockcheck.o
CC [M] fs/ntfs/mft.o
CC [M] fs/ocfs2/buffer_head_io.o
CC [M] fs/ntfs/mst.o
CC [M] fs/ocfs2/dcache.o
CC [M] fs/ocfs2/dir.o
CC [M] fs/ntfs/namei.o
CC [M] fs/ocfs2/dlmglue.o
CC [M] fs/ntfs/runlist.o
CC [M] fs/ocfs2/export.o
CC [M] fs/ocfs2/extent_map.o
CC [M] fs/ntfs/super.o
CC [M] fs/ntfs/sysctl.o
CC [M] fs/ocfs2/file.o
CC [M] fs/ocfs2/heartbeat.o
CC [M] fs/ocfs2/inode.o
CC [M] fs/ocfs2/ioctl.o
CC [M] fs/ntfs/unistr.o
CC [M] fs/ntfs/upcase.o
CC [M] fs/ocfs2/journal.o
CC [M] fs/ntfs/bitmap.o
CC [M] fs/ocfs2/localalloc.o
CC [M] fs/ntfs/lcnalloc.o
CC [M] fs/ocfs2/locks.o
CC [M] fs/ocfs2/mmap.o
CC [M] fs/ntfs/logfile.o
CC [M] fs/ocfs2/namei.o
CC [M] fs/ocfs2/refcounttree.o
CC [M] fs/ntfs/quota.o
CC [M] fs/ocfs2/reservations.o
CC [M] fs/ntfs/usnjrnl.o
LD [M] fs/ntfs/ntfs.o
CC [M] fs/ocfs2/move_extents.o
CC [M] fs/ocfs2/resize.o
CC [M] fs/ocfs2/slot_map.o
CC [M] fs/ocfs2/suballoc.o
CC [M] fs/ocfs2/super.o
CC [M] fs/ocfs2/symlink.o
CC [M] fs/ocfs2/sysfile.o
CC [M] fs/ocfs2/uptodate.o
CC [M] fs/ocfs2/quota_local.o
CC [M] fs/ocfs2/quota_global.o
CC [M] fs/ocfs2/xattr.o
CC [M] fs/ocfs2/acl.o
CC [M] fs/ocfs2/stackglue.o
CC [M] fs/ocfs2/stack_o2cb.o
CC [M] fs/ocfs2/stack_user.o
LD fs/ocfs2/cluster/built-in.o
CC [M] fs/ocfs2/cluster/heartbeat.o
CC [M] fs/ocfs2/cluster/masklog.o
LD fs/ocfs2/dlm/built-in.o
CC [M] fs/ocfs2/dlm/dlmdomain.o
fs/ocfs2/dlm/dlmdomain.c: In function ‘dlm_unregister_domain’:
fs/ocfs2/dlm/dlmdomain.c:691:6: internal compiler error: Segmentation fault
void dlm_unregister_domain(struct dlm_ctxt *dlm)
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
CC [M] fs/ocfs2/cluster/sys.o
CC [M] fs/ocfs2/cluster/nodemanager.o
fs/ocfs2/xattr.c: In function ‘ocfs2_xattr_set’:
fs/ocfs2/xattr.c:3659:1: internal compiler error: in pre_and_rev_post_order_compute, at cfganal.c:1022
}
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
LD fs/ocfs2/dlmfs/built-in.o
CC [M] fs/ocfs2/dlmfs/userdlm.o
CC [M] fs/ocfs2/dlmfs/dlmfs.o
CC [M] fs/ocfs2/cluster/quorum.o
The bug is not reproducible, so it is likely a hardware or OS problem.
scripts/Makefile.build:258: recipe for target 'fs/ocfs2/dlm/dlmdomain.o' failed
make[3]: *** [fs/ocfs2/dlm/dlmdomain.o] Error 1
scripts/Makefile.build:403: recipe for target 'fs/ocfs2/dlm' failed
make[2]: *** [fs/ocfs2/dlm] Error 2
make[2]: *** Waiting for unfinished jobs....
CC [M] fs/ocfs2/cluster/tcp.o
CC [M] fs/ocfs2/cluster/netdebug.o
LD [M] fs/ocfs2/dlmfs/ocfs2_dlmfs.o
LD [M] fs/ocfs2/cluster/ocfs2_nodemanager.o
The bug is not reproducible, so it is likely a hardware or OS problem.
scripts/Makefile.build:258: recipe for target 'fs/ocfs2/xattr.o' failed
make[2]: *** [fs/ocfs2/xattr.o] Error 1
scripts/Makefile.build:403: recipe for target 'fs/ocfs2' failed
make[1]: *** [fs/ocfs2] Error 2
Makefile:961: recipe for target 'fs' failed
make: *** [fs] Error 2
試しに並列化オプションを外してmakeしてみると、時間はかかるが正常に終了する(公式手順)。『それならば、2並列(make -j2)ならどうか?』と思いやってみると、ログは飛び飛びに出力されてきますが並列化しないmakeのログと比較してみると内容は一致していて正常に終了しています。
というわけで、カーネルビルドの手順を以下にまとめます。
手順詳細
- カーネルビルドに必要なパッケージを導入する。
# apt-get update
# apt-get install git bc - 適当なディレクトリを作り、githubからカーネルソースを入手する。
$ mkdir ~/kernel
$ cd ~/kernel
$ git clone --depth=1 https://github.com/raspberrypi/linux - カーネルビルドの準備をする。
$ cd linux
$ KERNEL=kernel7
$ make bcm2709_defconfig - カーネルビルドする。(100分近くかかります)
make -j2 zImage modules dtbs
ログを残して時間計測をしたい場合は次のように書く
time make -j2 zImage modules dtbs 2>&1 | tee make.log - カーネルをインストールする。(以降は前回の記事と同様)
# make modules_install - dtbを書き換える。
# cp -v arch/arm/boot/dts/*.dtb /boot/
# cp -v arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
# cp -v arch/arm/boot/dts/overlays/README /boot/overlays/ - カーネルイメージを書き換える。
# cp -v /boot/kernel7.img /boot/kernel7.img.old
# scripts/mkknlimg arch/arm/boot/zImage /boot/kernel7.img - 再起動する。
参考Webページ
Raspberry Pi3 で I2Cセンサーを使う
Raspberry Pi3(RPi3)でI2Cを使うときのメモです。
秋月電子通商でIRセンサー(赤外線で距離を測るセンサー)を注文したのだけど、どうやってRPi3で使うんだ?ということになりました。
下調べの段階で、UARTではラインが占有されてしまうのでI2Cのほうがよいということで、I2Cに対応したセンサーを注文していました。
http://akizukidenshi.com/catalog/g/gI-07547/
以下にRPi3で使うための手順を示します。
- RPiを起動し、i2cを有効にする。
$ sudo raspi-config
TUIが起動するので、[7 Advanced Options] -> [A7 I2C] と進む - 一応、RPi3を再起動する。
- aptより、i2c-toolsとlibi2c-devパッケージを入れる。
$ sudo apt-get update
$ sudo apt-get install i2c-tools libi2c-dev - 一度、RPi3をシャットダウンする。
- 次のように、GP2Y0E03とRPi3を接続する。(ブレッドボードで行なうとよいでしょう)
- RPi3を起動し、i2cdetectコマンドでセンサー(初期アドレスは0x40)を認識できるか確認する。
$ sudo i2cdetect -y 1 - I2Cプログラムを書いて動作を確認する。(参考Webページのプログラムで確認できました)
「I2Cでセンサーを繋ぐときに、プルアップしなくていいの?」という疑問があったのですが、RPi3の 3, 5ピン(SDA, SCL)はオンボードで1.8 [kΩ] でプルアップされているっぽいので、直接結線すればいい感じです。
Schematics - Raspberry Pi Documentation
よりAdvancedなことは機会があれば書きます。
参考Webページ
makeするときはログを残そう
makeに限った話ではないけど、コマンドの結果(出力&エラー出力)をじっくり見たい、もしくは昔の結果を参照したいという時がある。
特にカーネルビルドでmakeするような場合、何もしなければ膨大の結果がスルスルっとターミナル上を流れていってバッファを遡れなくなってしまう。これだと途中でwarningなどがあっても気付くことができない。(errorなら途中でmakeが止まるでしょう)
ならばどうすればログを残せるのか?
どうやら、標準出力と標準エラーをteeコマンドにパイプすればよさそうです。
# make 2>&1 | tee make.1.log