Linucメモ⑥ ハードウェアの基礎知識と設定
ハードウェア
CPU
メモリ
ストレージ
HDD(Hard Disk Drive)
SSD(Solid State Drive)
入力装置
拡張カード
USB機器
BIOS/UIFI
キーボードやHDDなどのデバイスを制御する、最も基本的な制御プログラム。
一般的なLinuxの起動順序は、BIOS→ブートローダー→カーネル→initの順序である。
UIFIの特徴
GUIでの操作が可能となる
3TB以上のHDDからの起動をサポートする
デバイス情報の確認
LInuxはハードウェアへのアクセスを抽象化するデバイスファイルを持っている。デバイスファイルはudevによって自動生成される。
[root@CentOS /]# ls dev/
agpgart log sda1 tty21 tty46 uhid
autofs loop-control sda2 tty22 tty47 uinput
block lp0 sda3 tty23 tty48 urandom
bsg lp1 sg0 tty24 tty49 usbmon0
btrfs-control lp2 sg1 tty25 tty5 usbmon1
Linuxが認識しているデバイスに関する情報の一部は、/procディレクトリにある
[root@CentOS proc]# ls
1 21333 284 404 47 60 999 irq schedstat
10 22 285 41 473 600 acpi kallsyms scsi
1002 23 286 41737 475 601 asound kcore self
11 237 287 42465 539 604 buddyinfo key-users slabinfo
1233 238 288 42491 541 613 bus keys softirqs
1234 24 289 42545 543 616 cgroups kmsg stat
13 240 290 42569 545 618 cmdline kpagecount swaps
デバイス情報を確認するためのコマンドもある。
例えば、lspciコマンド
こちらは、cat /proc/bus/pci/devicesと同様の結果を出力できる。
USBデバイス
デバイスクラス
HID(Human Interface Device) キーボード、マウスなど
Mass Storage class ハードディスク、USBなど
ACM Communication Device Class モデム、TAなど
Audio Class スピーカー、マイクなど
udev
デバイスドライバのロード
デバイスを利用するために必要な制御プログラムをデバイスという。
Linuxではデバイスドライバはカーネルの一部として提供されている。
必要なデバイスドライバをカーネルに読み込ませることをロードするという。
lsmod
ロードされているカーネルモジュールを確認する。
[root@CentOS proc]# lsmod
Module Size Used by
xt_CHECKSUM 12549 1
ipt_MASQUERADE 12678 3
nf_nat_masquerade_ipv4 13463 1 ipt_MASQUERADE
tun 40260 1
devlink 60067 0
ip6t_rpfilter 12595 1
ip6t_REJECT 12625 2
nf_reject_ipv6 13717 1 ip6t_REJECT
ipt_REJECT 12541 4
nf_reject_ipv4 13373 1 ipt_REJECT
xt_conntrack 12760 16
ebtable_nat 12807 1
ebtable_broute 12731 1
bridge 155432 1 ebtable_broute
stp 12976 1 bridge
modprobe
指定したデバイスドライバをロードする。
通常は、必要なカーネルモジュールは自動的にロードされる。
insmod
指定したカーネルモジュールをロードする。
rmmod
指定したカーネルモジュールをアンロードする。
パーティション
ファイルシステム
ディスクに保存されるデータをファイルとして管理する仕組み。
HDDやSSDを使用するには、以下の手順が必要。
ディスク内にパーティション作成
パーティション内にファイルシステム作成
そのファイルシステムをマウントする
パーティションの種類
基本パーティション
拡張パーティション
論理パーティション
EFIシステムパーティション
パーションを分割するメリット
システム障害がおきて、ファイルの一部が破壊されたときに被害を一つのパーティション内に限定することができる
大量のログが発生するなどしてディスクの空き容量が足りなくなった場合も被害を限定してシステム全体の影響を少なくできる
LVM(Logical Volume Manager)
ディスクのパーティションを直接操作するのではなく、
仮想的なパーティションである論理ボリュームを動的に管理する。
パーティションでのディスク管理に比べて、以下のメリットがある
一度パーティションを作成するとサイズ変更が自由自在
別のディスクにパーティションを移動することができる
ディスクサイズを超えるパーティション作成ができる
デバイスファイル
HDDやSSDなどのデバイスの入出力を扱う特殊なファイルを指す。
他のファイルにアクセスする感覚で、デバイスにアクセスできる。
/dev配下にあるようです。
[root@CentOS dev]# ls
agpgart log sda1 tty21 tty46 uhid
autofs loop-control sda2 tty22 tty47 uinput
block lp0 sda3 tty23 tty48 urandom
bsg lp1 sg0 tty24 tty49 usbmon0
btrfs-control lp2 sg1 tty25 tty5 usbmon1
bus lp3 shm tty26 tty50 usbmon2
cdrom mapper snapshot tty27 tty51 vcs
char mcelog snd tty28 tty52 vcs1
console mem sr0 tty29 tty53 vcs2
デバイスファイルには2種類ある。
ブロックデバイス
HDDやSSDなどのメディア上の任意の場所にアクセスできる
lsblkコマンドで一覧を確認できる。
[root@CentOS dev]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
tqsda1 8:1 0 300M 0 part /boot
tqsda2 8:2 0 2G 0 part [SWAP]
mqsda3 8:3 0 17.7G 0 part /
sr0 11:0 1 1024M 0 rom
キャラクタデバイス
キーボードやシリアルポートなど、文字単位でデータを読み書きするデバイス。
パーション管理コマンド
fdisk パーティションの作成、削除、変更などが行える。
[root@CentOS dev]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a8eeb
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 4810751 2097152 82 Linux swap / Solaris
/dev/sda3 4810752 41943039 18566144 83 Linux
fdisk -m サブメニューの表示
fdisk -n パーティションの作成
fdisk -d パーティションの削除
パーティションテーブルの方式
MBR(マスターブートレコード)
ディスク容量 2TBまで
基本パーティション 最大4個
fdikコマンドにて操作GPT(GUIDパーティションテーブル)
ディスク容量 9.4ZB(8ZiB)
基本パーティション 最大128個
システムファームウェアがUEFIじゃないと機能を最大限活かせない
gdiskコマンドにて操作
partedコマンド
MBRにもGPTにも対応している操作コマンド。
partedコマンドは対話形式ではなくサブコマンド指定で直接パーティション編集を行うことも可能です。
その他
スワップ領域
スワップ領域とは、物理メモリ(実メモリ、RAM)に収まらなかった情報を一時的に格納する為の、通常ハードディスク上に作成する領域。
Red Hat Enterprise Linux 8でのスワップ領域の推奨値は以下です。
RAMが2GB以下の場合:RAMの2倍
RAMが2GBを超過~8GB以下の場合:RAMと同量
RAMが8GBを超過~64GB以下の場合:4GBからRAMの0.5倍
RAMが64GBを超過:負荷に依存するが、少なくとも4GB覚えておくべきディレクトリとその役割
分割適否〇
/home
/usr 起動に不要なプログラムなどを格納、読み込みが頻繁に発生
/var ログやメールなどの読み込み頻繁なファイルを格納
/opt 追加でインストールしたパッケージファイル格納
分割適否△
/boot Linuxのカーネルなど起動に必須なファイルの格納
/tmp 一時ファイル格納
分割適否×
/bin
/sbin 管理者用コマンド格納
/etc
/dev
/lib
この記事が気に入ったらサポートをしてみませんか?