Corredor

ウェブ、プログラミングの勉強メモ。

Ubuntu をインストールするためのライブ USB メモリを作成する

Linux 専用マシンにしようと思って購入した ThinkPad X250。元々 HDD が内蔵されていたが、先日コレを SSD に換装した。元の HDD と SSD との間ではミラーリングやデータ同期等はしていないので、装着した SSD は空っぽだ。

今回は、この空っぽの SSD に Ubuntu をインストールするための「ライブ USB メモリ」を作成していく。

ライブメディアとは

Ubuntu の「ライブメディア」とは、CD や USB メモリなどに Ubuntu の試用環境とインストーラを入れておいて使用するモノを指す。

Windows が搭載されているようなマシンに「ライブ USB メモリ」を挿して、USB メディアを先に読み込んでブートするような BIOS 設定にしておけば、その USB メモリ内の Ubuntu が起動するという仕組みになっている。

コレでまずは自分の PC に Ubuntu を入れたらどんな具合になるか、ストレージとの相性をチェックしたりして、確認が終わったらインストーラを起動する、という流れで使うと良いだろう。

USB メモリを購入する

ライブ USB メモリを作るには、2GB 以上の容量がある USB メモリが必要だ。念のため 4GB 程度の USB メモリがあれば十分だが、最近はそんな小さい容量の USB メモリが逆に売っていなくて、自分は 16GB の格安 USB メモリをビックカメラで買った。

f:id:neos21:20200218000029j:plain

一応中身は Buffalo 製。800円程度。

f:id:neos21:20200217235955j:plain

Ubuntu のディスクイメージをダウンロードする

それでは、USB メモリに書き込む Ubuntu のディスクイメージを準備しよう。

自分は今回、Ubuntu Desktop 18.04.3 LTS 日本語 Remix というイメージを使うことにした。

このイメージは、オリジナルの Ubuntu 18.04.3 (本校執筆時点で最新版の LTS) に、日本語環境を追加したモノだ。最初から日本語での動作環境が整えられているらしいので、環境構築が楽になるかなーと思い選択した。

上のページから ubuntu-ja-18.04.3-desktop-amd64.iso というファイルをダウンロードする。ファイルサイズは 2GB 弱だ。

専用ソフトで USB メモリにディスクイメージを書き込む

ISO ファイルをダウンロードしたら、USB メモリにこのファイルをコピー…すれば良いワケではない。専用のソフトを使って書き込んでやらないと、ライブ USB メモリとしては動作しないのだ。

今回は Windows 用の Rufus という有名なフリーソフトを使用する。

本校執筆時点では Rufus v3.8 が最新版。Rufus v3.8 Portable (ポータブル版) である rufus-3.8p.exe をダウンロードした。

exe ファイルを開いてソフトを解凍し、Rufus を開く。

ネット上の記事では古いバージョンの Rufus を使っていて、スクショどおりの設定項目が見当たらないかもしれない。自分は Rufus 公式サイトのトップにあるスクショを参考に、次のように設定した。

f:id:neos21:20200218000003p:plain

  • デバイス : USB メモリを挿入し選択する
  • ブートの種類 : 先程ダウンロードした ubuntu-ja-18.04.3-desktop-amd64.iso
  • パーティション構成 : MBR
  • ターゲットシステム : BIOS または UEFI
  • 詳細オプションを表示する
  • ボリュームラベル : お任せのまま
  • ファイルシステム : FAT32 (規定)
  • クラスターサイズ : 8192バイト (規定)
    • Rufus 公式サイトのスクショは「4096バイト (規定)」が選択されていたが、自分が使った USB メモリだと8192バイトが規定になっていたので、規定のまま設定を変えずに進めた

というワケで基本的にデフォルトのままで OK。「スタート」ボタンを押すと警告ダイアログが出るが、全てそのまま進めていくと、書き込みがスタートする。

f:id:neos21:20200218000007p:plain

f:id:neos21:20200218000011p:plain

f:id:neos21:20200218000015p:plain

f:id:neos21:20200218000019p:plain

プログレスバーが「準備完了」になったら書き込み完了。「閉じる」ボタンを押下して閉じて良い。

