Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷

Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷

磁盘格式化很重要,如果我们的服务器存储空间不够,那么我们就需要一块新的磁盘,新的磁盘加上之后,我们就需要格式化分区。
格式化
操作步骤:
1、 新建分区
2、 内核识别到新的分区表
3、 格式化分区
4、 挂载分区
首先查看当前分区列表:fdisk -l
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
这个硬盘是21.4G的,有255个磁面;63个扇区;2610个磁柱;每个 cylinder(磁柱)的容量是 8225280 bytes=8225.280 K(约为)=8.225280M(约为);
fdisk命令我们以前是讲过的,大家注意看下后面的Id这一列,
83 是代表EXT2、EXT3或ext4文件系统
82 是代表SWAP分区
5 是代表扩展分区
b 是代表fat32文件系统,所有的可以输入t-l 查看
LINUX系统分区使用的工具是FDISK
接下来,我们对系统的第一个硬盘分区,/dev/sda表示第一块scsi磁盘,注意这里不要加上分区号,直接对磁盘操作。
fdisk /dev/sda
如果是对第二个硬盘分区,就是fdisk /dev/sdb
运行这个命令:fdisk /dev/sda
这是主菜单,注意看输入m就可以得到帮助信息。
我们主要掌握的是以下几个参数:
d删除一个分区
n创建一个分区
q不保存退出
p查看分区表
t改变分区ID 这里的ID就是刚开始我们看到的ID号,我们通过输入t来修改。
w保存退出
LINUX对SCSI硬盘最多支持多少分区?
最多支持4个主分区,总分区数最多15个,fdisk 命令最多支持16个分区,IDE硬盘要多一些

接下来,我们对一块新添加的磁盘进行分区,先运行fdisk /dev/sdb
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
现在我们创建一个分区 大小为500MB,在主菜单输入n,
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
上图提示你要划分主分区还是扩展分区,我们输入p,表示要划分主分区。接下来询问,分区号,从1开始,就输入1
First cylinder (1-652, default 1):
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
这个表示第一个柱面空间的块是 1-652,default 1的意思就是默认从1开始。我们直接回车,使用默认的
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652):
这里就是输入分区的大小,默认是以块为单位,我们要分500MB,我们就输入+500M 然后回车,分区就算完成了。
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
系统默认的分区ID就是83,所以我们不用修改,直接输入w保存退出
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
注意,分区结束之后,内核默认是没有读到这个新添加的分区,可以通过重新启动计算机让系统识别到新的分区,
其实也不一定要重启计算机,我们可以使用partprobe命令,让这个分区马上生效,也就是让内核重新读取硬盘分区表。 出现的这个警告可以忽略,这里提示光驱是只读的,本来就是只读的,然后用fdisk -l查看下, 最后一个,就是我们新建的分区
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
注意:RHEL6.0版本这个partprobe不能使用。我们使用下面命令。
新增分区的话用 partx -a /dev/sda 需要敲两次
删除分区的话用 partx -d --nr N /dev/sda
分区好了,是不是就直接能用来,当然不是,大家回想下,windows系统分区的时候,是不是还提示先要格式化,
那么,接下来,现我们就格式化这个分区,看到分区的号码/dev/sda1 ,
格式化的标准命令:
#mkfs.ext3 /dev/sdb1
我的是第1个分区,你们是第几个就用第几个
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
分区,格式化,都已经完成,是不是就可以用来,当然不是,想想windows上,是不是要给分区给个盘符,对,在linux系统,我们就需要将新建立的分区挂载到系统的一个目录下。
接下来,我们挂载这个分区。挂载之前已经讲过了,有问题可以翻看之前的资料。
先在/mnt/下面建立一个目录
mkdir /mnt/backup
backup就是我建立的目录
然后手动挂载
mount -t ext3 /dev/sdb1 /mnt/backup

然后CD到这目录里面去,如果看见有一个LOST+fount目录,就说明你分区挂载成功了,现在就可以往分区里面写入数据了

