USBメモリでCentOS8をインストール – インストール用USBの作成

更新が途絶えてしまい、気づけばCentOSも8になってしまいました。

ということで心機一転、今度こそ続けるという意思と共に改めてCentOS8をインストールしてみたいと思います。

以前に書いた「USBメモリでCentOS7をインストール – USBにインストーラを入れる」と同様にまずUSBメモリにインストーラを入れたいと思います。

この記事で行うこと

  1. CentOS8をダウンロード
  2. Rufus(後述)をダウンロード
  3. Rufusを使ってCentOS8インストール用のUSBメモリを作成

1. CentOS8をダウンロード

以前のCentOS7の配布サイトと同じ、以下のサイトからダウンロードできます。
https://www.centos.org/download/

CentOS8の配布サイト画面
CentOS8の配布サイト画面

CentOS7の頃とは違い、リンクが2つになっています。

「 CentOS Linux DVD ISO 」が正式なCentOS8で、

「 CentOS Stream DVD ISO 」はいわゆるベータ版という理解で良いと思います。

今回は 「 CentOS Linux DVD ISO 」 をインストールしたいと思います。

アイコンをクリックすると、リンクの一覧が表示されます。

CentOS8ダウンロードリンク画面
CentOS8ダウンロードリンク画面

CentOS7同様にCentOS8もミラーサイトからダウンロードする形です。

そもそもフリーソフトウェアではこのようにミラーサイトからダウンロードさせるものが多いですね。

どこからダウンロードしても良いですが、「 Other mirrors further away: 」より上にあるリンクが日本近辺のものなので、こちらのリンクをオススメします。

2. Rufusをダウンロード

RufusはブータブルUSB作成ツールなどと言われるものです。

先ほどダウンロードしてきたISOファイルはDVDに入れる為のファイルとなります。

そのため、これをそのままUSBメモリに入れてもOSをインストールできるようにはなりません。

OSをインストールすることが可能なUSB(ブータブルUSBと言います)を作成するのが、ブータブルUSB作成ツールとなります。

今回はRufusというツールを使いたいと思います。

他にもUNetbootinなど同様のツールはありますので興味のある方は調べてみてください。

以下のサイトからダウンロードできます。
https://rufus.ie/ja_JP.html

Portableと記載されているものとされていないものがあるかと思いますが、私が確認した限り違いはなく、両方ともインストール不要でしたでした。好きな方を使ってください。

3. Rufusを使ってCentOS8インストール用のUSBメモリを作成

Rufusを起動すると設定画面が表示されます。

Rufus初期画面
Rufus初期画面

まず、ブータブルUSBにするデバイス(USBメモリ)を選んでください。

ブータブルUSBにするともともと入っていたデータは全て削除されますので、注意してください。

次に、「ブートの種類」の右にある選択ボタンをクリックして、先ほどダウンロードしたCentOS8を選択してください。

最後に一番下にあるスタートボタンをクリックします。

他のステータスは基本的にいじる必要はありません。

警告画面(最新のブートローダがない場合)
警告画面(最新のブートローダがない場合)

インストールを開始すると上記の警告画面が表示される場合があります。

これは、OSで使われるブートローダ(OSを起動するためのプログラム)がRufusが持っているブートローダよりも新しい時に表示されます。

ここは「はい」をクリックしてOSで使われているブートローダをダウンロードしましょう。

※Rufusのバージョンがより新しくなると表示されなくなる……はずです

選択画面(ISOかDDか)
選択画面(ISOかDDか)

ハイブリッドISO形式ではブータブルUSB作成ツール無しでもLinuxから簡単にブータブルUSBを作成することができます。こうして作られるのがDDイメージです。

しかし、DDイメージで書き込んだ場合はUSBの中身にアクセスすることができなくなります。この場合、CentOS8を起動するだけのUSBとなります。

それで困ることもあまり無さそうですが、今回はせっかくブータブルUSB作成ツールを使っていますし、ISOイメージで書き込みましょう。

※もしISOイメージモードで上手くいかなかった場合はDDイメージモードを試してみてください。

作業しているPCやUSBメモリの性能によっても変わると思いますが、だいたい数十分程度で完了します。

