Linux学習ノート――ディスク管理


デバイスファイル:
b:ブロックデバイスファイル、ブロック単位で、ランダムにアクセスするデバイス、例えばディスク
c:文字デバイスファイル、文字単位で、キーボードなどの前後順の線形デバイスにアクセス
ls-lデバイスファイルを表示し、元の表示サイズの列を
プライマリ・デバイス番号(major number)
デバイスタイプの識別
サブデバイス番号(minor number)
同じタイプの異なるデバイスを識別するために使用
[root@localhost tmp]# ls -l /dev
   0
brw-r----- 1 root disk     8,    0 10-10 22:31 sda
brw-r----- 1 root disk     8,    1 10-10 05:15 sda1
brw-r----- 1 root disk     8,    2 10-10 05:15 sda2
brw-r----- 1 root disk     8,    3 10-10 05:15 sda3
brw-r----- 1 root disk     8,    4 10-10 22:35 sda4
crw------- 1 root root     4,    0 10-10 05:14 systty
crw-rw-rw- 1 root tty      5,    0 10-10 05:15 tty
crw-rw---- 1 root tty      4,    0 10-10 05:14 tty0
crw------- 1 root root     4,    1 10-10 05:15 tty1
crw------- 1 root root     4,    2 10-10 05:15 tty2

mknodブロックまたは文字デバイスファイルの作成
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m MODE指定権限
例:mknod-m 640 mydev c 66 0
HDDデバイスのデバイスファイル名:
IDE,ATA:hd
SATA:sd
SCSI:sd
USB:sd
    a,b,c,...同じタイプの異なるデバイスを区別します
IDE: 
最初のIDEポート:マスター、スレーブ
/dev/hda,/dev/hdb
2番目のIDEポート:マスター、スレーブ
/dev/hdc,/dev/hdd
sda, sdb, sdc, ...
hda: 
hda 1:最初のプライマリパーティション
hda2: 
hda3:
hda4:
hda 5:最初の拡張パーティション
現在のシステムで認識されているHDDを確認します.
fdisk -l [/path/to/some_device_file]
[root@localhost ~]# fdisk -l

Disk /dev/sda: 53.6 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         652     5237158+  83  Linux
/dev/sda2             653        3262    20964825   83  Linux

ディスクパーティションの管理
fdisk/dev/sda
p:保存されていない変更を含む現在のハードウェアのパーティションを表示
n:新規パーティションの作成
e:拡張パーティション
p:プライマリパーティション
d:パーティションを削除する
w:保存終了
q:終了を保存しない
t:パーティションタイプの変更
l:サポートされているすべてのタイプを表示
Command (m for help): l

 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       bf  Solaris        
 1  FAT12           24  NEC DOS         81  Minix / old Lin c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          82  Linux swap / So c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  83  Linux           c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   85  Linux extended  da  Non-FS data    
 6  FAT16           42  SFS             86  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  EFI GPT        
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a6  OpenBSD         f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT

パーティション表の再読み込み
partprobe
ファイルシステム管理
cat/proc/filesystems:現在のカーネルでサポートされているファイルシステムを表示する
[root@localhost ~]# cat /proc/filesystems 
nodev	sysfs
nodev	rootfs
nodev	bdev
nodev	proc
nodev	cpuset
nodev	binfmt_misc
nodev	debugfs
nodev	securityfs
nodev	sockfs
nodev	usbfs
nodev	pipefs
nodev	anon_inodefs
nodev	futexfs
nodev	tmpfs
nodev	inotifyfs
nodev	eventpollfs
nodev	devpts
	ext2
nodev	ramfs
nodev	hugetlbfs
	iso9660
nodev	mqueue
nodev	selinuxfs
	ext3
nodev	rpc_pipefs
nodev	autofs

mkfs:make filesystemファイルシステムの作成
mkfs[OPTIONS]デバイスファイル
    -t FSTYPE
mkfs -t ext2 = mkfs.ext2
mkfs -t ext3 = mkfs.ext3
extシリーズファイルシステムの専門管理
mke2fs
-j:ext 3タイプのファイルシステムの作成
    -b BLOCK_SIZE:ブロックサイズを指定し、デフォルトは4096
