0から学ぶIT技術

ローカルのドキュメント載せたり、IT関連の催し物の参加報告

Windows10とArchLinuxのデュアルブート!

こんにちは。

今回は、ArchLinux*1Windowsデュアルブート*2をしたいと思います。

結果から言いますと、失敗し、Windowsを消してしまい、ArchLinuxもインストールできませんでした(が、成功例も載せます)。

その時の自分の考えと、やった行動を残すと共に、なんで駄目だったのかなどの勉強を兼ねて、執筆します。

 

前提として

私自身調べていく中で、デュアルブートはおすすめできません。

触るくらいなら、Virtualboxなどの仮想でいいと思います。

もしくは古いPCなどに入れたりのほうがおすすめです。

windowsとlinuxのデュアルブートの問題点

記者の眼 - WindowsとLinuxのデュアル・ブートに落とし穴:ITpro

 

当初の予定
  1. Windowsに空きパーティション*3を作る。
  2. ArchLinuxのUSBインストールメディア*4を作る。
  3. ArchLinuxをインストール。

 

f:id:naro3:20161015183011p:plain

完成図はこんな感じ(画像のUbuntuがArchだと考えてください)。

 

ArchLinuxのISOファイルのダウンロード

Arch Linux - Downloads

から「Japan」の「jaist.ac.jp」を選択し、「archlinux-[日付]-dual.iso」を選択しダウンロードします。

(「.iso」を含む項目の中では一番上にあります。)

 

Windowsに空きパーティションを作る

Windowsの方で、

「スタートメニュー→コンピュータを右クリック→管理をクリック」

でコンピュータの管理画面を起動、左側のツリー表示から「記憶域→ディスクの管理」でディスクの管理画面を起動し、Linux用のパーティションを作成します。

パーティションの分割は分割したいHDDの領域を右クリックします。

好みの領域のサイズを選択し、「ボリュームの縮小」をクリックすると、パーティションが、分割、作成されます。

このとき「未割り当て」というパーティションができます。

*このとき、網掛けのパーティションがあると思いますが、このパーティションMBR*5です。今回のようにWindowsLinuxを追加する場合はこのMBRLinux用のものに変わります。

 

ArchLinuxのUSBインストールメディアの作成

 この作業は、ArchWikiにはWindowsの場合は、「Cygwin*6」や、「dd for Windows」という方法が書いてありますが、この方法通りやっても自分はできませんでした。

後で調べたところ、書き込みがうまく行ってなかったようです(これが失敗の元凶)。

ですので、素直にLinuxにて、作成するほうが確実です。

# dd bs=4M if=[ISOファイルをパスで指定] of=/dev/[USBデバイス指定] && sync 

ですので、私は

# dd bs=4M if=/home/user/Download/archlinux-2016.9.3-dual.iso of=/dev/sdb1 && sync

としました。

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

 

余談(失敗談)

ここで私の失敗を執筆します。興味ない方は飛ばしてください。

私は、先に書きました、WindowsでのUSBインストールメディア作成を試み、書き込みがうまくいかなかったです(たまに起動してもrootfs*7となっている)。

ですので、USBを使うのが悪いと考え、自分でISOファイルを展開し、空きパーティションに入れました。

これで、大丈夫だと思ったのですが、よく考えたら、MBRGRUBに変えてないのに選べるわけがなく、Windowsも起動しなくなりました。

このとき私は、どっちのOSを選んでいいかわからないから、Windowsも起動しないと思ってました。

ArchLinuxをちゃんとインストールし、MBRGRUB*8に変えれば、Windowsパーティションは無事だから、復旧できるとも思ってましたが、後日、Archユーザーの先輩にUSBインストールメディアを作成してもらい、確認したら、Windowsパーティションも消えてました。

この際に先輩とWindowsで書き込んだUSBとArchで書き込んだUSBの中身を比べたら、3bit目から違ってました。また、後ろの方は、ほとんど空っぽにもなってました。

これについては、自分の力不足もあり、まだ解明できてないです。わかり次第、追記します。

 

