基本的存储管理:分区、格式化、挂载
MBR分区方式:fdisk //一般针对2TB以下的分区
GPT分区方式:parted 一般针对>2TB
MBR(Master Boot Record,主引导记录),它位于硬盘的0柱面、0磁头、1扇区。
就是我们常用的分区方式,最大支持2.19TB(2的32次方*512byte),可以划分4个主分区或3个主分区+1个扩展分区。
GPT,即GUID Partition Table。GPT对分区数量没有限制,GPT支持18EB。
RHEL5:
IDE /dev/hd*
SCSI,SATA,USB /dev/sd*
RHEL6:
IDE,SCSI,SATA,USB /dev/sd*
HP:
/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0:第一个控制器,d0第一块磁盘, p1分区1
/dev/cciss/c0d0p2
===== MBR分区 =====
1. 查看新设备是否发现
# ll /dev/sd* //查看
# fdisk -ul //u以扇区的方式查看,redhat6 已不能用柱面查看
2. 分区
# fdisk -u /dev/sda //分区
Command (m for help): m
Command action
d delete a partition
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
t change a partition's system id //改变分区类型
w write table to disk and exit
按n,起点默认就行, 终点可以设置,例如+2G,再回车就行, 按t改变id,保存得按w,不保存,按q
# partx -a /dev/sda //让内核刷新分区表,最好多刷两遍,及时刷新。redhat5下还可用partprobe命令刷新。如:# partprobe /dev/sda
# ll /dev/sd*
3. 格式化(创建文件系统)
Windwos: FAT,FAT32,NTFS
Linux: VFAT,Ext2,Ext3,Ext4,GFS,GFS2
# mkfs.ext3 /dev/sda6 //这一步是指定类型为ext3
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244320 inodes, 488281 blocks
24414 blocks (5.00%) reserved for the super user
# mkfs.ext3 /dev/sda7
4. 挂载
建立挂载点
# mkdir /mnt/disk1 //建立挂载点,因为挂载点必须是空目录
# mkdir /mnt/disk2
挂载
===手动:
# mount -t ext3 -o ro,noexec /dev/sda6 /mnt/disk1 //-o 指定选项 如: -o ro 只读 ,-o rw 可读写 ,-o noatime 不更新atime (网站文件)
# mount -o ro,noexec /dev/sda6 /mnt/disk1 //这条同上
# mount /dev/sda7 /mnt/disk2 //默认
[root@station230 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 ext3 19G 4.4G 14G 25% /
/dev/sda3 ext3 19G 5.0G 13G 28% /var
/dev/sda1 ext3 487M 16M 446M 4% /boot
tmpfs tmpfs 1009M 0 1009M 0% /dev/shm
/dev/sda6 ext3 1.9G 35M 1.8G 2% /mnt/disk1
/dev/sda7 ext3 2.8G 69M 2.6G 3% /mnt/disk2
[root@station230 ~]# mount //查看挂载情况,也能显示权限情况
/dev/sda6 on /mnt/disk1 type ext3 (ro,noexec)
/dev/sda7 on /mnt/disk2 type ext3 (rw)
=== 开机自动挂载
# vim /etc/fstab //更改这个配置文件,能够开机自动挂载
/dev/sda6 /mnt/disk1 ext3 defaults 0 0
UUID="60a2dfee-c7d7-44a3-882c-e13df4e77976" /mnt/disk2 ext3 defaults 0 0
/root/rhel5.8.iso /mnt/iso iso9660 defaults,loop 0 0 //自动挂载光盘镜像iso
//defaults是默认,下面有讲解, 最后的两个0,第一个的位置是备份,第二个是检测,0表示关闭 ,可以设置1,2开启并设置了顺序
六个域,分别为:<file system>、<mount point>、<type> 、<options>、<dump>、<pass>
<dump>。此处为1的话,表示要将整个<fie sysytem>里的内容备份;为0的话,表示不备份。现在很少用到dump这个工具,在这里一般选0。
<pass>。这里用来指定如何使用fsck来检查硬盘。如果这里填0,则不检查;挂载点为 / 的(即根分区),必须在这里填写1,其他的都不能填写1。
如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字的同时检查。
比如第一和第二个分区填写2,第三和第四个分区填写3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个分区。
# mount -a // 不想重启时再读这个文件,就手动让它读一下
# df -Th
========================================================
小知识:挂载时可以使用
设备名 /dev/sda6 //这个不太可靠,用也可以
卷标LABEL sda6
UUID //# blkid /dev/sda6 查看指定设备的UUID,UUID是唯一的,相当于身份证号
...
========================================================
增加交换分区:
1. 查看现有的交换分区(是否处于激活状态)
[root@station230 ~]# free -m
total used free shared buffers cached
Swap: 8001 0 8001
[root@station230 ~]# swapon -s 这个也是一种查看交换分区的方法
Filename Type Size Used Priority
/dev/sda5 partition 8193108 0 -1
2. 建立交换分区
/dev/sda8 109111776 124736776 7812500+ 82 Linux swap / Solaris
# partx -a /dev/sda
3. 格式化成交换分区
# mkswap /dev/sda8 //这个命令和上面的格式化不一样哦
4. 激活,开机自动挂载
[root@station230 ~]# swapon /dev/sda8 //激活交换分区# swapon -a 激活所有
[root@station230 ~]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 8193108 0 -1
/dev/sda8 partition 7812492 0 -2
[root@station230 ~]# vim /etc/fstab //让其永久生效
/dev/sda8 swap swap defaults 0 0
使用dd创建的文件:
# dd if =/dev/cdrom of=/rhel5_8.iso //i input o output
# dd </dev/cdrom >/rhel5_8.iso //用到了输入输出重定向
# dd if=/dev/zero of=/a.img bs=1M count=100 //zero是0,用这个填充一个空间,相当于从根/下扣出100M给/a.img
[root@station5 ~]# mkswap /a.img //将/a.img格式化成了一个swap分区
Setting up swapspace version 1, size = 104853 kB
[root@station230 ~]# swapon /a.img //激活 /a.img
[root@station230 ~]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 8193108 0 -1
/dev/sda8 partition 7812492 0 -3
/a.img file 102392 0 -4
[root@station230 ~]# vim /etc/fstab
/a.img swap swap defaults,loop 0 0
======GPT分区方式:parted >2TB====
1. Use the parted tool to access the partition table of the device:
# parted /dev/sdj <== //<==这里表示输入的东西
Using /dev/sdj
Welcome
2.
(parted) mklabel <== 首次对该硬盘进行分区时,因为会destroy数据
Warning: The existing disk label on /dev/sdj will be destroyed and all data on this
disk will be lost. Do you want to continue?
Yes/No? Yes <==
New disk label type? [gpt]? gpt <==
(parted)
3. (parted) print <==
Model: Linux device-mapper (dm)
Disk /dev/sdj: 5662310.4MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
4. (parted) mkpart primary 0 5662310.4MB <==
5.
(parted) print <==
Model: Linux device-mapper (dm)
Disk /dev/mapper/VolGroup00-gpttest: 5662310.4MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 5662310.4MB 5662310.4MB primary
(parted) quit <==
Information: Don't forget to update /etc/fstab, if necessary.
6. You can now create a filesystem on the device /dev/sdj1
mkfs.ext3 /dev/sdj <==
========================================================
使用ISO文件:iso文件可以刻录光盘,在Windows也可以打开,而且文件不容易坏
1. 将光盘制作成iso
# dd if=/dev/cdrom of=/rhel5_8.iso
# dd </dev/cdrom >/rhel5_8.iso
2. 将文件制作成iso ,例如将/etc制作成etc.iso,mkisofs命令
# mkisofs -o /var/etc.iso -r /etc //做成镜像,mkisofs -o 目标文件名 -r 源文件名
[root@station230 ~]# ll /var/etc.iso
-rw-r--r-- 1 root root 114098176 11-01 14:12 /var/etc.iso
[root@station230 ~]#
[root@station230 ~]# file /var/etc.iso
/var/etc.iso: ISO 9660 CD-ROM filesystem data 'CDROM '
3. 使用iso,挂载
[root@station230 ~]# mount -o loop /var/etc.iso /mnt/iso/
[root@station230 ~]# mount /var/etc.iso /mnt/iso/ -o loop //同上条等价
===挂载选项:
# mount -t ext3 -o ro,noexec /dev/sda6 /mnt/disk1 //优盘一般挂载只读不执行权限
# mount -o ro,noexec /dev/sda6 /mnt/disk1 // 一般-t都不加就能
# mount /dev/sda7 /mnt/disk2 //默认
# mount --bind olddir newdir //将文件夹挂载到文件夹
# man mount
defaults:
rw, suid, dev, exec, auto, nouser,and async.
ro 只读
noauto 不自动挂载
noexec 不允许执行二制文件
noatime 不更新访问时间
usrquota 支持用户磁盘配额功能
grpquota 支持组磁盘配额功能
remount 重新挂载 这种可以在不卸载掉的前提下再挂载,配置文件文件也同步了
# mount -o remount /mnt/disk1 *********
acl 支持acl
两种方法支持
A、设置默认挂载选项
[root@station5 ~]# tune2fs -l /dev/sda2 //系统自动设置的挂载选项包含acl的
Default mount options: user_xattr acl
[root@station230 ~]# tune2fs -l /dev/sda6 查看文件系统信息,自己创建的分区没有acl了
Default mount options: (none)
[root@station230 ~]# tune2fs -o acl /dev/sda6 修改默认挂载选项,添加acl功能
[root@station5 ~]# tune2fs -l /dev/sda6 | grep 'Default'
Default mount options: acl
[root@station230 ~]# tune2fs -o ^acl /dev/sda6 取消acl选项
[root@station5 ~]# tune2fs -l /dev/sda6 | grep 'Default'
Default mount options: (none)
B、在挂载时,使用acl选项
1.[root@station5 ~]# mount -o acl,remount,usrquota /dev/sda6
[root@station5 ~]# mount
/dev/sda6 on /mnt/disk1 type ext3 (ro,noexec,acl,usrquota)
[root@station5 software]# setfacl -m u:rose:rw /mnt/disk1
[root@station5 software]# getfacl /mnt/disk1
getfacl: Removing leading '/' from absolute path names
# file: mnt/disk1
# owner: root
# group: root
user::rwx
user:rose:rw-
group::r-x
mask::rwx
other::r-x
2.[root@station5 software]# vim /etc/fstab
/dev/sda6 /mnt/disk1 auto defaults,acl 0 0
[root@station5 software]# mount -o remount /mnt/disk1
MBR分区方式:fdisk //一般针对2TB以下的分区
GPT分区方式:parted 一般针对>2TB
MBR(Master Boot Record,主引导记录),它位于硬盘的0柱面、0磁头、1扇区。
就是我们常用的分区方式,最大支持2.19TB(2的32次方*512byte),可以划分4个主分区或3个主分区+1个扩展分区。
GPT,即GUID Partition Table。GPT对分区数量没有限制,GPT支持18EB。
RHEL5:
IDE /dev/hd*
SCSI,SATA,USB /dev/sd*
RHEL6:
IDE,SCSI,SATA,USB /dev/sd*
HP:
/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0:第一个控制器,d0第一块磁盘, p1分区1
/dev/cciss/c0d0p2
===== MBR分区 =====
1. 查看新设备是否发现
# ll /dev/sd* //查看
# fdisk -ul //u以扇区的方式查看,redhat6 已不能用柱面查看
2. 分区
# fdisk -u /dev/sda //分区
Command (m for help): m
Command action
d delete a partition
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
t change a partition's system id //改变分区类型
w write table to disk and exit
按n,起点默认就行, 终点可以设置,例如+2G,再回车就行, 按t改变id,保存得按w,不保存,按q
# partx -a /dev/sda //让内核刷新分区表,最好多刷两遍,及时刷新。redhat5下还可用partprobe命令刷新。如:# partprobe /dev/sda
# ll /dev/sd*
3. 格式化(创建文件系统)
Windwos: FAT,FAT32,NTFS
Linux: VFAT,Ext2,Ext3,Ext4,GFS,GFS2
# mkfs.ext3 /dev/sda6 //这一步是指定类型为ext3
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244320 inodes, 488281 blocks
24414 blocks (5.00%) reserved for the super user
# mkfs.ext3 /dev/sda7
4. 挂载
建立挂载点
# mkdir /mnt/disk1 //建立挂载点,因为挂载点必须是空目录
# mkdir /mnt/disk2
挂载
===手动:
# mount -t ext3 -o ro,noexec /dev/sda6 /mnt/disk1 //-o 指定选项 如: -o ro 只读 ,-o rw 可读写 ,-o noatime 不更新atime (网站文件)
# mount -o ro,noexec /dev/sda6 /mnt/disk1 //这条同上
# mount /dev/sda7 /mnt/disk2 //默认
[root@station230 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 ext3 19G 4.4G 14G 25% /
/dev/sda3 ext3 19G 5.0G 13G 28% /var
/dev/sda1 ext3 487M 16M 446M 4% /boot
tmpfs tmpfs 1009M 0 1009M 0% /dev/shm
/dev/sda6 ext3 1.9G 35M 1.8G 2% /mnt/disk1
/dev/sda7 ext3 2.8G 69M 2.6G 3% /mnt/disk2
[root@station230 ~]# mount //查看挂载情况,也能显示权限情况
/dev/sda6 on /mnt/disk1 type ext3 (ro,noexec)
/dev/sda7 on /mnt/disk2 type ext3 (rw)
=== 开机自动挂载
# vim /etc/fstab //更改这个配置文件,能够开机自动挂载
/dev/sda6 /mnt/disk1 ext3 defaults 0 0
UUID="60a2dfee-c7d7-44a3-882c-e13df4e77976" /mnt/disk2 ext3 defaults 0 0
/root/rhel5.8.iso /mnt/iso iso9660 defaults,loop 0 0 //自动挂载光盘镜像iso
//defaults是默认,下面有讲解, 最后的两个0,第一个的位置是备份,第二个是检测,0表示关闭 ,可以设置1,2开启并设置了顺序
六个域,分别为:<file system>、<mount point>、<type> 、<options>、<dump>、<pass>
<dump>。此处为1的话,表示要将整个<fie sysytem>里的内容备份;为0的话,表示不备份。现在很少用到dump这个工具,在这里一般选0。
<pass>。这里用来指定如何使用fsck来检查硬盘。如果这里填0,则不检查;挂载点为 / 的(即根分区),必须在这里填写1,其他的都不能填写1。
如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字的同时检查。
比如第一和第二个分区填写2,第三和第四个分区填写3,则系统在检查完根分区后,接着同时检查第一和第二个分区,然后再同时检查第三和第四个分区。
# mount -a // 不想重启时再读这个文件,就手动让它读一下
# df -Th
========================================================
小知识:挂载时可以使用
设备名 /dev/sda6 //这个不太可靠,用也可以
卷标LABEL sda6
UUID //# blkid /dev/sda6 查看指定设备的UUID,UUID是唯一的,相当于身份证号
...
========================================================
增加交换分区:
1. 查看现有的交换分区(是否处于激活状态)
[root@station230 ~]# free -m
total used free shared buffers cached
Swap: 8001 0 8001
[root@station230 ~]# swapon -s 这个也是一种查看交换分区的方法
Filename Type Size Used Priority
/dev/sda5 partition 8193108 0 -1
2. 建立交换分区
/dev/sda8 109111776 124736776 7812500+ 82 Linux swap / Solaris
# partx -a /dev/sda
3. 格式化成交换分区
# mkswap /dev/sda8 //这个命令和上面的格式化不一样哦
4. 激活,开机自动挂载
[root@station230 ~]# swapon /dev/sda8 //激活交换分区# swapon -a 激活所有
[root@station230 ~]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 8193108 0 -1
/dev/sda8 partition 7812492 0 -2
[root@station230 ~]# vim /etc/fstab //让其永久生效
/dev/sda8 swap swap defaults 0 0
使用dd创建的文件:
# dd if =/dev/cdrom of=/rhel5_8.iso //i input o output
# dd </dev/cdrom >/rhel5_8.iso //用到了输入输出重定向
# dd if=/dev/zero of=/a.img bs=1M count=100 //zero是0,用这个填充一个空间,相当于从根/下扣出100M给/a.img
[root@station5 ~]# mkswap /a.img //将/a.img格式化成了一个swap分区
Setting up swapspace version 1, size = 104853 kB
[root@station230 ~]# swapon /a.img //激活 /a.img
[root@station230 ~]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 8193108 0 -1
/dev/sda8 partition 7812492 0 -3
/a.img file 102392 0 -4
[root@station230 ~]# vim /etc/fstab
/a.img swap swap defaults,loop 0 0
======GPT分区方式:parted >2TB====
1. Use the parted tool to access the partition table of the device:
# parted /dev/sdj <== //<==这里表示输入的东西
Using /dev/sdj
Welcome
2.
(parted) mklabel <== 首次对该硬盘进行分区时,因为会destroy数据
Warning: The existing disk label on /dev/sdj will be destroyed and all data on this
disk will be lost. Do you want to continue?
Yes/No? Yes <==
New disk label type? [gpt]? gpt <==
(parted)
3. (parted) print <==
Model: Linux device-mapper (dm)
Disk /dev/sdj: 5662310.4MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
4. (parted) mkpart primary 0 5662310.4MB <==
5.
(parted) print <==
Model: Linux device-mapper (dm)
Disk /dev/mapper/VolGroup00-gpttest: 5662310.4MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 5662310.4MB 5662310.4MB primary
(parted) quit <==
Information: Don't forget to update /etc/fstab, if necessary.
6. You can now create a filesystem on the device /dev/sdj1
mkfs.ext3 /dev/sdj <==
========================================================
使用ISO文件:iso文件可以刻录光盘,在Windows也可以打开,而且文件不容易坏
1. 将光盘制作成iso
# dd if=/dev/cdrom of=/rhel5_8.iso
# dd </dev/cdrom >/rhel5_8.iso
2. 将文件制作成iso ,例如将/etc制作成etc.iso,mkisofs命令
# mkisofs -o /var/etc.iso -r /etc //做成镜像,mkisofs -o 目标文件名 -r 源文件名
[root@station230 ~]# ll /var/etc.iso
-rw-r--r-- 1 root root 114098176 11-01 14:12 /var/etc.iso
[root@station230 ~]#
[root@station230 ~]# file /var/etc.iso
/var/etc.iso: ISO 9660 CD-ROM filesystem data 'CDROM '
3. 使用iso,挂载
[root@station230 ~]# mount -o loop /var/etc.iso /mnt/iso/
[root@station230 ~]# mount /var/etc.iso /mnt/iso/ -o loop //同上条等价
===挂载选项:
# mount -t ext3 -o ro,noexec /dev/sda6 /mnt/disk1 //优盘一般挂载只读不执行权限
# mount -o ro,noexec /dev/sda6 /mnt/disk1 // 一般-t都不加就能
# mount /dev/sda7 /mnt/disk2 //默认
# mount --bind olddir newdir //将文件夹挂载到文件夹
# man mount
defaults:
rw, suid, dev, exec, auto, nouser,and async.
ro 只读
noauto 不自动挂载
noexec 不允许执行二制文件
noatime 不更新访问时间
usrquota 支持用户磁盘配额功能
grpquota 支持组磁盘配额功能
remount 重新挂载 这种可以在不卸载掉的前提下再挂载,配置文件文件也同步了
# mount -o remount /mnt/disk1 *********
acl 支持acl
两种方法支持
A、设置默认挂载选项
[root@station5 ~]# tune2fs -l /dev/sda2 //系统自动设置的挂载选项包含acl的
Default mount options: user_xattr acl
[root@station230 ~]# tune2fs -l /dev/sda6 查看文件系统信息,自己创建的分区没有acl了
Default mount options: (none)
[root@station230 ~]# tune2fs -o acl /dev/sda6 修改默认挂载选项,添加acl功能
[root@station5 ~]# tune2fs -l /dev/sda6 | grep 'Default'
Default mount options: acl
[root@station230 ~]# tune2fs -o ^acl /dev/sda6 取消acl选项
[root@station5 ~]# tune2fs -l /dev/sda6 | grep 'Default'
Default mount options: (none)
B、在挂载时,使用acl选项
1.[root@station5 ~]# mount -o acl,remount,usrquota /dev/sda6
[root@station5 ~]# mount
/dev/sda6 on /mnt/disk1 type ext3 (ro,noexec,acl,usrquota)
[root@station5 software]# setfacl -m u:rose:rw /mnt/disk1
[root@station5 software]# getfacl /mnt/disk1
getfacl: Removing leading '/' from absolute path names
# file: mnt/disk1
# owner: root
# group: root
user::rwx
user:rose:rw-
group::r-x
mask::rwx
other::r-x
2.[root@station5 software]# vim /etc/fstab
/dev/sda6 /mnt/disk1 auto defaults,acl 0 0
[root@station5 software]# mount -o remount /mnt/disk1