一直以来对linux下新硬盘分区挂载比较晕,大部分服务器都是装系统的时候分好区再也没有管,刚才无意看到一篇文章,稍加修改总结出下面的东西。

Linux的硬盘识别:

2.6 kernel以后,linux会将识别到的硬件设备,在/dev/下建立相应的设备文件.如:

sda        表示第1块SCSI硬盘

hda        表示第1块IDE硬盘(即连接在第1个IDE接口的Master口上)

scd0        表示第1个USB光驱.



当添加了新硬盘后,在/dev目录下会有相应的设备文件产生.cciss的硬盘是个例外,它的

设备文件在/dev/cciss/目录下.一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘

设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息.

1.关闭服务器加上新硬盘
2.启动服务器,以root用户登录
3.查看硬盘信息

#fdisk -l

Disk /dev/sda: 146.1 GB, 146163105792 bytes

255 heads, 63 sectors/track, 17769 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         5112     40957717+   83   Linux

/dev/sda3             5113         5243      1052257+   82   Linux swap /



Solaris

/dev/sda4             5244        17769    100615095     5   Extended

/dev/sda5             5244        17769    100615063+   83   Linux



Disk /dev/sdb: 291.3 GB, 291331192320 bytes

255 heads, 63 sectors/track, 17769 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb1: 291.3 GB, 291331192320 bytes


4.创建新硬盘分区

fdisk可以用m命令来看fdisk命令的内部命令;

a:命令指定启动分区;

d:命令删除一个存在的分区;

l:命令显示分区ID号的列表;

m:查看fdisk命令帮助;

n:命令创建一个新分区;

p:命令显示分区列表;

t:命令修改分区的类型ID号;

w:命令是将对分区表的修改存盘让它发生作用。

#fdisk /dev/sdb

Command (m for help):n

Command action

     e    extended    //输入e为创建扩展分区

     p    primary partition (1-4)

Partion number(1-4):1

Command (m for help): w



输入n回车,再输入p回车,再输出1回车,一路回车,最后输入w回车保存。

查看一下:

fdisk -l

可以看到/dev/sdb1分区

5.格式化分区:

mkfs.ext3 /dev/sdb1

6.创建/data1目录:

mkdir /data1

7.挂载分区:

mount /dev/sdb1 /data1

8.配置开机自动挂载

因为mount挂载在重启服务器后会失效,所以需要将分区信息写到/etc/fstab文件中让它永久挂载:

vi /etc/fstab

加入:

LABEL=/data1             /data1                   ext3     defaults         1 2

查看cat /etc/fstab

LABEL=/                  /                        ext3     defaults         1 1

LABEL=/data              /data                    ext3     defaults         1 2

LABEL=/data1             /data1                   ext3     defaults         1 2

LABEL=/boot              /boot                    ext3     defaults         1 2

tmpfs                    /dev/shm                 tmpfs    defaults         0 0

devpts                   /dev/pts                 devpts   gid=5,mode=620   0 0

sysfs                    /sys                     sysfs    defaults         0 0

proc                     /proc                    proc     defaults         0 0

LABEL=SWAP-hda3          swap                     swap     defaults         0 0



9.重启系统即可...


注意:如果你创建新分区的时候选择扩展分区的话按照上面的直接格式化会报错的。

[root@localhost ~]# fdisk /dev/sdb

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
e

[root@localhost ~]# mkfs.ext4 /dev/sdb1               -----直接格式化会出问题,因为你的扩展分区还没有建立逻辑分区
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: inode_size (128) * inodes_count (0) too big for a
filesystem with 0 blocks, specify higher inode_ratio (-i)
or lower inode count (-N).
[root@localhost ~]# mount /dev/sdb1 /data/
mount: you must specify the filesystem type             ------无法挂载

[root@localhost ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
        switch off the mode (command 'c') and change display units to
        sectors (command 'u').
Command (m for help): n
Command action
  l   logical (5 or over)                                                -------创建逻辑分区
  p   primary partition (1-4)
l
First cylinder (1-1305, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305):
Using default value 1305
Command (m for help): w
The partition table has been altered!


[root@localhost ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 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: 0x00098cae
  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39        3660    29084672   83  Linux
/dev/sda3            3660        3917     2064384   82  Linux swap / Solaris
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 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: 0xb307eb42
  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1305    10482381    5  Extended
/dev/sdb5               1        1305    10482349+  83  Linux          ------新建立的逻辑分区

再做格式化就成功了。

[root@localhost ~]# mkfs.ext4 /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
655360 inodes, 2620587 blocks
131029 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 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
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

再挂载就成功了
[root@localhost ~]# mount /dev/sdb5 /data/

[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              28G  6.4G   20G  25% /
tmpfs                 504M  264K  504M   1% /dev/shm
/dev/sda1             291M   31M  245M  12% /boot
/dev/sr0              3.5G  3.5G     0 100% /mnt
/dev/sdb5             9.9G  151M  9.2G   2% /data

开机自动挂载

[root@localhost ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Mar 21 16:33:16 2013
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=f41adc80-b4ea-43cc-8335-577500e7f50f /                       ext4    defaults        1 1
UUID=04b8d660-16b3-49e0-bfd8-b98f4e8ed266 /boot                   ext4    defaults        1 2
UUID=7d663775-3e63-40b2-8f0b-e334205d340e swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/cdrom              /mnt                    iso9660 auto           0 0
/dev/sdb5               /data                   ext4    defaults       1 2


在修改/etc/fstab文件后,运行mount -a命令验证一下配置是否正确
否则错误配置fstab文件导致系统无法正常启动。如果系统无法正常启动,则输入root密码进入修复模式,关键的一步是重新mount /( mount -n -o remount,rw /)。
如果没有此步操作,则文件系统处于只读状态,导致不能修改配置文件并保存,修复存在的问题。

9.重启系统