-L LABEL:パーティションのボリュームラベルを指定します.ボリュームラベルがあれば、ボリュームラベルでパーティションを参照できます.例えば、ボリュームラベルでmount
-m#(プラス%なし):スーパーユーザーに予約されているブロックの割合を指定します.-m 2は予約の2パーセントを表します.
-i#:マルチバイトに指定したスペースにinodeを作成します.デフォルトは8192で、値はブロックサイズの2^n倍です.
-N#:inodeの個数を指定
-F:ファイルシステムの作成を強制します.デフォルトのファイルシステムはマウント済みで再作成できません
-E:ユーザーはstride=#(chunk/BLOCK_SIZE)のような追加ファイルシステムの属性を指定し、RAID 0とRAID 5に作用し、運行を速める
blkidデバイスファイル:UUID、TYPE、LABELなどのディスクデバイスに関するプロパティを表示します.
[root@localhost ~]# blkid /dev/sda1
/dev/sda1: LABEL="/boot" UUID="c9bf9230-cdcd-45aa-89ed-77f11f273d6e" SEC_TYPE="ext2" TYPE="ext3"

e 2 label:ボリュームラベルの表示または定義に使用
e 2 labelデバイスファイル:ボリュームラベルの表示
e 2 labelデバイスファイルボリュームラベル名:ボリュームラベルの設定
tune 2 fs:ファイルシステムの関連属性を変更し、再フォーマットせず、無損に変更する
tune 2 fs[OPTION]デバイスファイル
-j:既存データを損なうことなくext 2をext 3にアップグレードするが、ext 3をext 2にダウングレードすることはできない
-L LABEL:ボリュームラベルの設定または変更
-m:予約率を調整します.mke 2 fsと同じように使用しますが、再フォーマットする必要はありません.
-r:予約ブロック数を直接設定し、-mと一緒に使用できません
-c#:マウント回数が#回に達した後にセルフテストを行うことを指定します.0または-1はこの機能をオフにします.
-i#:マウントごとに何日後にセルフテストを行うかを指定します.0または-1はこの機能をオフにします.
-l:スーパーブロックの情報を表示
[root@localhost ~]# tune2fs -l /dev/sda1
tune2fs 1.39 (29-May-2006)
Filesystem volume name:   /boot
Last mounted on:          <not available>
Filesystem UUID:          c9bf9230-cdcd-45aa-89ed-77f11f273d6e
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              1309440
Block count:              1309289
Reserved block count:     65464
Free blocks:              1231432
Free inodes:              1309406
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      319
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         32736
Inode blocks per group:   1023
Filesystem created:       Wed Aug 19 21:04:51 2015
Last mount time:          Wed Aug 19 16:58:26 2015
Last write time:          Wed Aug 19 16:58:26 2015
Mount count:              4
Maximum mount count:      -1
Last checked:             Wed Aug 19 21:04:51 2015
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:		  128
Journal inode:            8
Default directory hash:   tea
Directory Hash Seed:      333d4c06-586d-42f8-b580-5b956bb639a4
Journal backup:           inode blocks

dumpe 2 fs:スーパーブロック内の情報と各ブロックグループの情報を表示する
dumpe 2 fs[OPTION]デバイスファイル
-h:スーパーブロックの情報のみ表示
fsck:Linuxファイルシステムのチェックと修復
-t FSTYPE:ファイルシステムタイプの指定
-a:自動修復を尋ねない
e 2 fsck:extクラスファイルシステムのチェックと修復に特化
-f:強制検査
-p:自動修復、デフォルトオプション
ファイルシステムのマウント/アンインストール
マウント:新しいファイルシステムを現在のルートファイルシステムに関連付ける
アンインストール:ファイルシステムと現在のファイルシステムの関連付けを削除します.
mount:マウント
mount[OPTION][-o OPTION]デバイスマウントポイント
デバイス:
デバイスファイル
ボリュームラベル:LABEL=""
        UUID:UUID=""
マウントポイント:ディレクトリ
要件:
            1.他のプロセスでは使用されていません
            2.ディレクトリは事前に存在しなければならない
            3.ディレクトリにあるファイルは一時的に非表示になります.アンインストールしてから再表示できます.
