硬盘是计算机主要存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成,碟片外覆盖有铁磁性材料,硬盘内部由磁道、柱面、扇区、磁头等部件组成;
Linux系统中存放硬件设备的目录:/dev/
block是文件存储的最小单位
文件的存储分为两个部分
其中还有一个就是超级快:SuperBlock
总结:
操作系统进行格式化分区时,操作系统自动将硬盘分成两个区域。
#查看分区的inode大小
[root@Test0 ~]# dumpe2fs /dev/sda1 | grep "Inode size"
dumpe2fs 1.42.9 (28-Dec-2013)
dumpe2fs: Bad magic number in super-block 当尝试打开 /dev/sda1 时
#这两条命令,都出现有报错,原因是我们的系统使用了xfs-->需要另外一个命令查看
[root@Test0 ~]# tune2fs -l /dev/sda2 |grep "Inode size"
[root@Test0 ~]# xfs_info /dev/sda1
meta-data=/dev/sda1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#这样子也能查看文件的大小
[root@Test0 ~]# stat /boot/ |grep Inode
设备:801h/2049d Inode:64 硬链接:5
在给硬盘分区的时候,到格式化的步骤的时候,可以指定block的大小
文件名和inode编号是有对应关系的
硬链接的好处
创建硬链接
[root@Test0 sh]# ln aa.txt aa.txt.hard
[root@Test0 sh]# ll -i ./aa*
17544472 -rw-r--r-- 2 root root 0 3月 13 06:42 ./aa.txt
17544472 -rw-r--r-- 2 root root 0 3月 13 06:42 ./aa.txt.hard
软链接介绍
软链接功能
创建软连接
#创建软连接
[root@Test0 sh]# ln -s aa.txt aa.txt.soft
[root@Test0 sh]# ll -i aa.txt*
17544472 -rw-r--r-- 2 root root 0 3月 13 06:42 aa.txt
17544472 -rw-r--r-- 2 root root 0 3月 13 06:42 aa.txt.hard
17544479 lrwxrwxrwx 1 root root 6 3月 13 06:48 aa.txt.soft -> aa.txt
Linux中一切的硬件设备都是需要挂载才能使用,因此硬盘也是不例外;
如果添加了硬盘之后–>需要在/dev/目录中查看是否有识别到硬盘
#查看硬盘是否识别
[root@Test0 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc
#或者是使用fdisk 命令也能查看
[root@Test0 ~]# fdisk -l
添加新硬盘操作:
在虚拟机添加硬盘的操作就不做解释了;也不做笔记了,做了很多很多;
#对硬盘进行分区
[root@Test0 ~]# fdisk /dev/sdb
.........
命令(输入 m 获取帮助):m #输入m获取帮助
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition #扇区分区
g create a new empty GPT partition table #创建gpt标签
G create an IRIX (SGI) partition table
l list known partition types #列出已分区信息
m print this menu #获取帮助信息
n add a new partition #添加新分区
o create a new empty DOS partition table #创建dos分区标签
p print the partition table #显示分区信息-->分区好之后使用
q quit without saving changes #不保存退出
s create a new empty Sun disklabel
t change a partition's system id #指定分区id
u change display/entry units
v verify the partition table
w write table to disk and exit #保存并且退出
x extra functionality (experts only)
命令(输入 m 获取帮助):n #添加分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #选择是主分区还是拓展分区-->默认不填就是主分区
分区号 (1-4,默认 1):1 #选择分区号-->不填就是默认1
起始 扇区 (2048-41943039,默认为 2048): #开始的扇区
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G #指定分区的大小
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):p #列出已经分区的信息
...............
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 12584959 4194304 83 Linux
#如果想删除分区
命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):2
分区 2 已删除
#保存退出
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
#查看一下是否成功
[root@Test0 ~]# ls /dev/sdb1
/dev/sdb1
#查看一下有多少命令是可以进行分区的
[root@Test0 ~]# mkfs
mkfs mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs
#对sdb1进行分区
[root@Test0 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#创建目录
[root@Test0 ~]# mkdir /sbd1
#直接挂载使用
[root@Test0 ~]# mount /dev/sdb1 /sdb1
#查看一下是否挂载
[root@Test0 ~]# df -h | grep sdb1
/dev/sdb1 2.0G 33M 2.0G 2% /sdb1
[root@Test0 ~]#
作用:对硬盘进行分区–>MBR分区
语法:fdisk+选项+硬盘
选项:
如果硬盘的容量大于2TB的话,可以使用GPT格式;
parted命令是用于GPT格式的分区
实验过程:
#修改硬盘的分区格式
[root@Test0 ~]# parted -s /dev/sdc mklabel gpt
#基于ext4文件系统类型格式化
[root@Test0 ~]# mkfs.ext4 /dev/sdc
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdc is entire device, not just one partition!
无论如何也要继续? (y,n) y
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
#然后挂载使用
[root@Test0 ~]# mount /dev/sdc /sdb1/
#检查一下
[root@Test0 ~]# df -h
........
/dev/sdc 20G 45M 19G 1% /sdb1
第二种直接使用parted命令进行分区
#直接输入parted
[root@Test0 ~]# parted
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
#然后选择硬盘
(parted) select /dev/sdc
使用 /dev/sdc
#然后创建格式类型
(parted) mklabel gpt
警告: 正在使用 /dev/sdc 上的分区。
忽略/Ignore/放弃/Cancel? Ignore #这里会询问你是否确定-->输入忽略就可以了
#然后最后一次确认
警告: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to
continue?
是/Yes/否/No? yes #直接选择yes
#把整块硬盘进行分区,分配一个分区
(parted) mkpart primary 0 -1
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? ignore
#查看一下就发现成功了
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 17.4kB 21.5GB 21.5GB primary
#退出
(parted) quit
#然后创建文件系统
[root@Test0 ~]# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=1310658 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242631, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#最后挂载使用
[root@Test0 ~]# mount /dev/sdc1 /sdb1/
[root@Test0 ~]# df -h | grep sdb
/dev/sdc1 20G 33M 20G 1% /sdb1
作用:对硬盘设备进行挂载;是一个用于挂载的工具
语法:mount + 选项+ 设备
选项:
实际操作案例讲解:
#正常挂载使用
[root@Test0 ~]# mount /dev/sdb1 /sdb1/
#挂载光盘镜像-->使用-t参数-->指定类型是iso9660
[root@Test0 ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
#重新挂载/目录,并且指定权限
[root@Test0 ~]# mount -o remount,rw /
#卸载操作
[root@Test0 ~]# umount /dev/cdrom
[root@Test0 ~]#