Ubuntu磁盘管理

为避免风险,建议你在虚拟机里面先玩玩,如果你已经掌握这些方法并深知可能的风险,you just do it。

gparted是Ubuntu上一个很好的图形化磁盘管理工具(使用“sudo apt-get install gparted”安装),直观,易用,适合新手。

1. 如何添加一块新硬盘

Virtual Machine Setting -> Add -> Hard Disk -> create a new virtual disk -> ...

添加成功后,启动Ubuntu。

1)查看硬盘信息:

ray@ray-ubuntu:~$ sudo fdisk -l

[sudo] password for ray:

Disk /dev/sda: 42.9 GB, 42949672960 bytes

255 heads, 63 sectors/track, 5221 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: 0x0001d2ab

Device Boot Start End Blocks Id System

/dev/sda1 * 1 5036 40450048 83 Linux

/dev/sda2 5037 5222 1489921 5 Extended

/dev/sda5 5037 5222 1489920 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: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

从显示信息看,包含两块硬盘,分别为/dev/sda和/dev/sdb,对应的容量为42.9G和10.7G。/dev/sdb当前还未分区。

2)给/dev/sdb分区

ray@ray-ubuntu:~$ sudo 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): m

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition

l list known partition types

m print this menu

n add a new partition

o create a new empty DOS partition table

p print the partition table

q quit without saving changes

s create a new empty Sun disklabel

t change a partition's system id

u change display/entry units

v verify the partition table

w write table to disk and exit

x extra functionality (experts only)

选择n,添加一个新分区。接着选择默认设置即可。最后选w,执行操作并退出。

完成后,再次检查硬盘信息。

ray@ray-ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes

255 heads, 63 sectors/track, 5221 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: 0x0001d2ab

Device Boot Start End Blocks Id System

/dev/sda1 * 1 5036 40450048 83 Linux

/dev/sda2 5037 5222 1489921 5 Extended

/dev/sda5 5037 5222 1489920 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: 0x976fd8e8

Device Boot Start End Blocks Id System

/dev/sdb1 1 1305 10482381 83 Linux

经确认,新增的硬盘分区成功。

2. 分区格式化

格式化成ex3文件系统。

ray@ray-ubuntu:/dev$ sudo mke2fs -j sdb1

[sudo] password for ray:

mke2fs 1.41.11 (14-Mar-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, 2620595 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 35 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

注:格式化ex3文件系统还可使用命令“sudo mkfs.ext3 /dev/sdb1”

检查分区格式:

ray@ray-ubuntu:~$ sudo df -hT /dev/sdb1

Filesystem Type Size Used Avail Use% Mounted on

/dev/sdb1 ext3 9.9G 151M 9.2G 2% /media/sdb1

3. 如何开机自动挂载

在谈如何自动挂载前,先来说说如何手动挂载。

先在/media/目录下建立disk-2文件夹(当然你可以指定任意的mount point):

ray@ray-ubuntu:/media$ sudo mkdir disk-2

ray@ray-ubuntu:/media$ ls -al

total 16

drwxr-xr-x 4 root root 4096 2011-04-15 17:15 .

drwxr-xr-x 22 root root 4096 2011-03-31 09:45 ..

drwxr-xr-x 2 root root 4096 2011-04-15 17:15 disk-2

lrwxrwxrwx 1 root root 7 2010-08-16 16:34 floppy -> floppy0

drwxr-xr-x 2 root root 4096 2010-08-16 16:34 floppy0

ray@ray-ubuntu:/media$ sudo mount /dev/sdb1 disk-2

ray@ray-ubuntu:/media$ cd disk-2

ray@ray-ubuntu:/media/disk-2$ ls

lost+found

这样就mount成功了。

1)开机自动

脚本文件为/etc/fstab,添加如下:

# mount the second hard disk

/dev/sdb1 /media/sdb1 ext3 defaults 0 0

六个参数分别是:

<file system> <mount point> <type> <options> <dump> <pass>

前三个参数的含义显而易见。

options: 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用"defaults"就可以满足需要。

其他常见的选项包括:

ro 以只读模式加载该文件系统

sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度

user 允许普通用户加载该文件系统

quota 强制在该文件系统上进行磁盘定额限制

noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统

dump: 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0

pass: 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0

附:一个很好的Ubuntu 命令技巧总结http://wiki.ubuntu.org.cn/UbuntuSkills#.E6.B7.BB.E5.8A.A0.E4.B8.80.E4.B8.AA.E6.9C.8D.E5.8A.A1