f:id:neos21:20200218000024p:plain

以上

今回はライブ USB メモリを作成するところまで。

次回はいよいよ ThinkPad X250 に Ubuntu をインストールしていこうと思う。

ThinkPad X250 を HDD から SSD に換装する

ThinkPad X250 というノート PC を購入した。購入時は 500GB の HDD が載っており、Windows 10 Pro 64bit がインストールされていたが、コレを SSD に換装し、Ubuntu をインストールしようと企んでいる。

neos21.hateblo.jp

今回は内蔵 HDD を SSD に換装するだけ。ネットを探せば同じ機種で同じようなことをやっている記事はたくさん出てくるのだが、自分も試してみたので記録をば。

必要なモノ

作業に必要なモノは次のとおり。

  • 交換用内蔵 SSD : 2.5インチ。7.5mm 厚でも 9mm 厚でもどちらでも良い
    • 7mm 厚のモノでもスペーサーは不要。X250 内蔵 HDD に付属しているプラスチックの枠を取り付ければ固定されるためだ
  • プラスドライバー : 本体裏のネジを開け閉めする用

換装作業自体に必要なのはコレだけである。

自分が買った SSD は、ADATA Ultimate SU650 ASU650SS-240GT-R という型番のモノ。240GB・2.5インチ・7mm 厚の SSD だ。ネットで評判を調べると賛否両論だが、4,000円程度の格安 SSD なので、まぁ気にしない。気になる人はサムスンでも選ぶと良い。

ADATA Technology Ultimate SU650 SSD 240GB ASU650SS-240GT-R

ADATA Technology Ultimate SU650 SSD 240GB ASU650SS-240GT-R

  • 発売日: 2018/09/12
  • メディア: 付属品

自分は今回、HDD 側の Windows データを全く利用しないので、SSD へのミラーリングは行わない。ミラーリングしたい場合は、以下の記事などを参考に他の材料を用意しよう。

neos21.hatenablog.com

SSD 換装後に Ubuntu をインストールしようと思っているので、インストールに使用する USB メモリなどは別途購入したが、とりあえず換装作業で必要なのは工具と SSD だけだ。

BIOS でブート順を変更しておこう

自分は空っぽの SSD を装着し、あとで USB メモリから Ubuntu をインストールしようとしているので、先に BIOS でブート順序を変更しておくことをオススメする (この作業は任意だが一応紹介しておく)。

ThinkPad の電源を入れたらすぐに F1 キーを数回押下し、BIOS 画面に入る。

BIOS 画面に入ったら、「Startup」→「Boot」と進み、「Boot Priority Order」画面に入る。ココで「+」キーや「-」キーを使って、ブート順を変更する。

f:id:neos21:20200218000127j:plain

f:id:neos21:20200218000054j:plain

f:id:neos21:20200218000059j:plain

換装後、空っぽの SSD を真っ先に見に行っても何もないので、上部に USB ポートを寄せておき、HDD は最後の方に並べておく。

並び替えが終わったら F10 キーを押下し、設定を保存して BIOS を終了する。終わったら一度電源を切ろう。

f:id:neos21:20200218000105j:plain

BIOS でフロントバッテリーを無効化する

SSD が用意できたからといって、いきなり裏蓋を開けて HDD を換装してはいけない。ThinkPad X250 には、本体内部に内蔵されている「フロントバッテリー」というモノがある。本体裏面の取り外せるバッテリーは、「リアバッテリー」と呼ばれるモノなのだ。

この「フロントバッテリー」を、予め BIOS から無効化しておく必要がある。

まず、AC 電源を外してバッテリー駆動の状態にし、ThinkPad の電源を入れる。そしたらすぐに F1 キーを数回押下し、BIOS 画面に入る。

BIOS 画面に入ったら、「Config」→「Power」と進み、「Disable Built-in Battery」を選んで Enter キーを押す。

f:id:neos21:20200218000132j:plain

f:id:neos21:20200218000136j:plain

確認のダイアログが出るので「Yes」を選択すると、電源が落ちる。そして電源ボタンを押下してもマシンが起動しなくなる。

f:id:neos21:20200218000121j:plain