我们还可以用df –h 命令查看
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
注意,手动挂载,重启机器之后是不会挂载上的,那么我们需要配置开机挂载,就把它写入/etc/fstab
注意,在rhel5里是指定LABEL来识别系统挂载目录,rhel6中改用指定UUID(硬盘的ID号),可防止内核升级后硬盘挂载出错
查看uuid号
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
注意看上图,红线标记的就是/dev/sdb1分区的uuid号
接下来开始写fstab文件,红线部分就是新添加的,意思大家都应该懂的。当然我们也可以不使用uuid号,挂载设备可以写/dev/sdb1大家把这两种方法都试试。
Linux新建分区,格式化,新建SWAP分区,创建LVM逻辑卷
完成之后,重新启动系统来进行测试。

接下来我们看看swap分区不够用的情况下,如何增加。
SWAP称之为交换分区,相当于Windows系统下的虚拟内存。作用就是当我们系统中的内存不够用的时候,可以通过SWAP来增加内存。安装Linux系统的时候,必须的两个分区一个是根,一个是SWAP。如果安装系统的时候,SWAP分区分小了的话,需要增加大小,那么接下来的内容就是这个:SWAP分区的创建/扩展。
有两种方法供我们选择
方法一、利用磁盘的剩余空间
前提就是磁盘还有剩余空间没有划分,或者是已经划分的分区没有使用。这个时候才能使用此方法。
实现步骤:新建分区–修改id号为82–格式化–启用swap分区–写入fstab文件
1、首先分区,修改id号

2、输入partx –a /dev/sda 让内核识别到新创建的分区。

3、接下来输入mkswap /dev/sda5 格式化,这里的格式化命令跟文件系统格式化的不同,还有注意下这里的uuid号,后面会用到的。

4、接下来使用swapon /dev/sda5**swap分区,我们先看看当前的大小,再**,再看大小

5、写入/etc/fstab文件,红色标记的一行就是新写的,

然后大家重新启动测试下。

方法二:利用分区的剩余空间
既然用分区的剩余空间,要找个空间大的分区来进行下面的操作
1、查看哪个分区比较大

2、创建一个256M的文件,名字为根目录下的swapfile
dd if=/dev/zero of=/swapfile bs=1M count=256

3、格式化创建的swapfile文件,

4、**swap

5、写入fstab文件,不一定非要使用uuid号,下面的红线部分。

查看swap的优先级

这里是数字越大,优先级越高。
要更改他们的优先级也很简单,只需要在fstab中增加pri参数就OK。注意,这个pri后面的数值不能是负数!/etc/fstab修改的主要内容如下。
注意:不是必要情况下,系统默认的最好。

为了使设置生效,需要先关闭swap再开启

正常情况下,我们不需要增大swap分区,也不需要调整优先级。

LVM逻辑卷管理器
LVM的优点就是可以随意扩大和缩小分区大小。
LVM是一种磁盘管理方式,叫逻辑卷管理器。LVM是一种把硬盘驱动器空间分配成逻辑卷的方法,这样硬盘就不必使用分区而被简易地重划大小。主要就是这个功能,可以随意扩展或者缩小某个分区的大小,前提这个分区是逻辑卷管理的。LVM类似于WIN下的动态磁盘。
分一个物理分区,建立一个物理卷,然后这个物理卷建立一个卷组,我们就可以在这个卷组里面去分数个逻辑卷,而且逻辑卷可以随意扩大缩小,不会对物理分区有影响,逻辑卷的功能也和物理分区差不多,一样可以格式化成随意的文件系统,挂载到随意的目录。同时也支持磁盘配额

创建逻辑卷的步骤:
1)通过pvcreate命令将linux分区或者物理磁盘处理成物理卷(PV);
2)通过vgcreate命令将创建好的物理卷处理成卷组(Vg);
3)通过lvcreate命令将卷组分成若干个逻辑卷(Lv);
之后我们可以对逻辑卷进行格式化,挂载,删除等操作,我们可以动态的调整逻辑卷的大小,并且该操作不会影响我们在逻辑卷(Lv)上的数据。

第一步:划分物理分区
使用和刚才一样的方法
fdisk /dev/sdb
输入n 然后回车使用默认的起始点,接着输入大小哈。我们创建一个300M大小的空间,输入+300M