CentOS7と違い、Minimal ISOが無くなったので時間がかかるようになってますね……

ブータブルUSB作成完了後の画面
ブータブルUSB作成完了後の画面

完了しても完了したという表示は無いので間違ってもう一度実行しないように気をつけてください。

まとめ

今回はCentOS8のインストールの下準備としてブータブルUSBを作成しました。

RufusはCentOSに限らず様々なISOイメージからブータブルUSBを作成できるので、Ubuntuなど別のディストリビューションのブータブルUSBも同じように作成できるはずです。

これについては他のサイトを探してみてください。

次回はCentOS8のインストールに進みたいと思います。

Linuxの基本コマンド – ファイル操作

Linuxを使うに当たって(特にサーバ運営する上では)コマンドを避けて通ることは出来ません。

本ブログではコマンドを用いる際にはコマンドとオプションについてはなるべく解説を入れるようにしています。

しかしファイルの移動やコピー、名前変更の全てに解説を入れてしまうと冗長になってしまいます。

そのため、ここでファイル操作について簡単に解説したいと思います。

この記事で行うこと

  1. Linuxのファイル構造について
    1. Windowsと比べたLinuxのファイル構造
    2. 相対パスと絶対パス
  2. ファイル操作コマンドの解説
    1. pwd
    2. ls
    3. cd
    4. mv
    5. cp
    6. rm

1. Linuxのファイル構造について

1-1. Windowsと比べたLinuxのファイル構造

Linuxのファイル構造は全て「/」(ルートと呼びます)から始まります。

とても乱暴にWindowsで例えて言うとCドライブしかないようなものです。(実際には全く違いますが、それはまた別の機会に)

さて、Windowsのユーザフォルダの在処を見ると(私のWindows10の場合です)

C:¥Users¥(ユーザ名)

となっています。(こちらで半角の「¥」を入力すると環境の問題から「\」と表示されてしまうので、全角で表記しています)

C:を起点にして、Usersフォルダの中にある(ユーザ名)フォルダにドキュメントやピクチャなどのユーザ固有のデータが入っている訳ですね。

ではLinuxはどうなるかと言うと(私のCentOS7の場合です)

/home/(ユーザ名)

となっています。

ルートを起点にして、homeディレクトリ※の中にある(ユーザ名)ディレクトリにユーザ固有のデータが入っている訳です。

※Linuxではフォルダのことをディレクトリと言います。厳密には違うのですがそう覚えて困ることはないです

1-2. 相対パスと絶対パス

これはWindowsにも存在する概念なのですが、おそらくあまり使うことは無いと思います。

例えば

/home/hoge/fizz/bazz/fizzbazz/centos/7/blog

とまあ、こんな感じの入り組んだディレクトリがあるとします。

これが絶対パスです。

そして、仮に今

/home/hoge/fizz/bazz/fizzbazz/centos

に居るとします。

ここから、先程の

/home/hoge/fizz/bazz/fizzbazz/centos/7/blog

に移りたい時に、「/home/hoge/fizz/bazz/fizzbazz/centos/7/blog」へ移動といちいち打ち込むのは面倒です。

なので「今の場所から7/blog」へ移動と打ち込むだけで済むようになっています。

ちなみに今の場所を表すのは「./」です。

なので先程のは「./7/blog」と表せます。

なお「../」は一階層上を表します。

この場合は「/home/hoge/fizz/bazz/fizzbazz」になります。

 

/home/hoge/fizz/bazz/fizzbazz/centos/7/blog」というのが絶対パス

./7/blog」というのが相対パスです。

絶対パスか相対パスかの区別はルート(/)から始まるか否かでつけることが出来ます。

どちらもファイル操作を行う上で利用しますので覚えておいてください。

3. ファイル操作コマンドの解説

ここで挙げる5種類のコマンドはLinuxを使う上で頻繁に使いますので覚えておいた方が良いです。

2-1. pwd

これはいま自分がいるディレクトリを表示するコマンドです。

print working directoryの略と言われます。

使い方は以下の通りです。

pwd [オプション]

一応オプションとは書きましたが実際にはオプションを使うことはないと言って良いです。