コレでフロントバッテリーが無効化できた。作業を続ける場合は AC 電源を挿してはいけない。

もし作業をせずにフロントバッテリーの無効化を解除するには、AC 電源を挿して電源ボタンを押下すれば、元に戻せる。

リアバッテリーを外す

フロントバッテリーの無効化ができたら、リアバッテリーを外す。

f:id:neos21:20200218000300j:plain

本体裏面、リアバッテリーの周囲には「1」と「2」の鍵マークがあるだろう。まずは「2」の鍵マークを引っ張って、バッテリーの右半分を上に上げておく。爪が挟まるくらいのわずかな隙間ができたら OK だ。

f:id:neos21:20200218000306j:plain

そうしたら次に「1」の鍵マークを引っ張って、リアバッテリー全体を上にスライドし、外していく。

f:id:neos21:20200218000313j:plain

f:id:neos21:20200218000318j:plain

コレでフロントバッテリーは無効、リアバッテリーは物理的に切り離せたので、安全に HDD を取り外し SSD に換装していけるようになった。

f:id:neos21:20200218000207j:plain

ネジを外し裏蓋を開ける

本体裏面には8つのプラスネジがあるので、コレをドライバーで外す。個体によっては経年で若干固くなっていたりするかもしれない。ネジを緩め切ってもポロッと落ちてこないこともあるので、ピンセットなどでネジを取り出してやると良いだろう。

ネジを8つとも取ったら、本体側面の隙間に爪を突っ込んでいったり、マイナスドライバーみたいなモノを挟み込んだりして、少しずつ開けていく。一度にパカッとは開かないし、無理に開けようとすると固定しているプラスチックのツメが割れてしまうので、本体側面を一周するように、少しずつ隙間をこじ開けていく。

うまく隙間が作れていくと、最後は手前の方から開くはずだ。左下に銀色のアルミ箔が巻かれた HDD が見えると思う。

f:id:neos21:20200218000212j:plain

HDD を取り外す

f:id:neos21:20200218000218j:plain

内蔵 HDD は、黒いプラスチックの枠に取り付けられていて、ネジ1本で留めてあるのでまずはこのネジを外す。

f:id:neos21:20200218000222j:plain

HDD が持ち上げられるようになったら、SATA コネクタを慎重に外していく。だいぶ固いが、力ずくで動かして割ったりしないよう注意。

コネクタが外れたら、HDD が取り付けられているプラスチックの黒枠も取り外そう。素手でサクッと取れる。

f:id:neos21:20200218000228j:plain

HDD は 9.5mm 厚のモノが付いていた。

f:id:neos21:20200218000233j:plain

SSD を取り付ける

ついに、購入した SSD の取り付けだ。

f:id:neos21:20200218000239j:plain

HDD から取り外したプラスチックの黒枠を SSD に取り付ける。コレにより、7mm 厚の SSD でもスペーサーを使わずにキチンと固定できる。もちろん、9.5mm 厚の SSD でも同様に作業すれば良い。

f:id:neos21:20200218000249j:plain

黒枠を取り付けたら SATA コネクタを取り付ける。向きやケーブルに注意して本体に配置し、SSD 用のネジ1つを締めてやる。

f:id:neos21:20200218000244j:plain

f:id:neos21:20200218000254j:plain

裏蓋を取り付ける

SSD が装着できたら、裏蓋を閉める。本体上部 (リアバッテリー側) にいくつか小さなツメがあるので、コレを割らないよう、慎重にハメ込んでいく。

ハメ込みが終わったら8つのネジを締めて終了。AC アダプタを接続して電源ボタンを押下すれば、フロントバッテリーの無効化も解除され、マシンが起動し始めるだろう。無論、空っぽの SSD では何も動かないがw

以上

とりあえず HDD から SSD への換装は以上で終わり。ThinkPad はこうした改造がしやすく、それでいて丈夫なので、改造初心者でも扱いやすいだろう。

SSD も最近は新品が5,000円程度から売っているので、特にこだわりがなければ安いモノを買ってサクッと換装し、高速化できるだろう。

参考文献

Angular で accesskey 属性を使ってキーボードからボタンを押下する

拙作の Angular アプリ「Neo's Hatebu」を、個人でちょくちょく使っては手直ししている。

