linuCレベル1ver.10 101試験対策

2020年6月5日

目次

仮想マシンとコンテナ

仮想マシン

仮想マシンとは、物理的なサーバーと同等の機能・動作を再現(エミュレート)した仮想的なハードウェア環境。この機能を実現するのがハイパーバイザー

ハードウェア上で直接動作Type1(ネイティブ型)
OS上で稼働するアプリケーションが仮想マシンを再現するType2(ホスト型)
ハイパーバイザー

仮想マシンの特徴

  • それぞれの仮想マシンには個別にOS(ホストOS)、ライブラリ(実行環境)、ミドルウェア、アプリケーションをインストールして、独立したコンピューティングを構築できる。
  • ハードウェアをエミュレートするため、CPUやメモリのリソースを多く消費する
  • ホストOSと独立しているため、実行環境が変わってもそのまま動作させられる
  • ホストOSとは異なる種類のOSを実行できる。

仮想マシンの作成(KVM)

CPUが仮想化支援機能に対応しているかを確認できるファイル:/proc/cpuinfo
(vmx, またはcvmが記載されていれば対応)

lsmodでカーネルにkvmのモジュールが組み込まれていることを確認

rpmでKVMの実行に必要なパッケージを確認

qemu-kvm, qemu-img, libvirt, virt-install, virt-manager, virt-viewer

仮想化デーモン(libvirtd)の起動状態:Active:active(runnning)
起動していなければ systemctl start libvirtd

ゲストOSのISOイメージをダウンロード

cd /tmp
curl -LO http://ftp.riken.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal- 2003.iso

仮想マシンのイメージファイル作成

qemu-img create -f qcow2 /var/lib/libvirt/images/centos7.img 10G

仮想マシンの作成とゲストOSのインストール

virt-install –connect=qemu:///system\
–name=centos7\
–vcpus=1 \
–ram=1024 \
–hvm \
–os-type=linux \
–os-variant=rhel7 \
–virt-type=kvm \
–disk path=/var/lib/libvirt/images/centos7.img \
–location=/tmp/CentOS-7-x86_64-Minimal-2003.iso

仮想マシン名centos7
CPU数1
メモリ1024MB
–disk path作成したストレージのイメージファイルを指定
locationダウンロードした CentOS7 の ISO イメージを指定
ゲストOSの仮想マシン設定

CentOSのバージョンを確認するファイル:cat /etc/redhat-release

仮想マシンの起動・停止のコマンド

KVMはvirshコマンドを使って操作する。ドメインとは、CPU,メモリ,仮想ディスク,仮想マシンを実行するネットワークなど一連のリソースを含む仮想マシンの構成。

list –all定義されているドメインの一覧を表示
start ドメイン名ドメイン名の仮想マシンを起動
shutdown ドメイン名シャットダウン
reboot ドメイン名再起動
suspend ドメイン名一時停止
resume ドメイン名一時停止状態から再開
destroy ドメイン名強制停止
virshサブコマンドと用途
virt-viewer ドメイン名ドメイン名で指定した起動中の
仮想マシンの操作画面を開く
dominfo 仮想マシン仮想マシンの現在のCPUを確認するコマンド
(ドメインに関する基本情報を返す)
domstateドメインに関する状態を返す
domidドメイン名(またはUUID)をドメインIDに変換する
dumpxml設定ファイルの中を確認する
virshのドメインに関するサブコマンド

コンテナ

コンテナとは、物理的なコンピュータ上で稼働するOS(ホストOS)のリソースの一部を隔離し、仮想的に作られた実行環境。代表的なコンテナはDocker。ホストOSのカーネルを共有しながら、完全に隔離されたアプリケーション実行環境を構築できる。

コンテナの特徴

  • ホストOSとは隔離されたプロセスを作成し、その上にライブラリ(実行環境)、ミドルウェア、アプリケーションをインストールして、独立したコンピューティング環境を構築。
  • ホストOSのプロセスとして動作するので、CPU,メモリのリソース消費が少なく、起動するまでの時間がかからない
  • コンテナ管理ソフトウェアがハードウェアやOSごとの違いを吸収するため、他の実行環境へコンテナを容易に移動・配布できる
  • コンテナ内部で実行されるOS環境はホストOSと同じものに限定される

コンテナの作成(Docker)