注意,这里比刚才多一步,由于LVM的ID和EXT3不一样,而系统默认是的EXT3,所以这里我们需要修改一下
在主菜单输入T
系统会让你选择要改变ID的分区,输入我们刚创建的分区,也就是最后一个2

Hex code (type L to list codes):
这里输入分区类型,LVM是8e,如果你不记得了,可以使用l 查看分区ID的对应列表
输入l后,系统会列出所有分区对应的ID号

看见最后你分出来的分区ID已经是8e,那么就可以输入w 保存退出
退出以后,记得要重启这个分区才能生效。我们要使用一个命令让它立即生效
#partprobe

到这里,第一步创建物理分区完成哈~
第二步:创建LVM的物理卷
使用命令
pvcreate /dev/sdb2
[[email protected] ~]# pvcreate /dev/sdb{1,2,3} 如果有多个分区,这样写,也可以一个一个写比如 pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
sdb2就是你刚才创建的分区
pvscan查看物理卷信息:会显示所有物理卷的情况
创建成功后,可以使用pvdisplay 查看

第三步:创建卷组
#vgcreate 卷组名 物理卷
#vgcreate wahaha /dev/sdb2
创建成功后,可以使用vgdisplay来查看卷组

第四步:创建逻辑卷 (重点)
#lvcreate -L 大小 卷组名 -n 逻辑卷名称
我就从卷组里面分100M出来创建一个逻辑卷
#lvcreate -L 100M wahaha -n wahaha1

第五步:格式化、挂载逻辑卷
#mkfs.ext3 /dev/wahaha/wahaha1

#mkdir /mnt/wahaha1
#mount -t ext3 /dev/wahaha/wahaha1 /mnt/wahaha1

现在我们再在刚才的卷组里面划分一个逻辑卷wahaha2出来,大小是150M,文件格式为ext3,挂载到/mnt/wahaha2
#lvcreate -L 150M wahaha -n wahaha2
#mkfs.ext3 /dev/wahaha/wahaha2
#mkdir /mnt/wahaha2
#mount -t ext3 /dev/wahaha/wahaha2 /mnt/wahaha2

现在wahaha1是100M,wahaha2是150M
我现在要把wahaha2减少50M ,wahaha1增加50M,大家看下面

注意:缩小空间时可能会导致数据损坏,所以建议大家做lvm的时候,规划好,尽量少做缩小空间,我们这里主要是讲方法,应用。

[[email protected] backup]# umount /mnt/wahaha2 —卸载
[[email protected] backup]# e2fsck -f /dev/wahaha/wahaha2 -----强制检查
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/wahaha/wahaha2: 11/26624 files (9.1% non-contiguous), 9031/102400 blocks
[[email protected] backup]# resize2fs /dev/wahaha/wahaha2 100M —缩小文件系统,注意这里的100M,是最终的大小,不是要减少多少。
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/wahaha/wahaha2 to 102400 (1k) blocks.
The filesystem on /dev/wahaha/wahaha2 is now 102400 blocks long.
[[email protected] backup]# lvresize -L 100M /dev/wahaha/wahaha2 -----调整大小逻辑卷,这里的大小同上。
WARNING: Reducing active logical volume to 100.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce wahaha2? [y/n]: y
Reducing logical volume wahaha2 to 100.00 MB
Logical volume wahaha2 successfully resized
[[email protected] backup]# mount /dev/wahaha/wahaha2 /mnt/wahaha2 重新挂载
[[email protected] backup]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 18G 2.1G 15G 13% /
/dev/mapper/wahaha-wahaha1
97M 5.6M 87M 7% /mnt/wahaha1
/dev/mapper/wahaha-wahaha2
97M 5.6M 88M 6% /mnt/wahaha2

这样就缩小了LV的大小,注意要先umount
正确滴方法是:
对于lvm,如果是扩大某个lv,操作比较简单,但如果是缩小lv,则有一定的风险。我们先要缩小/dev/wahaha/wahaha2文件系统,然后才能缩小lvm,如果在缩小lvm之前忘了缩小文件系统,这时候可以这样来挽救:
1:不要进行对该分区的任何写入操作,最好是也不read
2:用lvresize2fs重新扩大该分区,且扩大的容量是刚刚缩小的容量(数字一定要和刚刚的一致)。
3:缩小文件系统
4:最后缩小逻辑卷哈。
5:确认文件系统和逻辑卷大小一致。