neos21.hatenablog.com

このアプリは、はてブのエントリごとに「削除する」ボタンが付いていて、一度読んだエントリを非表示にできるというモノ。スマホで見る時は「削除する」ボタンをポチポチタップしながら、興味のない記事・目を通した記事を消していっている。

PC で操作するときも同様に、マウスで「削除する」ボタンをカチカチクリックしながら記事を消しているのだが、最近どうもこの「クリック操作」が面倒臭く感じるようになってきた。

せっかく PC なので、キーボードで操作したいじゃないか。

ということで、ボタンに accesskey 属性を付与して、キーボードショートカットで操作できるようにしてみる。

自分は記事一覧を1件目から順に見て削除していくので、特定のアクセスキーを押すと記事の1件目がどんどん消していける仕組みを考えた。

Angular の場合、エントリ一覧を表示している *ngFor の内部で index を確認し、1件目を表示している場合のみ、ボタンに accesskey 属性を付与するように実装してやった。

<div *ngFor="let item of items; index as i">
  <ng-template *ngIf="i === 0; else others">
    <button type="button" (click)="removeItem(item.id)" accesskey="d">削除する</button>
  </ng-template>
  <ng-template #others>
    <button type="button" (click)="removeItem(item.id)">削除する</button>
  </ng-template>
  
  <p>{{ item.name }}</p>
</div>

イメージはこんな感じ。*ngIfelse 【テンプレート名】 というイディオムを使って分岐させているが、このレベルであれば単純に

<button type="button" (click)="removeItem(item.id)" *ngIf="i === 0" accesskey="d">削除する</button>
<button type="button" (click)="removeItem(item.id)" *ngIf="i !== 0"              >削除する</button>

と並べてあげて、accesskey の有無しか違いがないことを表現してやっても良いかもしれない。

このようなボタンを含む要素が *ngFor 属性によってループし、複数表示されている。accesskey 属性によってクリックイベントが発生するので、(click)="removeItem()" 関数が発火する。この removeItem() 関数では配列 items から指定の要素を削除しているテイなので、1件目が選ばれたら、それまで2件目に表示されていたモノが1件目として再描画され、accesskey がまた付与されるということになる。こういう動きなので、アクセスキーを連打すれば、1件目の記事が1つずつ削除されていくことになる。

コレで思ったとおりのことができた。

AngularによるモダンWeb開発 基礎編 第2版

AngularによるモダンWeb開発 基礎編 第2版

  • 作者:末次 章
  • 出版社/メーカー: 日経BP
  • 発売日: 2019/02/23
  • メディア: 単行本

Angular超入門

Angular超入門

  • 作者:掌田 津耶乃
  • 出版社/メーカー: 秀和システム
  • 発売日: 2019/06/18
  • メディア: 単行本

Heroku アプリに GitHub リポジトリを関連付けて git push 時に連動して Heroku デプロイを行わせる

久々に Heroku。

Heroku アプリのソースコードを GitHub で管理していて、master ブランチが更新されたら自動的に Heroku にデプロイしたい、という場合は多いと思う。

最近 GitHub Actions という CI/CD 基盤が登場したので、最初はコレを使って git push 時に Heroku へのデプロイを呼ぼうかと思っていたのだが、Heroku の管理画面を見たら GitHub 連携機能があったので、コチラで完結させることにする。

Heroku 管理画面の「Deploy」タブを開き、次のように設定していく。

  1. Deployment method : GitHub アカウントを紐付ける
  2. App connected to GitHub : GitHub リポジトリ名を選択し、紐付ける
  3. Automatic deploys : master ブランチの更新時に自動的に Heroku デプロイを行うよう、「Enable Automatic Deploys」ボタンを押す
    • 既に他に CI 連携をしていたりする場合は、Wait for CI to pass before deploy にチェックを入れておくと、CI をパスしてからデプロイするよう待機してくれる

設定はコレだけ。

f:id:neos21:20200216155333p:plain

コレで実際に git push をトリガーに自動デプロイが動くようになったので、もう git push heroku master は不要になった。良き良き。

たいていのことは20時間で習得できる

たいていのことは20時間で習得できる