1yum install dockerdockerをインストール
2rpm -q dockerインストールされているか?
3docker -vバージョンは?
4systemctl start docker起動
5systemctl status docker起動しているか?
6systemctl enable dockerLinux起動時にdockerが自動起動される
7systemctl is-enable docker自動起動の設定が有効か?
Docker作成の流れ(必要に応じて自動起動を有効にする)

OSイメージのダウンロードとコンテナの基本操作

コンテナイメージ(centos最新版)をダウンロードするコマンド
docker pull centos:latest

コンテナイメージを確認するコマンド
docker images

次にイメージからコンテナを作成してbashを起動してログインする。
docker run -it centos:latest /bin/bash

exit で終了

コンテナの起動・停止のコマンド

ps起動中のコンテナの一覧を表示
ps -a停止中も含めたコンテナ一覧表示
start コンテナID起動
stop コンテナID停止
restart コンテナID再起動
pause コンテナID一時停止
unpause コンテナID一時停止したコンテナを再開
kill コンテナID強制的に終了
attach/bin/bash実行中のコンテナにアタッチ
dockerのサブコマンドと用途

システムアーキテクチャ

ハードウェア設定の決定と構成

PCIデバイスとUSBデバイスの操作

認識しているpciデバイスの一覧を表示する:lspci (-v)

詳細表示(-v)の内容:

  • ベンダー名
  • IRQ番号
  • I/Oポートアドレス
  • カーネルモジュールの名前

認識しているusbデバイスの一覧を表示する:lsusb (-v)

Audioマイク、スピーカー
HIDキーボード、マウス
Mass Storageハードディスク、USBメモリ
HubUSBハブ
デバイスクラス

usb情報確認ファイル:/proc/bus/usb/devices

ランレベル/ブートターゲットの変更とシステムのシャットダウン

ランレベルRed Hat系ディストリビューション
0停止
1シングルユーザーモード
3マルチユーザーモード(CUI)
5マルチユーザーモード(GUI)
6再起動
ランレベルの数値と対応する状態

デフォルトのランレベルは、/etc/inittabファイルに記述。

ランレベルを切り替えるコマンド:inittelinit

initの設定ファイルを再読み込み:telinit -q

現在起動中と1つ前のランレベルを確認:runlevel

スクリプトでサービスを制御:/etc/init.d/ スクリプト名 引数

コマンドで:service スクリプト 引数

start起動
stop停止
restart再起動
status状態の確認
スクリプトと用途

/etc/init.d/ ディレクトリ内のスクリプト宛てリンクファイルが用意されている、該当ランレベルにおいてサービスの自動起動を制御するためのディレクトリ:/etc/rc0~6.d/

これらのリンクファイル名を変更し、自動起動を制御するコマンド
chkconfig (–list) サービス名 on|off

systemd

特徴

  • 並列処理による高速な起動と終了処理
  • cgroupsによるプロセス管理
  • 設定ファイルによるシステム管理
  • ユニットによる様々な処理の管理

systemdを制御するコマンド:systemctl

start起動
stop停止
restart再起動
status状態の確認
enable自動起動の有効化
disable自動起動の無効化
is-enabled自動起動の状態の確認
get-default規定のターゲットを表示
set-default規定のターゲットを変更
isolate現在のターゲットを変更
list-unit-filesユニットの状態を表示
サブコマンドと用途

システムのシャットダウンと再起動

