Windows Ubuntu openSUSE トリプルブート

はじめに

ゴミみたいな情報を大量に発信して申し訳ない。

「またか、お前は一体この数週間に何度データを削除しては環境構築をしているんだ?」

時間の浪費、ダメ絶対。 

何度もデータを消しているから、だんだんとデータを廃棄することが怖くなくなってきてしまっている。

やあ (´・ω・`)
ようこそ、バーボンハウスへ。
このテキーラはサービスだから、まず飲んで落ち着いて欲しい。
うん、「また」なんだ。済まない。
の顔もって言うしね、謝って許してもらおうとも思っていない。
でも、このタイトルを見たとき、君は、きっと言葉では言い表せない
「ときめき」みたいなものを感じてくれたと思う。
殺伐とした世の中で、そういう気持ちを忘れないで欲しい
そう思って、このブログを書いたんだ。
じゃあ、注文を聞こうか

 

Windowsをインストール

もう十分書いたと思うので省略。

efiの初期化とか、Linuxが含まれているファイルをフォーマットするなら以下の過去記事を参照。

 

heruwakame.hatenablog.com

 

 

 Ubuntuのインストール

これもLive USBの作成とか、ブート順序の設定等については省略。

HDDやSSDの容量に空きがないとLive USBを読み込みはしても、見慣れたデスクトップ画面になるまでは起動してくれないので、ちゃんとフォーマットして余裕を持たせておくこと。

パーティションで大事なのは、 /boot, /root, /homeをちゃんと設定してあげること。

ブートローダのインストール先を必ず/bootのディレクトリに設定すること。(もしかしたらWindows Boot Loaderでも大丈夫かも?)

あとはUbuntuが勝手にgrubとかを設定してくれる。

インストール終了後に再起動しないでターミナルを開き、 sudo update-grub とコマンドを叩くとWindowsLinuxを認識していることが確認できる。

再起動をすると、grubが表示されて、WindowsUbuntuかを選択することが可能になる。

 

openSUSEのインストール

基本的に流れに任せていい。

パーティションについては熟練者向けの設定なるところを参照してみるとわかるが、openSUSEはもとからあるWindows Boot Managerのところに/boot/efiを設定していて、「Windowsブートローダ上に上書きしちゃうの!?Ubuntuはどうなるの!」と冷や汗になったり、ともすると「ちーがーうーだーろー!」みたいな気分になるけれども、openSUSEちゃんのインストーラは優秀な秘書なので、このままで問題ない。(結果論)。

仕組みがさっぱりわからないのだが? Ubuntuで設定した /bootはどこへ行った? ゴミデータとして残るのか?

 

結論:よくわからんが動いた。(危ないやつ)

PyCharmのメニュー等日本語化設定について

日本語化については多分問題なく設定が見つかると思う。というかこれの通り。

IntelliJ や PhpStorm などの日本語化

JetBrains社のドキュメントに従ってインストールしたのであれば、PyCharmやIntelliJ IDEAのbinフォルダは /opt/ に入っている。 cd /opt/ で移動して探すこと。

あとは上記のサイトに従えばOK。

 

次。

openSUSE Tumbleweed, GNOME 環境, IMEはfcitxでPyCharmを立ち上げると、多分日本語入力ができない。

結論から言うと、対処法は

  • fcitxの設定を起動してアドオンを選択、拡張をクリックしてXMI機能を有効化すること。

再起動すれば有効化される。

また、

  • .xinitrc とか .bashrc とか .profile とか .xprofile に以下の設定を書き込むこと

export GTK_IM_MODULE=fcitx

export QT_IM_MODULE=fcitx

export XMODIFIERS=@im=fcitx

 詳細はarch wiki Fcitx - ArchWiki を参照すること。

 

 

経緯

中国語のサイトをさんざん探し回ってみると、 pycharm.sh に .xinitrcとか.bashrcとか .profile に追加したように、以下のexport3行を追加しろという指示。

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

しかし、こうする必要はなかった。

この指示に従うとフォントが汚く感じられる。(明朝体っぽい)

 

むしろ.xinitrc とか .bashrc とか .profile とか .xprofile にこの設定を書き込んであげたほうが効果的。

いまのところ試行錯誤しすぎて何をすればいいのかわからなくなっているが、

最も効いたと思われる設定項目は以下の通り。

 

fcitx の設定 -> アドオン -> 拡張にチェック入れる

-> Fcitx XML Frontend を有効化 -> Fcitx XML Frontendを選択したあと設定をクリック

-> チェック入れて再起動

 

でうまくいった。

 

左下に変換候補が出てしまうのはご愛嬌、我慢するしかない。

以下のサイトを参考:こんな感じになる。

itlx.ldblog.jp

 

考察

頼れるArch Wiki 兄貴に聞いてみると、

Fcitx - ArchWiki

以下のアプリケーションは GTK+/Qt インプットモジュールを使用しません:

つまり、Javaを使っているPyCharmやその他JetBrains製品においては、fcitxはGTK+/Qtインプットモジュールを使わない、だからexport GTK... とかexport QT...は意味をなさないのかも。

XMODIFIERSのexportが生きてくるということなんだろうか。

よくわかりません。

 

再検証

Fcitx XMIの機能をオフにしてみると、たしかにインライン入力ができなくなった。

このため、Fcitx XMIの機能は必ず有効化する必要がありそうだ。

続いて、中国の掲示板で大量に見つかった、 pycharm.sh 内に書き込めと指示されたexport文は、やはり特になんの意味も持たないので、書き足す必要はない。

また、PyCharm内に表示される日本語は、デフォルトだと文字が見づらい。これはPyCharm内の設定によるものなので、そちらを変更してもらえば問題ない。

 

おわり。

あとで誰か試してみてください。

いろいろ試しすぎて何が最も効果的なのかわからなくなっているので。

openSUSE 開発環境構築の巻

はじめに

I need your advice.

つぎに

開発環境は基本Atomにしようと思っています。

以下蛇足。

この数行を書く間に、そういえばJetBrains製品も選択肢にあったな、と思ったけれどそれはそれ。VimとかEmacsとかを使いこなす自信は皆無なので、今度からおとなしくAtomを利用しようと思いました。Windows, OSX, Linuxとマルチな環境で動くってことは、お気に入りのパッケージや設定を見つけたらどんな環境でもオレオレ環境を用意できるってことじゃん、って思ったからです。(JetBrainsもそうだよ、というのは今更な話。)

 

今回導入する対象は、もちろんopenSUSE Tumbleweed。

 

Atomの導入

ただのコマンド実行。手順は以下の通り。ダウンロードして実行。おしまい!

github.com

  1. Download atom.x86_64.rpm from the Atom releases page.
  2. Run sudo rpm -i atom.x86_64.rpm on the downloaded package.
  3. Launch Atom using the installed atom command.

なんかrpmをダウンロードして"-i"オプション抜きで実行したら整合性がどうとか言ってくる。

どうやら、公式がシグネチャを含ませてないかららしく、すでにgithubレポジトリの方ではissueが立ってた。

github.com

I've created issue #15509 to add signing for linux package and added it to the backlog. Currently we’ve never signed our linux packages. The fact that you're seeing the warning now is a change in the OS

と書いてある。この整合性云々の問題はおいおい解決されるはず。 

 

あとはLaTeXというのを習得したかったので、以下のサイトの内容に従ってとりあえず日本語関連のもののみをインストール。1GBちかくの容量を占めるので、全部インストールしてたらどんなことになっていたか…

https://texwiki.texjp.org/?cmd=read&page=Linux%2FopenSUSE

日本語関連のパッケージのみインストールする場合は

sudo zypper install texlive-collection-langjapanese

 TeX liveのインストールおわり!

次は、PythonとかC/C++とかQtとかもろもろのインストール。これはYaSTを利用した。

 ソフトウェア管理、表示、パターンで、一覧をスクロールダウンすればすぐ見つかる。対象言語だけ選択、インストールして終了。

 

Atomパッケージ

めぼしいものをどんどん導入。パッケージの検索欄が貧弱すぎて使い物にならない。なんとかならないだろうか…意図的なのか?こうやっておすすめのパッケージを書かせることによってAtomがみんなの目に触れやすくなるから…そんなことないか!

atom.io

  • japanese-menu

atom.io

atom.io

  • linter

atom.io

  • git-plus

atom.io

  • merge-conflicts

atom.io

  • script

atom.io

  • dockblockr

atom.io

  • file icons

atom.io

  • Hydrogen

atom.io

  • todo-show

atom.io

  • tabs-to-spaces

atom.io

atom.io

  • project-manager

atom.io

あと何が必要かね、っていう感じだ

とりあえずautocomplete-pythonにはjediを導入する必要がある。

github.com

 

めんどいのでとりあえずここまで書いて投稿。

RIctyとか導入してもいいかもね。

openSUSE 奮闘記

はじめに

openSUSEはいいぞとの布教に感化されてopenSUSEをインストールしてみました

Windowsデュアルブートなんですが、当然さきのArch Linuxとのデュアルブートと復元の記事から間髪おかずにデュアルブート環境をインストールしたので、いかにopenSUSEのような「よく準備された」 Linuxがすごいかを体感することができています。

逆に言えば、ArchがいかにLinuxの細かいところを知り、設定できるかを知ることができたともいえるでしょう。

準備

検索すれば山ほど出てくる情報なので割愛、以下リンク

openSUSEの配布

www.opensuse.org

 

今回インストールしたのはTumbleweedです。

理由…えー、若干ゃ草(weed)のあるところで…おすすめっぽかったからですかねぇ…

余裕でデュアルブートやパーテション分割を自動でやってくれましたね。

で、インストールメディアについてはUSBメモリを利用しました。また、USBメモリを作成するに当たって利用したOSはWindowsです。これ以外ありませんでした。方法は以下の通り。

SDB:Windows を利用したライブ USB メモリの作成 - openSUSE

作成したらあとは適当にちょいすれば終わります。あまりにも戻ったりすると突然画面がブラックアウトして、エラーとともにFreeBSDのインストール画面(というか普通のLinuxのインストール画面?)っぽくなるので注意。そのときは再起動。原因はよくわからない。対策としてはさっきも行ったようにあまり行き来しないこと。

とりあえずちょいちょいやって放っておけばインストールは終わるのですが、インストーラの時点では絶対にオンラインリポジトリとの関連付けを行わないでくださいめんどくさいです。

インストール後のYaST立ち上げ時なら中断できないこともないですが、この時点では中断なんてできないからです。レポジトリ側の回線が低速なせいで時間がかかったり、ダウンロードに失敗してエラーを吐かれると怖いのです。

 

Intel Dual Band Wireless-AC 7260 が認識されてない!

さて、私の環境はDynabookのR73, NW56Eですが(TOSHIヴォアアアア!!!(ドガシャァ))、ワイヤレスカードはIntel Dual Band Wireless-AC 7260を利用しています。インテル製です。デスクトップが起動して真っ先に気がつくのは、このワイヤレスカードを認識していない、ということです。

これに対しては、2日かけて戦った結果、次のような対処法でなんとかなりました。

とりあえず、どっかのサイトにあったとおりに

dmesg | grep wifi

と入れて実行、なんかエラーを吐いてる様子を観察。確か iwlwifi-AC7260-17.ucode が必要だよとのエラーが出ていたはずです。で、そのマイクロコードを記したファイルはどこにあるのかというと、以下のサイトにありました。

welcome [Linux Wireless]

このサイトの検索欄にiwl-wifiと入れて検索、core_releaseに行ってLnix Core 14, -17.ucodeをダウンロードしました。

 

とりあえず " Intel Linux Wifi Driver " とかで検索したら最上位に出てくるインテル社のWebサイトからダウンロードできるファイルではありません。

このときの感情。

 

ダウンロードしたら、.gz形式で固まってるのでtarコマンドで解凍し、次のサイトの指示に従いましょう。

en:users:drivers:iwlwifi [Linux Wireless]

# cp iwlwifi-*.ucode /lib/firmware

再起動すればあら不思議、ドライバが認識されているではありませんか!

問題解決!

openSUSE, 20170913 のisoをインストーラに利用したところ、特に設定することなくIntelドライバを認識してくれました。Tumbleweedの特性上、今後このような問題は発生しないと思います。

開発者さんありがとうございます

 

追加パッケージの導入

とりあえず仮想環境じゃなくてデュアルブートなんだから、メディア類は多く再生できたほうがいいです。いい…よね?…openSUSEは最初の状態ではMP3とか再生できないらしいです。フリーじゃないから、とか。Ubuntuならインストールの段階で選べるのだけど、openSUSEは違う。

参考になったサイトはこちら。

z0ff.hatenablog.com

ワンクリックでインストールできるなんて便利!

ただ、dvdauthor07だけはなぜかエラーでインストールできなかったので、そこはコマンドラインで、zypperでインストールしました。あと上のブログにあるように、aacとかも入れてあげるといいと思います。

 

openSUSEの設定 マルチメディア系 – がとらぼ

こちらも参照して、「へー、vlcってLinux対応なんだ」と思ってzypperでインストールしました。

理由は個人的にWindowsで使ってて慣れてるからです。

 

Chrome

openSUSEGoogleが支援しているらしいのですが、初期段階で入っているのはFirefoxGoogle ChromeChromiumは入っていないご様子。というわけで、Chromeを入れようと思ってやってみたら、ファイルに整合性がないとかでアウトでした。調べたけど原因がわからなかったのでChromiumに変更。

sudo zypper in chromium chromium-pepper-flash

とりあえずこれでOK。あとはGoogleアカウントと同期して便利になった。おわり。

 

日本語入力、キーボード 

Intelの次に曲者の設定。まだ終わってないけれども、とりあえず書く。

デフォルトだとibus-mozcが日本語入力システムとして備わっている。しかし、fcitxのほうが変換機能が優れているらしい。というわけでfcitxの導入を行った。

openSUSE 13.2にFcitxを導入する

ここのサイトの内容に従っておけばインストールできる。

が、しかし、不思議なことにgsettingsについてはエラーが返ってくる。

とりあえずgnomeの設定について色々見られるGUIソフトがあるので、以下のコマンドでインストール。

zypper install dconf-editor

そこでgsettingsのsetの対象になっていたところを参照すると、どうもパラメータが存在しない。

だからエラーだったのね、と納得しつつ放置を決定。だって面倒だし、fcitx起動できるんだもん。

 

 まだまだ終わらない面倒な設定。fcitxのインストールしたての状態では、半角・全角キーを押してもバッククォートが表示されるだけで、実際の変換は行われない。これは酷い。というわけで、今度は「fcitxの設定」を起動して、キーを設定していく。

全体の設定->拡張オプションの表示->入力メソッドのオンオフで、空をクリックして半角全角キーを押せば終わり。ちなみに空に戻したいときは、選択したあとEscキーを押せば良い。

「入力メソッドの切換をホットキーで」もオフにしたし、その他もろもろの切り替えキー、入力メソッドをオン・オフに、等はすべて空に設定。

「入力メソッド」は日本語(Mozc)と英語の2本仕立て、Mozcの方は規定の入力メソッドにした。

あとはxorgの設定をいじっておけば問題ない。

一時しのぎ的には

setxkbmap -rules evdev -model jp106 -layout jp

でなんとかなるのだが、ほんとに一時的であり入力メソッドを切り替えるともう役に立たない。僕の記憶力並みにポンコツ

というわけで、解決策はないかなと当たったところ、いまのところ

archlinux-blogger.blogspot.jp

Xorg でのキーボード設定 - ArchWiki

Xorg - ArchWiki

こことかを参考にするといいかも、とは考えている。

ここまで書いたが、もうすぐ朝四時なので寝る。

 

午前11時追記 悩んだけど結局こうするのが一番手っ取り早かった

openSUSEの設定 追記 – がとらぼ

openSUSEの設定 日本語入力メソッドフレームワークをFcitxに変更 – がとらぼ

はじめに、ibus側でキーボードの配列を設定。

ibusの設定->入力メソッド->追加

日本語-日本を選択すると、アンダーバーやor(|)が思い通りに打てるようになります。

続いてfcitx側の設定ですがこちらは上記のリンクに従って設定すれば大丈夫です

ちゃんと日本語が打てるようになりました!

お疲れ様でした!

俺達の環境構築はこれからだ!

 

2017/09/19 追記:

1. 初期起動時の時点でibus-mozcとその関連パッケージをアンインストール

2. fcitxを導入

3. fcitxの設定->入力メソッド->英語->キーボードのマークをクリック->「日本語」(以降追記なしのもの)を選択。すると、日本語キーボード配列で英語を入力できるように設定できる。

4. 英語の状態で、入力メソッドのオンオフをZenkakuHankakuのみに設定すれば完了。

パッケージ管理はYaSTを使ってグラフィカルに行うと楽。

ArchLinuxの削除、efiの初期化方法

 

多分、どんなデュアルブート環境からの復元であってもefiの初期化って必要だと思うのだけど… 

申し訳ないがやっぱ面倒だったArchLinux

KDE PlasmaのUI、思った以上にめんどい、削除したい、でもpacmanマネージャで消せない、もう調べる気がしない、そもそも勉強したいことが山ほどあるのにここにそんなに時間使ってられない等、いつもの焦りから生じる悪癖のためか、

ArchLinuxよりUbuntuのほうが設定楽じゃね?

と思うようになりました

そこでArchLinuxを消してみたんですが、どうもGRUBが消えない。

下手にefiを初期化してしまうと最悪Windowsが起動しなくなってしまう。

じゃあどうしよう?

 

Windows10 USBメモリ インストーラメディアを利用

前回の記事

 

heruwakame.hatenablog.com

 でimgファイルを作成しました。

これをUSBメモリ上に復元します。

複数本USBメモリを持っている人はこんな面倒なことする必要はもちろんありません。

私もこれから数本USBメモリを買い足すつもりです。

 

さっそく設定を開始しましょう

(この見出し、なんかWindows10をインストールしたときにデカデカと表示される文章っぽい)

 

で、何をするかっていうと

www.tenforums.com

これです。EFIWindowsが再作成してくれる仕組みがあるのです。

USBメモリからWindows 10のインストーラを起動、ウィンドウは無視して<Shift>+<F10>、するとコマンドプロンプトが立ち上がる。

あとはリンク先の回答に書いてあるとおりなのですが...

以下は引用した回答の一部分になります。実際のところ、shrink desired = 100や size = 100といった記述は他のLinuxディストリビューションで再度デュアルブートを構成するときに面倒なことになりかねないので、いくつか修正を行います。

引用した回答

diskpart
list disk
select disk # Note: Select the disk where you want to add the EFI System partition.
list partition
select partition # Note: Select the Windows OS partition (# number) or your data partition.
shrink desired=100
create partition efi size=100
format quick fs=fat32
assign letter=s

list partition
list volume Note: Note the volume letter where the Windows OS is installed.
exit

改良して今回実行した命令

diskpart

list disk

select disk <disk-number>

list partition

select partition <partition-number>

format quick fs=fat32 label="System"

assign letter="S"

list partition

list volume

exit

bcdboot X:\Windows (XはC, Dといったドライブ名)

# diskpart

diskpart.exeを起動

 

# list disk

ディスクの一覧を表示

 

# select disk <disk-number>

efiが含まれるディスクを選択

 

# list partition

パーティションの一覧を表示

 

# select partition <partition-number>

efiが含まれるパーティションを選択(前回の記事から引き続いている場合は System って書いてあるけど他の場合はわからない)

 

# format quick fs=fat32 label="System"

# assign letter="S"

前回の記事のフォーマット命令と一緒、shrink命令がないのはパーティションサイズを変更しないため。

 

# list partition

# list volume

確認のため。

 

# exit

diskpart.exeを終了する

 

 

で、grubがあったところにWindowsデフォルトのブートローダーを書き込みます。

 

bcdboot X:\windows /s S:

Xは CドライブどかDドライブとかのC, Dといったドライブ名に置き換えて実行してね

これはこのままでも問題ないと思うのだけれども、もし問題があったらオプションの /s 以降を書かないで単に

# bcdboot X:\Windows

で実行できる。

 

あとは

# exit

してコマンドプロンプトを終了。

 

Windows 10 インストーラとして表示されているウィンドウを閉じれば何らかのオプション選択画面(電源を切る・コマンドプロンプトを立ち上げる・BIOSをいじるなど)が出てくるはずなので、そこで電源を切るを選択。

 

もう一度電源を入れれば、多分GRUBとバイバイできてるはず。

お疲れ様でした。

待ってろUbuntu、いまインストールしてやるからな!

Windows10-ArchLinux デュアルブートの記録

はじめに

Arch最高という言葉を見かけた、DebianはRaspbianの苦労を思い出してちょっと怖い

でもWordとかExcelとかPowerPointとか簡単には捨てられない...

そうだ、デュアルブートがあるじゃないか!

 

内容は以下のような構成になっています。

基本的に自分が後で見返したときにわかりやすくなるよう心がけて書いたので、リンク先と同じってことが多いですが許してください。

  1. 下準備(基本飛ばして問題ないです)
  2. Windowsのインストール
  3. ArchLinuxのLive USB作成
  4. ArchLinux Live USBの起動
  5. ArchLinuxの設定

下準備

デュアルブート環境構築前に、必ず以下の点に十分注意してください。

  • ライセンス付与されたソフトウェアのアンインストール

最近のソフトウェアのライセンス管理方法はどうなっているのかわかりませんが、現在Windowsがインストールされているコンピュータ上にデュアルブート環境を構築する場合は、念のためライセンスが関わるソフトウェア(例:MS Officeなど)はアンインストールしておきましょう。

もちろん、以下のことも忘れないでください。

  • データのバックアップ

理由は後述しますが、HDDのデータを文字通り完全に消去してしまうので、重要なデータのバックアップは忘れないようにしましょう。

 

Windowsのインストール

注意点:完全にインストーラ任せにしてはいけません。任せっきりでいると、またここからやり直しになってしまいます。(やり直ししたの私だ)

 

Q.「ArchLinuxとWindowsのインストールはどちらが先ですか?」

A. 公式WikiWindowsが先です」

Windows と Arch のデュアルブート - ArchWiki

 

Windows 10をインストールするためのUSBメディアを作成します。

Windows 10 のダウンロード

作成方法はここに従っておけば大丈夫です。

www.atmarkit.co.jp

で、パーティションはデフォルトだとあとあと不都合が生じるので、以下の手順に従ってパーティションを変更します。特に、efiパーティションのサイズは260MBに設定することに注意してください。

サンプル: Windows PE と DiskPart を使って UEFI/GPT ベースのハード ドライブ パーティションを構成する

 

  1. 次のセクションのコードをテキスト ファイル (CreatePartitions.txt) として USB フラッシュ ドライブに保存します。

  2. Windows PE を使って対象 PC を起動します。

  3. DiskPart /s F:\CreatePartitions.txt コマンドを使って、ドライブにパーティションを作ります。F は、USB フラッシュ ドライブの文字です。

 CreatePartitions.txt

以下のファイル内、下線つきの赤文字で強調した部分の指示に従って、System Partitionのsizeの値を100から260に変更します。以下はすでに該当部分を変更してあるファイルです。

rem == CreatePartitions-UEFI.txt ==
rem == These commands are used with DiskPart to
rem create five partitions
rem for a UEFI/GPT-based PC.
rem Adjust the partition sizes to fill the drive
rem as necessary. ==
select disk 0
clean
convert gpt
rem == 1. Windows RE tools partition ===============
create partition primary size=300
format quick fs=ntfs label="Windows RE tools"
assign letter="T"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
rem == 2. System partition =========================
create partition efi size=260
rem ** NOTE: For Advanced Format 4Kn drives,
rem change this value to size = 260 **
format quick fs=fat32 label="System"
assign letter="S"
rem == 3. Microsoft Reserved (MSR) partition =======
create partition msr size=128
rem == 4. Windows partition ========================
rem == a. Create the Windows partition ==========
create partition primary
rem == b. Create space for the recovery image ===
shrink minimum=15000
rem ** NOTE: Update this size to match the size
rem of the recovery image **
rem == c. Prepare the Windows partition =========
format quick fs=ntfs label="Windows"
assign letter="W"
rem === 5. Recovery image partition ================
create partition primary
format quick fs=ntfs label="Recovery image"
assign letter="R"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
list volume
exit

HDDのフォーマットを実行したあとになって、この .txtファイルを読み込ませればまとめて実行できる事に気がついたのですが、後の祭りでした。

このファイルを事前にUSBメモリ内におさめておけば、おそらく意図したとおりのパーティションができていると思います。

この便利なファイルに気が付かなかった私の場合は、インストーラのウィンドウを閉じると現れる画面(電源を切るか、それともツールを使うかみたいな内容)からツール、コマンドプロンプトを起動させ、一行一行丹精込めて、CreatePartitions.txtを手打ち実行しました。

 

で、BIOSの設定画面から起動順序を変更し、最初にUSBを読み込ませます。

ついでにこの時点で Secure Bootをオフにしておくと良いでしょう。

再起動後にはWindows10のUSBインストーラが起動するはずです。

あとはいつもどおり、カスタムインストール、プライマリパーティションを選択、インストール実行、しばらく放置。Cortanaが現れたらあとは支持に従ってください。

Windows10のインストールはこれで完了です。

 

次の作業に移る前に

  • 高速スタートアップを無効化

<コントロールパネル> <電源オプション> <カバーを閉じたときの動作> で高速スタートアップを無効化できます。

  • プライマリパーティションの縮小

Windows10がプライマリパーティションすべてを占領しているので、このままではArchLinuxをインストールすることができません。そこで、以下のようにしてプライマリパーティションを縮小します

  1. ディスクの管理を起動
  2. Windows:(C)を右クリック、<ボリュームの縮小>を選択
  3. 縮小する容量(つまりArchLinuxに割り当てるHDD/SSD容量)を決定
  4. 新しいボリュームを作成

1. <Win>+<X>  => <K> で起動

3. 私の場合は350GBをArchLinuxに割り当てました

4. 3のあとにできる<未割り当て領域>を右クリックして <新しいシンプルボリューム>を選択。ボリュームのサイズはおまかせします。ここで/homeと/root ( / のみでもあらわされるはず)用にボリュームを分割できると思いますが、私は失念していました。

<ドライブ文字またはドライブ パスを割り当てない>

<このボリュームをフォーマットしない>

で分割された、新しいプライマリパーティションを作成することができると思います。

 

設定すべき事項は以上です。

必要であれば今回の環境構築でお世話になった後述のリンクを参考にしてください。

 

ArchLinuxのLive USB作成

Windowsの設定が完了したらArchLinuxのLive USBを作成します。

ちなみにUSB一つしか持ってない人向けのアドバイスなんですが、ArchLinux Live USB作成前に、あらかじめWin32DiskImagerを使ってWindows 10 のインストールメディアをまるごとイメージファイル(.img)化してバックアップしておくと便利です。

  • 以下のArchLinuxの公式サイトから.isoファイルをダウンロードします。

Arch Linux JP Project - ダウンロード

  • 以下のArchWikiの記事に従ってインストールメデイアを作成します。

USB インストールメディア - ArchWiki

私の場合はRufusを利用しました。注意点はArchWikiに書かれているとおりです。

そこには

DD モードを選択しないとイメージの転送が正しく行われません。

とあります。DDモードの選択方法は以下のとおりです。

  1. プルダウンメニューからISOファイルを選択してArchLinuxのisoファイルを選択
  2. 下の方に  "archlinux-<日付>-x86_64.isoを選択中"と表示される
  3. プルダウンメニューからDDを選択
  4. DDモードでイメージをUSBメモリに書き込む設定完了、「スタート」
  5. 完成!

ArchLinux Live USBの起動

BIOSの設定でSecure BootがOFFになっていれば、ArchLinuxは上手く起動するはずです。

しかし私の場合、何度やっても起動しませんでした。

このような状態に陥った場合は以下のような手順を踏めばArchLinuxを起動できます。

  1. Windowsを起動
  2. Shiftキーを押しながら「再起動」をクリック
  3. 起動するデバイスを変更できる設定があるのでそこから「USB」を選択
  4. 勝手に再起動してUSBを読み込んでくれました

不測の事態が起きてもある程度ならなんとかなるのです。われわれはかしこいので。

ArchLinuxの設定

当然ながらまだ「めでた」くはないのです。Live USBを起動できただけなので。

続いて以下の複数のWebサイトを参考にして環境構築を実行しました。

単刀直入に言うと、ArchWikiは僕にとっては分かりづらかったです。

なお、パーティションについてはあまり自信がないのと、より適切な方法や好みによるやり方があるかもしれないのでおまかせします。一応、自分が実行した方法を記述します。

 

パーティションの設定、システムのインストールについては以下を参考にしました

qiita.com

>ここのコメント欄の orumin ってまさか…ねぇ?

 

ブートローダーの一つであるgrubについては以下を参考にしました

naro3.hatenablog.jp

 

途中で以下のようなエラーが出た際には以下のリンクの指示に従いました

WARNING: Failed to connect to lvmetad. Falling back to internal scanning.

既存の Linux からインストール - ArchWiki

 

GRUBWindowsが表示されなかったときは以下のリンクの対処法に従って解決しました

blog.livedoor.jp

 

とりあえずコマンドだけ。

キー配置指定。これをやっておかないとvimやvi、nanoのときに面倒になる。

# loadkeys jp106

 

パーティション設定

EFIはすでに作成済みなので変更や追加といった操作をしてはいけない。

 

# cfdisk

Freespaceを選択しNew, サイズを指定してパーティションを分ける

私の場合は /root は 64GB, /homeは250GB に指定して分けた。

それぞれのパーティションのTypeを変更して Linux root(x86_64) や Linux home を表示させる。こうするとfdisk -l のときに見やすい。

# fdisk -l 

で/dev/sda(番号) を確認しつつ、/root, /homeに割り当てた/dev/sda(番号)を以下のコマンドでext4でフォーマット。

# mkfs.ext4 (/root相当の/dev/sda)

# mkfs.ext4 (/home相当の/dev/sda)

# mount (/root相当の/dev/sda) /mnt

# mkdir /mnt/boot /mnt/home

# mount (TypeにEFIと書かれた/dev/sda) /mnt/boot

# mount (/home相当の/dev/sda) /mnt/home

パーティション設定は以上でおわり

 

無線LAN設定

# wifi-menu

周辺のアクセスポイントを検索して表示してくれる。SSIDを選択してパスワードを入れれば接続完了。

# ping -c 3 google.com

でインターネット接続を確認

# timedatectl set-ntp true

 

pacstarpのミラーサーバ設定

# vim /etc/pacman.d/mirrorlist

 

vim コマンド

  • コピー(ヤンク):(指定行) yy
  • ペースト:(指定回数) p
  • 最上部に移動:gg
  • 最下部に移動:G
  • 行削除(削除した行はクリップされてる):dd
  • 検索:/(検索語)
  • 次の検索結果:n
  • 前の検索結果:N
  • 保存--->  : wq
  • 保存せず終了---> :q
  • 保存せず強制終了---> :q!

を利用して、日本のミラーを最上位に持ってくる(筑波と理研

# pacstrap /mnt base base-devel zsh git dialog wpa_supplicant

# genfstab -p /mnt >> /mnt/etc/fstab

 

その他諸々の設定

# arch-chroot /mnt

 

echo computer_name > /etc/hostname

computer_nameはコンピュータの名前(そのまんま)

 

# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

エラーが出たら -sにfを追加する。つまり、ln -sf で実行する。

多分forceのf。

 

# vi /etc/locale.gen

jp.JP_UTF-8、en.US_UTF-8のみコメントアウトを削除して保存

 

# locale-gen

# echo LANG=en_US.UTF-8 > /etc/locale.conf

# mkinitcpio -p linux

 

# passwd

rootのパスワードを設定

 

# pacman -Syy

パッケージ更新、Ubuntuでいう apt-get update

 

# pacman -S wireless_tools wpa_supplicant wpa_actiond dialog

パッケージ追加

 

GRUB

グラブってる?

 

# pacman -S grub dosfstools efibootmgr

パッケージ導入

 

# pacman -S intel-ucode

Intelアーキテクチャのマイクロコードのパッケージらしい

 

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck

あなたとGRUB、基本無料、今すぐインストール

ここでefiの容量がWindowsインストーラがデフォルトの値として設定した100MBのままだと、efiの容量が足りないよといってエラーを吐く。最初の方からやり直しになる。efi、つまりシステムパーティションを260MBに拡張したのはこのため。

 

また

WARNING: Failed to connect to lvmetad. Falling back to internal scanning.

というエラーが表示された場合は

# vim /etc/lvm/lvm.conf

で、use_lvmetad の値を 1 から 0 に変更。

その後再度以下のコマンドを実行

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck

 

 

# grub-mkconfig -o /boot/grub/grub.cfg

grub-install でエラーが出てなければこのコマンドを実行。

 

 

と出ればめでたくインストール完了!

おめでとうございます!

では引き続き以下の手続きをお願いします!

 

# mkdir /boot/EFI/boot

# cp /boot/EFI/arch_grub/grubx64.efi /boot/EFI/boot/bootx64.efi

 

Windowsとのデュアルブートなので、さらに以下を実行

# pacman -S os-prober

# grub-mkconfig -o /boot/grub/grub.cfg

 

# exit

arch-chrootを抜ける

 

# umount -R /mnt

アンマウント

 

# reboot

再起動

 

さて、これで上手く行ったな、というのもつかの間。

再起動後の画面であることに気が付きました。

「あれれ~!?GRUBWindowsの選択肢がないよ!なんで~?!」

これに対しては

「大丈夫だいじょうぶ!まだGRUBWindowsのエントリ追加してないだけだから!」

って感じでした。

 

ArchLinuxを起動後、rootで、passwdで設定したパスワードを入力してarch-chrootに入ります。その後

# pacman -S lsb-release

# grub-mkconfig -o /boot/grub/grub.cfg

を実行して再起動すればGRUBWindowsが追加されていると思います。

 

以上で私の現在までのデュアルブート環境構築を終わります。

お疲れ様でした。

 

ユーザーの追加等はArchWikiに従っておけばなんとかなります。

一般的な推奨事項 - ArchWiki

ただし、ユーザーの追加をめんどくさがって放置すると、デスクトップが表示されたときにログインができなくなるので注意しましょう、その際は <Ctrl>+<Alt>+<F2>を押せば強制的にCLIに戻ってrootにログインできます。

 

この文を書いている時点でUbuntuにしようと考えているので、以降の記述はとっても雑になります。

yaourtは便利です。

xwindow system等のインストールは忘れないでください。

KDE PlasmaやGNOMEXfce等色々あります。

ArchLinuxに関する雑感としては、

「自由、軽い、めんどくさい」

です。

普段は目に触れない動作を自分で行うことができる点は面白いですが、成功するまではかなりツラいさん状態が続きます。

また、デュアルブートは見ての通り面倒です。

古いPCで駆動させるには申し分ない軽さと自由さがあると思いました。

以上。

次の記事ではArchLinuxの削除とGRUBの起動阻止の方法を解説します

 

 

セキュリティ・キャンプ2017の参加記

 能書き

基本的に講義の感想は短いです。今日だけで一気に書くとつかれるのであとでちょいちょい書き足していきます。大学の集中講義期間を挟んでいるため記憶は曖昧になりつつあり、信憑性は限りなく0に近いとしてください。先人たちの参加記と内容食い違ってたら大抵は間違ってるのは私の方、くらいの心意気でガンガン書いてます。

 

セキュリティ・キャンプの応募課題、通称黒歴史を晒してはや1ヶ月ちょいが経ちました。

 

参加前のぼく

 

で、行ってきましたクロスウェーブ府中。

パノプティコンみたい」といういかにもアカデミックなやりとりからなんとなく想像していましたが、思った以上に大きくてきれいな施設でした。

 

天井はこんな感じ。

 

「クロスウェーブ府中、上から見るか?」

Google map, 埋め込みがうまくいかないので航空写真でみてください...)

 

「下から見るか?」

 

はい。

 

あと過去のブログを参照すれば、僕の東芝に対する感情はお分かりいただけるかと思います。

会場すぐそばにあった東芝タワー

 

なんとすぐそばの地名が...

 

東芝さん、Ethernetコネクタの罪は重いですよ...

 

北府中駅~クロスウェーブ府中の移動経路

最寄り駅である北府中駅からクロスウェーブ府中への行き方は2通りあります

  • 改札口を出て左側にあるエレベータを利用する場合(距離:長い、負担:軽め)
  1. エレベータで降ります、直進します
  2. 信号が見えるとその手前に歩道橋らしき階段が見えます
  3. 登りましょう。荷物が重くても引きずりましょう。階段だけではなく自転車を押して階段を昇り降りできる、途中に凸があるスロープもあるので安心してください。
  4. 直進しましょう。坂を下ればクロスウェーブ府中は横断歩道を渡って左折、暫く歩くとすぐ付きます。
  5. お疲れ様でした(俺たちの戦いはこれからだ!)
  • 改札口を出て右側に見える階段を利用(距離:短い、負担:荷物重いとツラい)
  1. 階段を登りましょう。荷物が重かったら諦めてエレベータを利用する経路を辿りましょう。
  2. 降りましょう。
  3. 道のりに進めば↑の4.の道と合流します。
  4. お疲れ様でした(移動トラック完了)

 1日目

まずは受付。名刺交換。わかめの布教。すごく偉い人のお話を拝聴。講師紹介やチューター紹介を経て、しばらくしてセキュリティ基礎、特別講演1、2を受けた。多分他の人が細かく書いていると思うので内容は今のところ割愛を決めている。ご飯。ちなみのこのときに今年の税金水は「いろはす」ではなく「volvic」であることを確認した。置き方がとっても凝ってた。

 

大抵のホテルにはあるモーニングコールは、受話器を取り上げて「70+24時間表記でコールしてほしい時刻」を押すという設定方式。

テレビをいじくり倒したところSONY製、指定時間に起動するよう設定できることを発見。

 

2日目

起床トラック成功。どうやらベッドが変わると僕の起床時刻は非常に早いらしい。

唐揚げを食べすぎてやや胃もたれを起こす。けものフレンズ効果は偉大。「たーのしー!」な気分で講義へ。

 

 E1~E3:BareMetalで遊び尽くそうRaspberry Pi (丸一日, 11時間)

BareMetal : OSは使わないよ!

事前課題:ARMのアセンブラに慣れよう、リンカスクリプトを書こう、Makefileを書こうの3つ。多分この講義を取ってなかったらリンカスクリプト, Makefileは一生書こうともしなかったし読み解く方法を覚えようともしなかったと思う。これは成長その1。

 

ちょっとややこしかったのが ldr命令, str命令がそっくりなこと。

ldr は, (レジスタとかの値の代入先), (読み込むアドレス), (読み込む幅, uint_32なら4byte)

str は, (書き込む値を含むレジスタなど), (書き込み先のアドレス), (書き込む幅) 

 

頭が硬いので事前課題をやってもなおなかなか理解できなかった。反省&成長その2。コレすら間違ってたらたぶん誰かからマサカリが飛んできて安心して死ねる。

実験に次ぐ実験と試験勉強のために、C言語を書くのが久しぶりすぎて酷いことになった。またビット演算もあまり詳しくなかっ「た」ので結構手詰まりになる場面が多かった。講師の方にはもちろんチューターさんにも頭が上がりません。データシートを読み解きつつなんとか「GPIOのLチカまで」は上手くいった。ちなみにGPIOのLチカは昨年度の講義の到達目標だったとのこと。

データシートの読み方、ビット演算について習得。成長その3。

 

はじめにやったのはGPIOのビットの設定。以下のリンク先のデータシートを読んで、ビット操作と空のfor文を回してLEDの点滅をさせようという内容。

www.raspberrypi.org

Peripheral  specification と書かれたリンク先にあるpdfを参照すると、だいたいp.90あたりにGPIOの設定に関する記述がある。

曰く、  

GPFSELは0~5の5つのレジスタを備えており、これらはGPIOの機能を管理する。機能にはoutput, input, alt1~5といったモードがある。

GPSETは正直英文が「何言ってんだこいつ」と思えるほど雑な説明なのだが、Outputを1 (つまりhigh, high voltage)にするレジスタらしい。  

GPCLRはGPFSELやGPSETで設定した、各GPIOに関するレジスタの値をクリアする(初期値に戻す?)ための機能のようだ。つまりGPSETでhighに設定したGPIOはlow(low voltage)に戻るらしい。  

ラズベリーパイ上の基板に乗っかっているLEDを点滅させているのはGPIOによるものなので、LEDに対応するGPIOを、GPSET, GPCLRを用いて操作できれば同LEDの点滅を操作することができそうだ。  

 で、緑色のLEDに対応するGPIOはGPIO47です。

つまるところLEDの点滅でやるべきことは次のとおりだ。

 

1. GPIO 47 のモードをoutputに設定する。  

2. GPSETレジスタのうちGPIO47に関するビットだけを1に設定し、LEDを点灯させる  

3. for文で一定時間待たせる。またないと時間を置かずに2から4へ移ってしまい、点滅を目で確認することができない。  

4. GPCLRレジスタの家GPIO47に関するビットだけを1に設定し、2.で設定した1をクリアする。  

5. 3. と同じ

6. 2に戻る

 

 

 

 

 

 2日目

Embedded Systemic Reverse Engineering 101

101:手習い、手始め的な意味。

はじめにBus Piratesなる治具を利用して、チップのI2C通信などの様々な通信を覗き見ることをした。結構便利なので購入決定。

続けてルータの基板からROMを探し出す。大抵のチップは型番が印刷されているのでそこからググってデータシートを検索、ROMを特定。ROMにはプログラムが書き込まれているので、ここからいろいろなデータを手に入れることができる。ハンダゴテやハンダ、ハンダ吸い取り線、ピンセットを利用して基板からROMを引き剥がす。最後にはんだごてに触れたのは9ヶ月前だったのもありすごく不器用、ROMと基板の接点にある金属ごと引き剥がしてしまいもはや基に戻らなくなってしまった。これはけっこうコツがいるらしい。

ROMに先程のBus Piratesを接続、このときちゃんとデータシートを参照して接続を間違えてROMのデータを壊すことがないように注意した。接続がうまく言っていないとたいていは/xFFみたいな値ばかり帰ってくるが、うまく接続されるとなにか情報が書き込まれているようだぞ、ていどにはROMの内容が覗き見れるようになった。

ここで時間切れ。リバースエンジニアリングに101とついているのは、あくまできっかけにすぎないため。いろいろ分解して経験を積みたいです。

 

暗号運用技術

原子や電子・論理回路の世界から一気にネットワークの世界にやってきました。セキュリティ・キャンプの醍醐味の一つは、僕のような専門外の人にとっては普段知る機会がないレイヤについても自由に選択できること。説明や演習はとてもわかりやすかった。だがしかし、ミニCTFは手も足も出ないほど難しかった。なぜ解けるの!?という感じ。パンくず広いだと思ってたら最初のパンくずすら見つけることができなかったでござるよ。

でも確かによく見るとフラグが書かれているので、慣れの問題と認識。楽しかったので勉強決定。

 

 ハードウェアセキュリティ最前線

小学生にDiffile-Hellman 交換カギを説明し、RSA暗号について説明し...というものすごい講義。僕自身も暗号技術入門を大学2年の夏休みに読んだだけなので正直前提知識はあまり頭に入っていなかった。しかし驚いたのは、暗号運用技術ではopensslとか過去のSSL規格の技術的欠陥を利用してCTF競技を行っていたのに対し、この講義ではデジタルオシロスコープを利用して暗号化回路の出力を観測、RSA暗号化に際して行われる計算操作の違いから、10回の電圧波形のうち1回は必ず異なる電圧波形が得られるはずということからオシロスコープで測定。このそくていが結構難しく自分の学科のプライドがちょっと折れた。トリガーってなんだっけ...掃引だっけ?暫く使ってないから忘れちゃったよ、と。

暗号化回路については本当にその通りの動作をしており、しかもその動作から統計的な解析ができるよね、といった内容。

何回か試したが上手く解析はできなかった。うーん、難しい。

ただ理論そのものは面白かったので暗号については要勉強だ。

ガロア理論群論は、数学ガールで教わった とドヤ顔してた時期がありました。ものの見事に忘れてます。要復習。入試でやらかしまくった数弱伝説はまだまだ続く。

組み込みリアルタイムOSとIoTシステム演習

GR-PEACH講義。事前課題は結構簡単に終わったが、本来無関係な東芝へのちょっとした私怨が強化される講義であった。(Ethernetコネクタが使えないといろいろ困る)

その内容は、TOPPERSという組み込みリアルタイムOSをGR-PEACHで利用してロボットを動かす。このロボットを一定時間内で可能な限りセキュアにして防御を固め、ロボコンのような競技を行う。このとき相手のロボットに攻撃を仕掛けたりネットワーク全体を重くしたり、はたまた相手のロボットを乗っ取ったりしてもよいというもはや何でもありでは?という感じだった。僕はネットワークについて何も知らなかったが、担当講師のルータ攻撃もいいですねみたいな言葉からとりあえずルータ使えなくすれば競技不成立で、自チームの勝利確定した時点でルータ落とせば勝ち逃げできんじゃねというクズ思考をし、いそいでそのためのツールのインストールを試みるも、Windows上ではまともに動かなかった。(Cygwinが必要だったが生憎先日アンインストールした)焦ってKali Linuxをインストールしようとするも間に合わず。何もできず残念。

その間僕が属していたグループの人達(通称:プロたち)は操作性を改善させたり脆弱性を突いて他のロボット操作を実現したりと、掛け値なしに「え、すごくない?僕は一体...」という感情を抱いた。

競技そのものは非常に面白い結果になった。ある人はARP攻撃を仕掛けたりしてた。防御方法も様々。これ、競技化できないかな。用意された同一規格の道具や部品から制限時間内にロボットを組み立て、可能な限りの防御を施し、他チームのロボットを攻撃。妨害ありのCTFロボコン

 

ネットワークの知識が強力無比な威力を発揮していた講義で、ネットワークの勉強を強く決心した。

 

おめでとう、コレで君は原子や半導体材料からネットワークまでを勉強しようとしている、何をしたいのかわからないエンジニアに成ることが決定だ!

 

楽しけりゃいいんだよ楽しけりゃ!

どの講義も得られた経験は非常に貴重だった。

もっと学びたい、という意欲が掻き立てられる講義だった。

 

とりあえずここまで書いて公開。