今回はここまでです。

次回は、「ArchLinuxのインストール」という記事で、残りの作業を執筆します。

*1:Linuxの種類のひとつ。

*2:パーティションごとに実際のOSをインストールすることで、単一の物理コンピュータ上で複数のOSを利用する形態。

*3:ハードディスクの記憶領域を論理的に分割し、その個々の領域のこと。

*4:ソフトウェアをインストールするためのプログラムやデータファイルが収録された記録媒体。

*5:単数または複数のパーティションに分けられたディスクにおける先頭セクタ(これはパーティション外に存在する)にある、ブートセクタの一種。

*6:WindowsLinuxのコマンドが使えるようになるソフトウェア。

*7:Linuxにおいて、ルートディレクトリに対応するファイルシステム

*8:GNUプロジェクトにて開発されている高機能なブートローダー。

ISUCON6予選に参加してきました

f:id:naro3:20161030182201p:plain

こんにちは。

ようやくIT関係の記事が執筆できて嬉しいです。

今回はISUCON*16に参加してきましたので、その感想や、結果報告となります。

 

メンバー

同好会の2年生の先輩、私と同級生。

2年生1人、1年生2人という構成です。

当初、役割分担などはありませんでした。(後述)

 

目標

予選突破。

有意義な時間にする(わけがわからないまま終わらない)。

 

勉強したところ

当初予定していたのは

言語、SQL*2Linux kernel*3でしたが、

準備期間が2週間しかなく、私達1年生は言語は何も書けず、データベースも触ったことがない状況でしたので、Python*4だけに集中して勉強しました(大変でした)。

そのため、役割分担もありませんでした。

先輩も忙しく、一緒に作業する機会があまりなかったので、進捗を報告し、アドバイスを受けながら、勉強しました。

 

問題

今回は、nginx*5で構築されたwebサーバーを限界まで高速化するという内容でした。

レギュレーションはこちらです。

isucon.net

 

当日の流れ

当日は、Microsoft azure*6にてVirtual Machine*7を構築するところからの開始でした。

まず、DearmSpark*8ではVirtual Machineを構築できないという問題に気づくまで1時間かかりました(自分の確認ミスです、すいません)。

次に、Virtual Machineの接続ボタンが押せないというトラブルが発生、先輩がSSH*9コマンドで接続、windowsの私たちは、Tera Term*10で先輩のパソコンに接続して作業をようやく開始(ここまでに2時間)。

先輩から今回のサーバーの構造や、データ、通信の流れを聞き、大まかに役割を分けました。

  • 先輩 全体を好きなように見てもらう。
  • 同級生 webサーバーの.pyファイル*11
  • 私 nginxの設定ファイル。

私は、まずnginxにキャシュをできるようにし、ついでに同時接続数なども変更しました。

その場で調べた付け焼き刃の知識でやりました。

qiita.com

qiita.com

試しにベンチマークをしてみました(ポータルサイトがあり、そこにIPを送ると点数で返してくれます)。

結果は「Fail」内容は「初期リクエストに失敗しました。」となっています。

GET /initializeが5秒以上だと駄目だと、確認しました。

さっそく、試すが5秒かかっているようには見えないです。

一応、.pyも見ましたが、よくわかりませんでした。

先輩にも聞きましたが、わからなかったです。

 

余談

先輩がソースコードを見て楽しくなっていました。

途中から、権限がないためPOSTできないのをできるようにしたり、ソースコードをじっくり見て、先輩に解説してもらったり、JavaPythonのクラスの仕様の違いなどの勉強会になりました(16時頃から)。

 

結果

Fail解決できないまま0点でした(Failは失格という扱いになるらしいです)。

 

感想

初めての大会でしたので気合入ってましたが、残念な結果でした。

特に「やってやった!」という感じがなかったのが悔しいです。

ですが、勉強会など有意義な時間でした。

また、Pythonを勉強するいいきっかけになったので、参加してよかったです。

来年は点を取れるように頑張ります。

運営の方々、ISUCON6に関わった方々、本当にありがとうございました。