shutdown オプション タイミング [“メッセージ"]

-hシャットダウン
-r再起動
-kテスト用
-c予約をキャンセル
-f次回起動時にfsckを行わない
-F次回起動時にfsckを行う
オプションと用途

タイミング、5分後にしたい:+5

他のシャットダウンコマンド

  • init 0
  • halt
  • poweroff

再起動コマンド

  • init 6
  • reboot
  • systemctl reboot

メッセージをユーザーに送信するコマンド:wall

Linuxのインストールとパッケージ管理

ブートローダ

GRUB Legacyの構成

default規定で起動するエントリ
timeoutシステムが自動起動するまでの秒数
splashimage起動時のGRUB設定画面の背景画像
hiddenmenu起動時、規定でGRUBメニューを非表示にする
title起動するエントリ名
rootルートデバイスの指定
kernelカーネルイメージの指定
kernel /カーネルイメージ/オプション (※)
initrd初期RAMディスクの指定
menu.lst

(※)のオプション部分が格納されたファイル:/proc/cmdline

GRUB 2の構成

GRUB Legacy/boot/grub/menu.lst (シンボリックリンク)
/boot/grub/grub.conf (本体)
GRUB 2/boot/grub/grub.cfg
設定ファイル

設定ファイルへ反映:grub-mkconfig

後から書き込み:grub-install

アプリケーション管理

Debianパッケージ管理システム

コマンド:dpkg オプション パッケージ名|ファイル名
(ファイル名指定は-Sオプションのみ)

-i–installインストール
-r–removeアンインストール
-P–purge設定ファイルごとアンインストール
-l–listインストール済みパッケージの検索
-L–listfilesインストールされたファイルの一覧表示
-s–statusパッケージの情報表示
-S–searchファイルのインストール元パッケージの検索
オプションと説明

RPM形式からdeb形式へ:alien ファイル名
deb形式からRPM形式へ:alien -r ファイル名

パッケージのインストール時に設定を行うタイプのツールの設定コマンド
dpkg-reconfigure パッケージ名

Debian系インターネット上リポジトリにあるパッケージ利用コマンド(3つ):apt-get, apt-cache, (2つを合わせた): aptitude

updateパッケージ情報の更新
installパッケージのインストール
upgradeパッケージのアップグレード
searchパッケンジの検索
showパッケージ情報の表示
サブコマンドget系3,cache系2

RPMパッケージ管理システム

コマンド:rpm

-i–installインストール
-U–upgradeアップグレード。なかったらインストール
-F–freshenアップグレード。インストールはしない
-e–eraseアンインストール
-q–queryパッケージの検索
メインオプション
-v詳細表示
-h–hash「#」で進行状況を表示
–nodeps依存関係を無視する
インスト、アプデ系サブコマンド
-a–allインストール済みの全てのパッケージを表示
-i–infoパッケージ情報を表示
-l–listインストールされたファイルの一覧表示
-f–fileファイルのインストール元パッケージの検索
-p–packageパッケージファイルを指定して検索
–changelog更新履歴を表示
–configfilesパッケージファイルに含まれる設定ファイルの一覧を表示
検索系サブコマンド

RPM系インターネット上リポジトリにあるパッケージ利用コマンド:yum

installパッケージのインストール/アップグレード
check-update更新パッケージの有無をチェック
updateパッケージのアップグレード
searchパッケージの検索
infoパッケージ情報の表示
listパッケージの一覧を表示
localinstallRPM形式のパッケージファイルを指定してインストール
groupinstallパッケージグループによるインストール
grouplistパッケージグループの一覧を表示
サブコマンド

GNUとUnixのコマンド

コマンドラインの動作

変数

LANG利用している言語、文字コード(ロケール情報)
PATHコマンドの実行ファイルの格納先
PS1プロンプトに表示する内容
SHELL現在利用しているシェル
主な定義済み変数

変数の値を参照:echo $変数名
変数に値を定義:変数名 = 値

デバイス、Linuxファイルシステム、ファイルシステム階層標準

パーティションとファイルシステムの作成

パーティション管理方式

MBRfdisk, parted
GPTgdisk, parted
パーティションの管理方式

ファイルシステムの作成

ファイルシステムの作成で使うコマンド

  • mkfs ;ファイルシステムを作成
  • mke2fs ;ext2/ext3ファイルシステムを作成
  • mkswap ;スワップ領域を作成
  • swapon ;スワップ領域の状態を確認、もしくは有効化

ファイルシステムのマウントとアンマウントの制御

マウントを実行、確認するコマンド
:mount オプション デバイスファイル マウントポイント

-a/ect/fstabでautoオプションが指定されているデバイスを全てマウントする
-t ファイルシステムデバイスのファイルシステムを指定する
-o オプションマウントオプションを指定する
オプション
ro読み取り専用でマウントする
remount一度マウントした後、再マウントする
マウントオプション

マウントした領域を確認するコマンド

  • df
  • mount
  • cat /proc/mounts
  • cat /etc/mtab

/etc/fstabファイル

次回起動時も有効なマウント情報を構成したい場合はこのファイルにマウント情報を記述。

123456
デバイスマウントポイントファイルシステムオプションdumpfsck
/etc/fstab ファイルの書式

システムファイルの確認と適切な位置へのファイルの配置

FHS

/var/ログファイルなど可変ファイル
/etc/システムが参照する設定ファイル
/proc/カーネルやプロセスの状態を表すファイル
/home/ユーザのホームディレクトリ
ディレクトリと使用用途