ブログなどで紹介される手順で見かけることは無いと思いますが、自分が作業しているディレクトリが合っているか心配になったときに使うと便利です。

2-2. ls

これはファイルの一覧を表示するコマンドです。

listの略と言われます。

使い方は以下の通りです。

ls [オプション] [表示したいディレクトリ]

見たいディレクトリを省略すると、自分が今居るディレクトリのファイルの一覧が表示されます。

また、よく使われるオプションは以下の通りです。

-l : 詳しい情報を表示(ファイルの所有者や権限など)

-a : 隠しファイルも含めて表示

ファイルが存在しているか、ファイルの権限が正しいかを確認する際によく使います。

2-3. cd

これはいま自分が居るディレクトリを移動するコマンドです。

使い方は以下の通りです。

cd [移動したいディレクトリ] [オプション]

 

こちらもオプションが使われることはあまりないです。

本ブログでは絶対パスを使うことが多いのでこのコマンドを使うことはあまり無いです。

ただ、ファイルの圧縮解凍など自分が居るディレクトリが関わるコマンドがあるのでその際にはこのコマンドで目的のディレクトリに移動してから作業します。

2-4. mv

ファイルを移動するコマンドです。

使い方は以下の通りです。

mv [オプション] [移動したいファイル] [移動先の場所(ファイル)]

このコマンドも頻繁にはオプションを使いません。

移動したいファイルにディレクトリを書き込んだ場合、ディレクトリを丸ごと移動できます。

また、移動先をファイル名で指定した場合はそのファイル名に変更できます。

例えば、

mv /home/yuto/file1 /home/file2

とした場合は、yutoディレクトリ内のfile1が消えて同じ内容のfile2がhomeディレクトリ内にできます。

このことを忘れると「ファイル名を変えるコマンドって無かったっけ?」と探す羽目になったりするので注意してください。

※renameというファイルの名前を変えるのにうってつけそうなコマンドがありますが、これは大量のファイルの名前を一括で変更する用途のコマンドです。これの存在で余計に混乱したりします。

2-5. cp

ファイルをコピーするコマンドです。

使い方は以下の通りです。

cp [オプション] [コピーしたいファイル] [コピー先の場所(ファイル)]

よく使うオプションとしては「-r」が挙げられます。

mvと違いcpでは単にディレクトリを指定してもディレクトリごとコピーはされません。

この際にオプションに「-r」を指定するとディレクトリごとコピーしてくれます。

また、コピーのファイル名を直接指定することで同じ内容の別のファイルを作ることが出来ます。

例えば、

cp /home/yuto/file1 /home/yuto/file1.backup

とした場合は、yutoディレクトリ内のfile1と同じ内容のfile1.backupというファイルが新たに出来ます。

ソフトウェアをインストールしてから、設定ファイルをいじる前には必ずこうしてバックアップを取るようにしてください。

何か問題があったら逆にfile1.backupをfile1にコピーして元に戻すことが出来るようになります。

2-6. rm

ファイルを削除するコマンドです。

使い方は以下の通りです。

rm [オプション] [削除したいファイル]

よく使うオプションとしては「-r」と「-f」が挙げられます。

rmでは単にディレクトリを選択してもディレクトリを削除できません。

先にディレクトリの中身をすべて消してから「rmdir」という別のコマンドでディレクトリを消します。

しかし、オプションに「-r」を指定するとディレクトリとその中身を一気に消すことができます。

また、rmでは基本的に削除前にファイル毎に削除するか確認されます。しかし、「-f」を指定するとこの確認がなくなります。これは大量のファイルが入ったディレクトリを消したいときに便利です。

しかし、これらのコマンドを使うときには非常に注意する必要があります。

Linuxにはゴミ箱はありません。削除したらそれっきりです。rmを使う際には慎重に行いましょう。

最悪重要なファイルをすべて失うことになりかねませんよ。

まとめ

Linuxのファイル構造と頻出のファイル操作コマンドについて簡単な説明をしました。

しかし、この記事はわかりやすさ優先でかなり内容を端折っていますので、興味があればそれぞれ調べてみてもらえればと思います。


2020/5/6 rmコマンドを追記

