zhi ngzhiton'g/dev
主裝置号 (major number)
辨別裝置類型
次裝置号 (minor number)
辨別同一種類型中不同裝置
[rhel@localhost ~]$ ll /dev/
brw-rw----. 1 root disk 8, 0 Feb 19 18:55 sda
brw-rw----. 1 root disk 8, 1 Feb 19 18:55 sda1
brw-rw----. 1 root disk 8, 2 Feb 19 18:55 sda2
brw-rw----. 1 root disk 8, 3 Feb 19 18:55 sda3
裝置id不占有磁盤塊,資料存放在inode中
mknod:建立塊或字元特殊檔案
NAME
mknod - make block or character special files
SYNOPSIS
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m MODE 設定裝置檔案權限
[root@localhost ~]# mknod mydev c 66 0
[root@localhost ~]# ll
total 96
-rw-r--r--. 1 root root 989 Feb 18 17:09 adduser.sh
-rw-------. 1 root root 4080 Jun 21 2015 anaconda-ks.cfg
-rw-r--r--. 1 root root 95 Feb 17 20:23 case.sh
-rw-r--r--. 1 root root 42001 Jun 21 2015 install.log
-rw-r--r--. 1 root root 9154 Jun 21 2015 install.log.syslog
crw-r--r--. 1 root root 66, 0 Feb 19 19:23 mydev
-rw-r--r--. 1 root root 315 Feb 17 19:36 random.sh
-rwxr-xr-x. 1 root root 196 Nov 19 18:37 second.sh
-rw-r--r--. 1 root root 200 Nov 19 22:26 sum.sh
-rwxr-xr-x. 1 root root 118 Nov 19 18:53 third.sh
-rwxr-xr-x. 1 root root 425 Nov 19 18:48 user2.sh
-rwxr-xr-x. 1 root root 177 Nov 19 20:23 userexit.sh
[root@localhost ~]# mknod -m 640 mydev2 c 66 1
crw-r-----. 1 root root 66, 1 Feb 19 19:23 mydev2
裝置檔案是通路裝置的入口
[root@localhost ~]# echo "hello" >> /dev/pts/1
[root@localhost ~]#
[rhel@localhost ~]$ hello
[rhel@localhost ~]$
硬碟裝置的裝置檔案名:
IDE, ATA:hd
SATA:sd
SCSI: sd
USB: sd
a,b,c,...來差別同一種類型下的不同裝置
IDE:
第一個IDE口:主、從
/dev/hda, /dev/hdb
第二個IDE口:主、從
/dev/hdc, /dev/hdd
sda, sdb, sdc, ...
hda:
hda1: 第一個主分區
hda2:
hda3:
hda4:
hda5: 第一個邏輯分區
檢視目前系統識别了幾塊硬碟:
fdisk -l [/dev/to/some_device_file]
[root@localhost ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004cc30
Device Boot Start End Blocks Id System
/dev/sda1 * 1 39 307200 83 Linux (預設系統bootloader)
Partition 1 does not end on cylinder boundary.
/dev/sda2 39 2350 18566144 83 Linux
/dev/sda3 2350 2611 2097152 82 Linux swap / Solaris
管理磁盤分區:
fdisk /dev/sda
p: 顯示目前硬體的分區,包括沒儲存的改動
n: 建立新分區
e: 擴充分區
p: 主分區
d: 删除一個分區
w: 儲存退出
q: 不儲存退出
t: 修改分區類型
L:
l: 顯示所支援的所有類型
partprobe :通知核心重讀分區表
建立分區fdisk
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4):
Value out of range.
Partition number (1-4): 4
First cylinder (263-2610, default 263):
Using default value 263
Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610):
Using default value 2610
l logical (5 or over)
+2G
Invalid partition number for type `+'
l
First cylinder (263-2610, default 263): +2G
Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610): +2G
First cylinder (525-2610, default 525):
Using default value 525
Last cylinder, +cylinders or +size{K,M,G} (525-2610, default 2610): +5G
First cylinder (1179-2610, default 1179):
Using default value 1179
Last cylinder, +cylinders or +size{K,M,G} (1179-2610, default 2610): +1G
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
8 0 20971520 sda
8 1 307200 sda1
8 2 18566144 sda2
8 3 2097152 sda3
8 16 20971520 sdb
8 17 2104483 sdb1
8 20 1 sdb4
8 21 2104483 sdb5
8 22 5253223 sdb6
8 23 1060258 sdb7
[root@localhost ~]# partprobe /dev/sdb
檢視核心支援的檔案系統
[root@localhost ~]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev tmpfs
nodev devtmpfs
nodev binfmt_misc
nodev debugfs
nodev securityfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev inotifyfs
nodev devpts
nodev ramfs
nodev hugetlbfs
iso9660
nodev pstore
nodev mqueue
nodev selinuxfs
ext4
建立檔案系統
mkfs: make file system (統一調用檔案格式化的函數)
-t FSTYPE (指定檔案類型)
mkfs -t ext2 = mkfs.ext2
mkfs -t ext3 = mkfs.ext3
[root@localhost ~]# mkfs.
mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.msdos mkfs.vfat
[root@localhost ~]# ll /sbin/ | grep mkfs
-rwxr-xr-x. 1 root root 10336 Aug 11 2014 mkfs
-rwxr-xr-x. 1 root root 26208 Aug 11 2014 mkfs.cramfs
-rwxr-xr-x. 5 root root 68960 Jun 27 2014 mkfs.ext2
-rwxr-xr-x. 5 root root 68960 Jun 27 2014 mkfs.ext3
-rwxr-xr-x. 5 root root 68960 Jun 27 2014 mkfs.ext4
-rwxr-xr-x. 5 root root 68960 Jun 27 2014 mkfs.ext4dev
lrwxrwxrwx. 1 root root 7 Jun 21 2015 mkfs.msdos -> mkdosfs
lrwxrwxrwx. 1 root root 7 Jun 21 2015 mkfs.vfat -> mkdosfs
[root@localhost ~]# mkfs -t ext3 /dev/sdb5
mke2fs 1.41.12 (17-May-2010)
Filesystem label= (卷标)
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131648 inodes, 526120 blocks (inode數量及block數量)
26306 blocks (5.00%) reserved for the super user (預留super block)
First data block=0
Maximum filesystem blocks=541065216
17 block groups (塊組)
32768 blocks per group, 32768 fragments per group
7744 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
專門管理ext系列檔案:
mke2fs
-j: 建立ext3類型檔案系統
-b BLOCK_SIZE: 指定塊大小,預設為4096;可用取值為1024、2048或4096;
-L LABEL:指定分區卷标;
-m #: 指定預留給超級使用者的塊數百分比
-i #: 用于指定為多少位元組的空間建立一個inode,預設為8192;這裡給出的數值應該為塊大小的2^n倍;
-N #: 指定inode個數;
-F: 強制建立檔案系統;
-E: 使用者指定額外檔案系統屬性;
1、mke2fs /dev/sdb5建立ext2檔案系統
[root@localhost ~]# mke2fs /dev/sdb5
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
131648 inodes, 526120 blocks
26306 blocks (5.00%) reserved for the super user
17 block groups
This filesystem will be automatically checked every 36 mounts or
2、mke2fs -j /dev/sdb5建立ext3檔案系統
[root@localhost ~]# mke2fs -j /dev/sdb5
Creating journal (16384 blocks): done (ext3是日志檔案系統)
This filesystem will be automatically checked every 26 mounts or
3、mke2fs -b 2048 /dev/sdb5建立塊大小為2048
[root@localhost ~]# mke2fs -b 2048 /dev/sdb5
Block size=2048 (log=1)
Fragment size=2048 (log=1)
131560 inodes, 1052240 blocks
52612 blocks (5.00%) reserved for the super user
Maximum filesystem blocks=538968064
65 block groups
16384 blocks per group, 16384 fragments per group
2024 inodes per group
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816
4、mke2fs -L MYSDB /dev/sdb5指定卷标為MYSDB
[root@localhost ~]# mke2fs -L MYSDB /dev/sdb5
Filesystem label=MYSDB
This filesystem will be automatically checked every 21 mounts or
5、mke2fs -m 3 /dev/sdb5指定超級塊所占比例記憶體
[root@localhost ~]# mke2fs -m 3 /dev/sdb5
15783 blocks (3.00%) reserved for the super user
This filesystem will be automatically checked every 23 mounts or
6、mke2fs -i 4096 /dev/sdb5指定inode及block比例為1:4096
[root@localhost ~]# mke2fs -i 4096 /dev/sdb5
526320 inodes, 526120 blocks
Maximum filesystem blocks=540801024
32752 blocks per group, 32752 fragments per group
30960 inodes per group
32752, 98256, 163760, 229264, 294768
This filesystem will be automatically checked every 31 mounts or
blkid /dev/sdb5檢視裝置檔案的基本屬性,關注UUID及TYPE、LABEL字段
[root@localhost ~]# blkid /dev/sdb5
/dev/sdb5: UUID="edc852aa-376d-411b-876a-0deb9f89b140" TYPE="ext2"
e2label: 用于檢視或定義卷标
e2label 裝置檔案 卷标: 設定卷标
[root@localhost ~]# e2label /dev/sdb5 HELLO
[root@localhost ~]# e2label /dev/sdb5
HELLO
/dev/sdb5: UUID="edc852aa-376d-411b-876a-0deb9f89b140" TYPE="ext2" LABEL="HELLO"
tune2fs: 調整檔案系統的相關屬性
-j: 不損害原有資料,将ext2更新為ext3;
-L LABEL: 設定或修改卷标;
-m #: 調整預留百分比;
-r #: 指定預留塊數;
-o: 設定預設挂載選項;
acl
-c #:指定挂載次數達到#次之後進行自檢,0或-1表關閉此功能;
-i #: 每挂載使用多少天後進行自檢;0或-1表示關閉此功能;
-l: 顯示超級塊中的資訊;
1、une2fs -j /dev/sdb5無損更新為ext3
[root@localhost ~]# tune2fs -j /dev/sdb5
tune2fs 1.41.12 (17-May-2010)
Creating journal inode: done
/dev/sdb5: LABEL="HELLO" UUID="edc852aa-376d-411b-876a-0deb9f89b140" SEC_TYPE="ext2" TYPE="ext3"
2、tune2fs -l /dev/sdb5檢視超級塊資訊
[root@localhost ~]# tune2fs -l /dev/sdb5
Filesystem volume name: HELLO
Last mounted on: <not available>
Filesystem UUID: edc852aa-376d-411b-876a-0deb9f89b140
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 526320
Block count: 526120
Reserved block count: 26306
Free blocks: 476004
Free inodes: 526309
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 128
Blocks per group: 32752
Fragments per group: 32752
Inodes per group: 30960
Inode blocks per group: 1935
Filesystem created: Tue Feb 21 14:49:15 2017
Last mount time: n/a
Last write time: Tue Feb 21 15:41:16 2017
Mount count: 0
Maximum mount count: 31
Last checked: Tue Feb 21 14:49:15 2017
Check interval: 15552000 (6 months)
Next check after: Sun Aug 20 15:49:15 2017
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 903d8d69-a548-4c82-955e-328a4025eaeb
Journal backup: inode blocks
dumpe2fs: 顯示檔案系統屬性資訊
-h: 隻顯示超級塊中的資訊
[root@localhost ~]# dumpe2fs /dev/sdb5
dumpe2fs 1.41.12 (17-May-2010)
Journal features: (none)
Journal size: 64M
Journal length: 16384
Journal sequence: 0x00000001
Journal start: 0
(塊組資訊)
Group 0: (Blocks 0-32751)
Primary superblock at 0, Group descriptors at 1-1
Reserved GDT blocks at 2-129
Block bitmap at 130 (+130), Inode bitmap at 131 (+131)
Inode table at 132-2066 (+132)
30679 free blocks, 30949 free inodes, 2 directories
Free blocks: 2073-32751
Free inodes: 12-30960
Group 1: (Blocks 32752-65503)
Backup superblock at 32752, Group descriptors at 32753-32753
Reserved GDT blocks at 32754-32881
Block bitmap at 32882 (+130), Inode bitmap at 32883 (+131)
Inode table at 32884-34818 (+132)
30685 free blocks, 30960 free inodes, 0 directories
Free blocks: 34819-65503
Free inodes: 30961-61920
Group 2: (Blocks 65504-98255)
Block bitmap at 65504 (+0), Inode bitmap at 65505 (+1)
Inode table at 65506-67440 (+2)
30815 free blocks, 30960 free inodes, 0 directories
Free blocks: 67441-98255
Free inodes: 61921-92880
Group 3: (Blocks 98256-131007)
Backup superblock at 98256, Group descriptors at 98257-98257
Reserved GDT blocks at 98258-98385
Block bitmap at 98386 (+130), Inode bitmap at 98387 (+131)
Inode table at 98388-100322 (+132)
Free blocks: 100323-131007
Free inodes: 92881-123840
Group 4: (Blocks 131008-163759)
Block bitmap at 131008 (+0), Inode bitmap at 131009 (+1)
Inode table at 131010-132944 (+2)
Free blocks: 132945-163759
Free inodes: 123841-154800
Group 5: (Blocks 163760-196511)
Backup superblock at 163760, Group descriptors at 163761-163761
Reserved GDT blocks at 163762-163889
Block bitmap at 163890 (+130), Inode bitmap at 163891 (+131)
Inode table at 163892-165826 (+132)
Free blocks: 165827-196511
Free inodes: 154801-185760
Group 6: (Blocks 196512-229263)
Block bitmap at 196512 (+0), Inode bitmap at 196513 (+1)
Inode table at 196514-198448 (+2)
Free blocks: 198449-229263
Free inodes: 185761-216720
Group 7: (Blocks 229264-262015)
Backup superblock at 229264, Group descriptors at 229265-229265
Reserved GDT blocks at 229266-229393
Block bitmap at 229394 (+130), Inode bitmap at 229395 (+131)
Inode table at 229396-231330 (+132)
Free blocks: 231331-262015
Free inodes: 216721-247680
Group 8: (Blocks 262016-294767)
Block bitmap at 262016 (+0), Inode bitmap at 262017 (+1)
Inode table at 262018-263952 (+2)
14414 free blocks, 30960 free inodes, 0 directories
Free blocks: 280354-294767
Free inodes: 247681-278640
Group 9: (Blocks 294768-327519)
Backup superblock at 294768, Group descriptors at 294769-294769
Reserved GDT blocks at 294770-294897
Block bitmap at 294898 (+130), Inode bitmap at 294899 (+131)
Inode table at 294900-296834 (+132)
Free blocks: 296835-327519
Free inodes: 278641-309600
Group 10: (Blocks 327520-360271)
Block bitmap at 327520 (+0), Inode bitmap at 327521 (+1)
Inode table at 327522-329456 (+2)
Free blocks: 329457-360271
Free inodes: 309601-340560
Group 11: (Blocks 360272-393023)
Block bitmap at 360272 (+0), Inode bitmap at 360273 (+1)
Inode table at 360274-362208 (+2)
Free blocks: 362209-393023
Free inodes: 340561-371520
Group 12: (Blocks 393024-425775)
Block bitmap at 393024 (+0), Inode bitmap at 393025 (+1)
Inode table at 393026-394960 (+2)
Free blocks: 394961-425775
Free inodes: 371521-402480
Group 13: (Blocks 425776-458527)
Block bitmap at 425776 (+0), Inode bitmap at 425777 (+1)
Inode table at 425778-427712 (+2)
Free blocks: 427713-458527
Free inodes: 402481-433440
Group 14: (Blocks 458528-491279)
Block bitmap at 458528 (+0), Inode bitmap at 458529 (+1)
Inode table at 458530-460464 (+2)
Free blocks: 460465-491279
Free inodes: 433441-464400
Group 15: (Blocks 491280-524031)
Block bitmap at 491280 (+0), Inode bitmap at 491281 (+1)
Inode table at 491282-493216 (+2)
Free blocks: 493217-524031
Free inodes: 464401-495360
Group 16: (Blocks 524032-526119)
Block bitmap at 524032 (+0), Inode bitmap at 524033 (+1)
Inode table at 524034-525968 (+2)
151 free blocks, 30960 free inodes, 0 directories
Free blocks: 525969-526119
Free inodes: 495361-526320
fsck: 檢查并修複Linux檔案系統(通用檔案系統檢查及修複)
-t FSTYPE: 指定檔案系統類型
-a: 自動修複
[root@localhost ~]# fsck -a /dev/sdb5
fsck from util-linux-ng 2.17.2
HELLO: clean, 11/526320 files, 50116/526120 blocks
e2fsck: 專用于修複ext2/ext3檔案系統
-f: 強制檢查;
-p: 自動修複;
[root@localhost ~]# e2fsck /dev/sdb5
e2fsck 1.41.12 (17-May-2010)
挂載:将新的檔案系統關聯至目前根檔案系統
解除安裝:将某檔案系統與目前根檔案系統的關聯關系預以移除;
mount:挂載
mount 裝置 挂載點
裝置:
裝置檔案:/dev/sda5
卷标:LABEL=“”
UUID: UUID=“”
挂載點:目錄
要求:
1、此目錄沒有被其它程序使用;
2、目錄得事先存在;
3、目錄中的原有的檔案将會暫時隐藏;
mount: 顯示目前系統已經挂載的裝置及挂載點
mount [options] [-o options] DEVICE MOUNT_POINT
-a: 表示挂載/etc/fstab檔案中定義的所有檔案系統
-n: 預設情況下,mount指令每挂載一個裝置,都會把挂載的裝置資訊儲存至/etc/mtab檔案;使用—n選項意味着挂載裝置時,不把資訊寫入此檔案;
-t FSTYPE: 指定正在挂載裝置上的檔案系統的類型;不使用此選項時,mount會調用blkid指令擷取對應檔案系統的類型;
-r: 隻讀挂載,挂載CD光牒時常用此選項
-w: 讀寫挂載
-o: 指定額外的挂載選項,也即指定檔案系統啟用的屬性;
remount: 重新挂載目前檔案系統
ro: 挂載為隻讀
rw: 讀寫挂載
mount指令,可以挂載iso鏡像;
mount DEVICE MOUNT_POINT
-o loop: 挂載本地回環裝置
挂載完成後,要通過挂載點通路對應檔案系統上的檔案;
umount: 解除安裝某檔案系統
umount 裝置
umount 挂載點
解除安裝注意事項:
挂載的裝置沒有程序使用;
1、mount挂載裝置/dev/sdb5 在目錄/mnt/test/
[root@localhost ~]# mkdir /mnt/test
[root@localhost ~]# mount /dev/sdb5 /mnt/test/
[root@localhost ~]# ll /mnt/test/
total 16
drwx------. 2 root root 16384 Feb 21 14:49 lost+found
2、umount解除安裝
[root@localhost ~]# umount /mnt/test/
total 0
3、檢視所有挂載裝置
[root@localhost ~]# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb5 on /mnt/test type ext3 (rw)
4、檢視裝置挂載資訊
[root@localhost ~]# cat /etc/mtab
/dev/sda2 / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,rootcontext="system_u:object_r:tmpfs_t:s0" 0 0
/dev/sda1 /boot ext4 rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/dev/sdb5 /mnt/test ext3 rw 0 0
5、隻讀方式重新挂載
[root@localhost ~]# mount -o remount,ro /dev/sdb5
/dev/sdb5 on /mnt/test type ext3 (ro)