:パラメータなしで、現在のシステムにすでに存在するデバイスとマウントポイントを表示します.
-a:マウント/etc/fstabファイル内のすべてのファイルシステムを示す
-n:デフォルトでは、mountコマンドは1つのデバイスをマウントするたびに、マウントされたデバイス情報を/etc/mtabファイルに保存します.-nオプションを使用すると保存されません.
-t FSTYPE:デバイスにマウントされているファイルシステムのタイプを指定します.このオプションを使用しない場合、mountはblkidコマンドを自動的に呼び出して対応するファイルシステムのタイプを取得します.
-r:CDをマウントするときによく使用される読み取り専用マウント
-w:読み書きマウント
-o:追加のマウントオプション、すなわちファイルシステム起動のプロパティを指定します.
remount:マウントポイントを指定せずに再マウント
ロ:読み取り専用マウント
rw:読み書きマウント
loop:ローカルループバックデバイス、すなわちISOミラーをマウント
マウントが完了したら、マウントポイントから対応するファイルシステム上のファイルにアクセスします.
umount:ファイルシステムをアンインストールする
umountデバイス
マウントポイント
    -n:
マウントの注意事項:マウントされたデバイスまたはマウントポイントがプロセスで使用されていない
fuser:プロセスで使用されているファイルまたはソケットファイルを検証します.
-v:ファイルで実行中のプロセスの表示
-km:このディレクトリにアクセスしているすべてのプロセスを終了
fuser -km/path/to/directory
#    ssh  shell cd /etc,    shell   fuser -v
[root@localhost ~]# fuser -v /etc

                     USER        PID ACCESS COMMAND
/etc:                root       3955 ..c.. bash

スワップパーティションの作成
free:total、used、freeなど、メモリとスワップパーティションの表示
-m:デフォルト単位はKB、-mを選択してMBに変更
[root@localhost ~]# free
             total       used       free     shared    buffers     cached
Mem:        514832     342384     172448          0      17156     199736
-/+ buffers/cache:     125492     389340
Swap:            0          0          0

手順:
①fdiskコマンドでnパーティションを作成する
②fdiskコマンドでは、t調整パーティションタイプは82
③スワップパーティションの作成:
1.mkswapデバイスファイル
    -L LABEL
2.swaponデバイスファイル:スワップパーティションを有効にする
-a:/etc/fstabファイルに定義されているすべての交換デバイスを有効にします.
3.swapoffデバイスファイル:スワップパーティションを閉じる
ループバックデバイスを作成するには、次の手順に従います.
loopback、ソフトウェアを使用してハードウェアの実装をシミュレート
dd:データソースとデータストレージターゲットを指定して特定のファイルを作成する
if=データソース
of=データストアターゲット
bs=#:bs=1 Mなどのブロックサイズ
count=#:ブロック数
seek=#:データファイルの作成時にスキップされるスペースサイズ
dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1 sdaのMBRをuディスクにバックアップ
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1還元MBR
dd if/dev/zero of=/var/swapfile bs=1 M count=1024 1 Gサイズの空のファイルを作成
isoミラー、特定ファイルなどをmountでマウントする
mount-o loopファイルパスMOUNT_POINT
mount -o loop/var/swapfile/mnt/loopback1
FSのプロファイル/etc/fstab
OSは初期時に、このファイルで定義されている各ファイルシステムを自動的にマウントします
各行の書式:
マウントするデバイス:/dev/sda 5
マウントポイント:/mnt/test
ファイルシステムタイプ:ext 3
マウントオプション:defaults
転送頻度(1日に1回のフルバックアップ):0
ファイルシステムの検出順序(ルートのみ1):0
練習:
1、5 Gのパーティションを作成し、ファイルシステムはext 3、ボリュームラベルはMYDATA、ブロックサイズは1024、予約管理空間はディスクパーティションの3%であり、起動後に自動的に/dataディレクトリにマウントできることを要求し、自動的にマウントする設備はボリュームラベルを使用して参照する.
# fdisk/dev/sdb
n
p
1
+5G
w
q
# mke2fs -j -b 1024 -L MYDATA -m 3/dev/sdb1
# vim/etc/fstab
/dev/sdb2    /data    ext3    defaults    0 0
2、ローカルループファイル/var/swaptemp/swapfileを作成してswapに使用し、サイズが512 MB、ボリュームラベルがSWAP-FILEであることを要求し、電源を入れて自動的にこの交換装置を有効にする.
# mkdir/var/swaptemp
# dd if=/dev/zero of=/var/swaptemp/swapfile bs=1M count=512
# mkswap LABLE=SWAP-FILE/var/swaptemp/swapfile
/etc/fstabファイルに追加
/var/swaptemp/swapfile  swap  swap  defaults 0 0
3、上述の第一問は、ACL機能を自動的にマウントしながら有効にする方法である.
/etc/fstab
LABEL='MYDATA' /data  ext3  defaults,acl 0 0