使用同样的命令给wahaha1加50M,这个就比较简单了
lvextend –L 要增加多少 逻辑卷
lvextend –L +1G /dev/wahaha/wahaha1
resize2fs /dev/wahaha/wahaha1 系统重新识别

现在我们使用的空间都是在卷组里面调用的,如果卷组的空间用完了怎么办?
那我们就需要给卷组拉升大小,给卷组拉升大小的方法
第一步、创建物理分区
#fdisk /dev/sdb
然后分一个分区,你想多大就多大,改变分区ID位8e。 然后保存退出

[[email protected] ~]# fdisk /dev/sdb

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (100-652, default 100):
Using default value 100
Last cylinder or +size or +sizeM or +sizeK (100-652, default 652): +500M

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb2 63 99 297202+ 8e Linux LVM
/dev/sdb3 100 161 498015 83 Linux

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb2 63 99 297202+ 8e Linux LVM
/dev/sdb3 100 161 498015 8e Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[[email protected] ~]# partprobe
Warning: Unable to open /dev/hdc read-write (Read-only file system). /dev/hdc has been opened read-only.

第二步:创建物理卷
#pvcreate /dev/sdb3

第三步:拉升卷组,把刚建立的物理卷的空间加到以前的卷组中(重点)
#vgextend 卷组名 物理卷
#vgedtend wahaha /dev/sdb3
然后vgdisplay 查看下卷组的大小

给卷组增加大小后,我们就可以把新的空间分配到LVM中,看上面的增加方法。这样LVM的空间就可以无限扩张

如果其中一个pv坏了,如何更换呢?
首选需要添加一个新的分区,用fdisk /dev/sda命令,注意新的分区大小,格式,系统id都需要和坏掉的那个一模一样 ( 这步前面做太多了,这里就省略了)
pvcreate /dev/sda10 //创建物理卷
vgextend vgname /dev/sda10 //在卷组里增加物理卷
pvmove /dev/sda8 /dev/sda10 //把/dev/sda8中的数据移动到/dev/sda10中
pvdisplay //查看数据移动后的物理卷状态
vgreduce vgname /dev/sda8 //先在卷组中移除损坏的sda8
vgdisplay

下面我们来看下删除逻辑卷
我们创建LVM是从物理分区(或者磁盘)-物理卷-卷组-逻辑卷-格式化-挂载到目录这个顺序来的
删除当然像反安装一样,反正来
1)先是取消挂载
#umount /mnt/wahaha1
#umount /mnt/wahaha2

2)然后就是删除LVM
#lvremove /dev/wahaha/wahaha1
#lvremove /dev/wahaha/wahaha2

3)然后就删除卷组
#vgremove wahaha

4)然后删除物理卷
#pvremove /dev/sdb2
#pvremove /dev/sdb3

5)最后就是删除物理分区了
fdisk /dev/sdb

[[email protected] ~]# fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb2 63 99 297202+ 8e Linux LVM
/dev/sdb3 100 161 498015 8e Linux LVM
Command (m for help): d
Partition number (1-4): 2
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb3 100 161 498015 8e Linux LVM
Command (m for help): d
Partition number (1-4): 3
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[[email protected] ~]# partprobe
Warning: Unable to open /dev/hdc read-write (Read-only file system). /dev/hdc has been opened read-only.
[[email protected] ~]#
[[email protected] ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 144 1052257+ 82 Linux swap / Solaris
/dev/sda3 145 271 1020127+ 83 Linux
/dev/sda4 272 2610 18788017+ 5 Extended
/dev/sda5 272 2610 18787986 83 Linux
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
[[email protected] ~]#
这样逻辑卷就算成功删除了

总结:
创建逻辑卷的顺序:创建Linux分区(或者磁盘)—物理卷—卷组—逻辑卷—格式化—挂载分区
删除逻辑卷的顺序:卸载分区—删除逻辑卷—删除卷组----删除物理卷—删除分区