CentOS7のパッケージの更新を行う+自動更新の設定

インストールした直後のOSが最新であるとは限りません。というより最新でないことの方が多いです。

Windowsもインストール直後は何度も更新のための再起動と言って強制的に再起動されていたかと思います。

CentOS7ではWindowsのように勝手に更新をしだしたりしないため、自分で更新や自動更新の設定をする必要があります。

ここではパッケージの更新と自動更新の設定を行います。

この記事で行うこと

  1. パッケージの手動更新
    1. yum updateコマンド入力
  2. 自動更新の設定
    1. yum-cronのインストール
    2. yum-cronの設定
    3. yum-cronの起動・自動起動設定

1. パッケージの手動更新

1-1. yum updateコマンド入力

パッケージの更新用のコマンドはとても簡単です。

ただし、一般ユーザでは行えないので、rootで実行するようにしてください。

# yum update -y

yum :
パッケージ管理ソフト。Windowsで言うところの「プログラム(アプリ)と機能」

update :
yumのコマンドで、パッケージの更新を行う。引数にパッケージ名を指定するとそのパッケージのみ更新を行うことも可能。今回は全てのパッケージ更新を行うため指定しない

y :
全ての問い合わせにyesで答える。これを指定しない場合は更新するパッケージの一覧を表示した上で本当に更新を行うか確認が入るようになる。

2. 自動更新の設定

パッケージの自動更新設定を行います。

本稿ではすべてのパッケージを自動更新させる前提で記述しています。

この方法は更新を忘れてしまうリスクは下げますが、最新のパッケージと互換性がない為にシステムやアプリに不具合を生じるリスクがありますのでご注意ください。

2-1. yum-cronのインストール

直接cron(Linuxの自動タスク起動)にyum updateを書き込むという方法もありますが、今回はyum-cronというパッケージを使います。

その名の通りyumのcronを管理するパッケージです。

CentOS7をminimalインストールでインストールした場合、yum-cronは入ってきません。

このため、まずyum-cronをインストールする必要があります。

#yum install yum-cron -y

install :
yumのコマンドで、パッケージのインストールを行う。引数にインストールしたいパッケージ名(今回は”yum-cron”)を入力する。

ちなみに既にインストールされていた場合でも、エラーが出て何も起きないだけです。

2-2. yum-cronの設定

yum-cronの設定には
/etc/yum/yum-cron.conf
ファイルを修正します。

先に以下のようにバックアップを取ってください。

# cp /etc/yum/yum-cron.conf /etc/yum/yum-cron.conf.backup

cp : ファイルのコピーを行う。最初の引数にコピー元のファイル名、次の引数にコピー先のファイル名を入れる。

次にファイルを修正します。

/etc/yum/yum-cron.conf

apply_updates = no //パッケージの更新を行うか

↓

apply_updates = yes

ちなみに、更新の頻度についてはここから設定できません。

1日1回の更新になります。

2-3. yum-cronの起動・自動起動設定

以下のコマンドで起動します。

# systemctl start yum-cron

systemctl : サービスの起動・終了などの管理を行うコマンド

start :
systemctlのコマンド。サービスを起動する。引数に起動したいサービスの名称を入れる。ちなみに、終了は”stop”。

起動しただけだと再起動の際に止まってしまいます。このため、自動起動の設定も行います。(Windowsで言うところのスタートアップに登録)

# systemctl enable yum-cron

enable :
systemctlのコマンド。サービスの自動起動を設定する。引数に自動起動の設定をしたいサービスの名称を入れる。ちなみに、自動起動を止める時は”disable”。

まとめ

今回はパッケージの更新と自動更新の設定を行いました。

古いパッケージを使い続けるということは既に修正されている脆弱性にも晒され続けるという無用なリスクを負うことになるので、なるべく最新の状態で使っていきたいものです。

なお、このyum-cronはずっと起動したままにしているサーバで更新を行うものです。

もしクライアント用途だったり、サーバ用途でも必要な時にだけ付けるような頻繁に電源をon/offするような運用であれば、”yum-updateonboot”の方が適しています。

こちらについてはこのブログで触れる予定はないので別のサイト様を参考に利用してください。