*1:お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングの大会。

*2:関係データベース管理システム(RDBMS) において、データの操作や定義を行うためのデータベース言語(問い合わせ言語)。

*3:OSの中核である部分。アプリケーションとハードウェアレベルでの実際のデータ処理との間の架け橋。

*4:プログラム言語の1種。

*5:フリーでオープンなWebサーバー。

*6:MicrosoftのIaaS/PaaS。

*7:仮想マシン。1つのコンピューターで複数のOSを動作できる。

*8:Microsoftが提供する学生支援プログラムである。

*9:暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル

*10:windowsで使用できるリモートログオンクライアント。

*11:Pythonで書かれたプログラムファイル。

専門学生の日常

こんにちは。

昨日ブログを立ち上げたばかりで、可能ならIT技術の記事を執筆したかったのですが、現在、私がisucon*1のためにチームメンバーの家に泊まっており、手元にドキュメント*2がないため、今回は私自身の日常について執筆します。

「専門学生の日常ってどうなの?」という質問は、多く受けますので、この機会に「専門学生の日常が気になる方」、「専門学校への進学を考えている方」の助けになれば幸いです。

 

登下校

普段は、携帯で記事を読むなどで勉強しています。

試験や、大会前などは読書や、座れたらパソコンを使っています。

 

授業

専門学校の授業は、資格取得に向けての授業が大半を占めます。

ですので、プログラムを書いたり、サーバーを構築したりなどの授業は殆どないです。

(追記:専攻に分かれてから、実習は増えましたが自分で勉強済みのことが多いです。)

また、授業は生徒の足並みを揃えての進行ですので、進みは遅いです。

私は大体、自分の勉強9割、授業1割と時間を割いています(先生から見たら私も...)。

また、3:5:2で、「睡眠中の人」、「ゲームや音楽、自分の勉強と共に授業を受けている人」、「真面目に授業を受けている人」といった印象を受けています。

 

放課後

放課後は、ほぼ毎日、所属している同好会の勉強会に参加しています。

勉強会の内容は、

  • 先輩方が講師となっての授業形式
  • 大会に向けての自習形式
  • 自習

 の3種類です。

同好会は、実践的な内容が多く、先輩という先人から多くの知識や経験、大会参加という、新たな技術の勉強のきっかけを得ることができ、同好会を通して人脈、視野を広げられたことも、本当に助かっています。

同好会やサークルに入ることはおすすめです。

 

休日

休日は、ゆっくり寝たり、友達と遊んだり、プログラムを書いて遊んだりしています。

また、IT関連の催し物や、資格試験などにも参加しています。

 

まとめ

「専門学生の日常」というタイトルで執筆しましたが、あくまで私の日常です。

専門学生の日常の一例だということを理解してください。

更に詳しく知りたいことがある方は、コメント欄よりお願い致します。

IT関係ない質問も歓迎です。

*1:お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングの大会

*2:文書、書類のこと。ここでは作業の記録をまとめたものを指す。

はじめに

初めまして、こんにちは。

今回は、このブログの趣旨や、私自身の情報などを書いていこうと思います。

このブログは、「0から学ぶIT技術」の名前の通り、私自身、今年の4月に専門学生となり、IT技術の勉強を始めました。

入学前は、ネットサーフィン以外はパソコンに触れることがなく、IT技術といえるものは持っていないどころか、知覚さえしていない状態でした。

なぜITの道を選んだかなどの理由は、別の記事にて執筆予定です。

記事を書き始めた理由は、ローカル内のドキュメントが増えてきたということ、ドキュメントをブログにする際に、復習になると同時に客観的視点を意識して書くことで、勉強になると考えたからです。

ですので、このブログ内での記事は用語の説明など、0からIT技術を学ぶ方を意識したブログを目指していきます(自分自身の勉強になる)。

最後になりますが、間違いの指摘やアドバイス、質問なども歓迎ですので、気軽にコメント欄を活用してください。

及ばないところも多々あると思いますが、これからよろしくお願い致します。