見出し画像

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に接続されているデバイスをファイルとして扱うためのファイルです。デバイスファイルは「/dev」ディレクトリ配下に配置されます。

デバイスドライバのロード

デバイスを利用するために必要な制御プログラムをデバイスという。
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を使用するには、以下の手順が必要。

  1. ディスク内にパーティション作成

  2. パーティション内にファイルシステム作成

  3. そのファイルシステムをマウントする

パーティションの種類

  • 基本パーティション

  • 拡張パーティション

  • 論理パーティション

  • 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


この記事が気に入ったらサポートをしてみませんか?