Parted 命令
知道Gparted
吧? 这个parted
就是它的无图形化界面.
我还是推荐大家用Gparted
, 因为操作很直观嘛. 当然, 学了parted
更好啦, 有些时候没有图形化界面, 就得需要命令行界面了.
还要记住一点, 每次操作的时候, 你必须清楚地明白你在做什么, 否则没有后悔药给你吃的.
你也知道数据恢复是多么的昂贵.
正餐开始(看看就好, 不必上手操作的):
选择要操作的分区
当你直接输入parted
的时候, 默认的操作对象是系统中第一个可用的分区.
下面的例子中, 它自动选择了/dev/sda
做为操作对象, 因为这是系统中第一个可用的分区.
# parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
To choose a different hard disk, use the select command as shown below.
(parted) select /dev/sdb
当他找不到所选择的分区时, 就会抛出一个错误:
Error: Error opening /dev/sdb: No medium found
Retry/Cancel? y
用print
显示所有可操作的磁盘
用这个命令可以显示出所有可操作的磁盘分区, 他还能够显示一些磁盘的属性, 比如模式, 大小, 蔟大小, 分区表信息等等.
(parted) print
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Number Start End Size Type Filesystem Flags
1 1049kB 106MB 105MB primary fat16 diag
2 106MB 15.8GB 15.7GB primary ntfs boot
3 15.8GB 266GB 251GB primary ntfs
4 266GB 500GB 234GB extended
5 266GB 269GB 2682MB logical ext4
7 269GB 270GB 524MB logical ext4
8 270GB 366GB 96.8GB logical lvm
6 366GB 370GB 3999MB logical linux-swap(v1)
9 370GB 500GB 130GB logical ext4
用mkpart
在硬盘中创建主分区
mkpart
命令可以创建主分区和逻辑分区, 他所需要的参数是 START
和END
.
也就是标记从哪儿分, 分到哪儿. 单位是MB
.
下面的例子分了一个15G的区:
(parted) mkpart primary 106 16179
你也可以用下面的例子来开启磁盘的boot
标志, 使之作为一个启动硬盘. Linux保留了1-4或者1-3作为主分区, 把其他的数字所谓扩展分区.
(parted) set 1 boot on
用mkpart
在硬盘中创建逻辑分区
在执行操作之前, 我们先看看磁盘的信息:
(parted) print
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Number Start End Size Type Filesystem Flags
1 1049kB 106MB 105MB primary fat16 diag
2 106MB 15.8GB 15.7GB primary ntfs boot
3 15.8GB 266GB 251GB primary ntfs
4 266GB 500GB 234GB extended
5 266GB 316GB 50.0GB logical ext4
6 316GB 324GB 7999MB logical linux-swap(v1)
7 324GB 344GB 20.0GB logical ext4
8 344GB 364GB 20.0GB logical ext2
用下面的命令来创建一个128G的逻辑分区:
(parted) mkpart logical 372737 500000
现在我们再来查看一下磁盘信息:
(parted) print
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Number Start End Size Type Filesystem Flags
1 1049kB 106MB 105MB primary fat16 diag
2 106MB 15.8GB 15.7GB primary ntfs boot
3 15.8GB 266GB 251GB primary ntfs
4 266GB 500GB 234GB extended
5 266GB 316GB 50.0GB logical ext4
6 316GB 324GB 7999MB logical linux-swap(v1)
7 324GB 344GB 20.0GB logical ext4
8 344GB 364GB 20.0GB logical ext2
9 373GB 500GB 127GB logical
用mkfs
创建文件系统
有了磁盘还不算完, 还要在里面创建文件系统, 当然, 这种操作也是极其危险的, 因为格式化之后的数据将会全部丢失. Parted
支持的文件系统有:ext2, mips, fat16, fat32, linux-swap 和 reiserfs(如果安装了libreiserfs的话).
下面的例子把第八块儿分区的格式从ext4
变为了ext2
:
(parted) print
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Number Start End Size Type Filesystem Flags
1 1049kB 106MB 105MB primary fat16 diag
2 106MB 15.8GB 15.7GB primary ntfs boot
3 15.8GB 266GB 251GB primary ntfs
4 266GB 500GB 234GB extended 5 266GB 316GB 50.0GB logical ext4
6 316GB 324GB 7999MB logical linux-swap(v1)
7 324GB 344GB 20.0GB logical ext4
8 344GB 364GB 20.0GB logical ext4
9 364GB 500GB 136GB logical ext4
然后开始格式化:
(parted) mkfs
Warning: The existing file system will be destroyed and
all data on the partition will be lost. Do you want to
continue?
Yes/No? y
Partition number? 8
File system type?
[ext2]? ext2
执行完成之后我们再来看一下:
(parted) print
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Number Start End Size Type Filesystem Flags
1 1049kB 106MB 105MB primary fat16 diag
2 106MB 15.8GB 15.7GB primary ntfs boot
3 15.8GB 266GB 251GB primary ntfs
4 266GB 500GB 234GB extended 5 266GB 316GB 50.0GB logical ext4
6 316GB 324GB 7999MB logical linux-swap(v1)
7 324GB 344GB 20.0GB logical ext4
8 344GB 364GB 20.0GB logical ext2
9 364GB 500GB 136GB logical ext4
(没错我就是复制上面的内容然后再把4改成2的.)
用mkpartfs
既划分磁盘又对分区进行格式化
其实就是把上面的两条命令组合了起来, 可以这么理解.
先是看一下原分区什么样:
(parted) print
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Number Start End Size Type Filesystem Flags
1 1049kB 106MB 105MB primary fat16 diag
2 106MB 15.8GB 15.7GB primary ntfs boot
3 15.8GB 266GB 251GB primary ntfs
4 266GB 500GB 234GB extended 5 266GB 316GB 50.0GB logical ext4
6 316GB 324GB 7999MB logical linux-swap(v1)
7 324GB 344GB 20.0GB logical ext4
8 344GB 364GB 20.0GB logical
然后我们新建一个分区并格式化:
(parted) mkpartfs logical fat32 372737 500000
然后再看看新的磁盘信息:
(parted) print
Model: ATA WDC WD5000BPVT-7 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Number Start End Size Type Filesystem Flags
1 1049kB 106MB 105MB primary fat16 diag
2 106MB 15.8GB 15.7GB primary ntfs boot
3 15.8GB 266GB 251GB primary ntfs
4 266GB 500GB 234GB extended 5 266GB 316GB 50.0GB logical ext4
6 316GB 324GB 7999MB logical linux-swap(v1)
7 324GB 344GB 20.0GB logical ext4
8 344GB 364GB 20.0GB logical 9 373GB 500GB 127GB logical fat32 lba
(parted)
用resize
来改变分区大小
(parted) resize 9
Start? [373GB]? 373GB
End? [500GB]? 450GB
很简单的, 选中要操作的对象, 然后选择开始, 在选择结束, 就OK了.(其实用Gparted
更简单, 直接拖动就好了...)
然后下面还是一堆磁盘信息, 节省篇幅, 我就不贴了.
用cp
来复制分区
这个命令有点厉害, 类似于dd
, 他可以把整个分区都复制到别处(别的分区). 需要注意的是, 保存被复制的分区的大小一定要足够, 还有, 这是一个覆盖操作.
(作者又打印了一遍磁盘信息, 我在此略过)
建议把要操作的两块磁盘都先卸载, 以免有其他的程序对他们进行读写.
# mount /dev/sda8 /mnt
# cd /mnt
# ls -l
total 52
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root
0 2011-09-26 22:52 part8
20 2011-09-26 22:52 test.txt
# umount /mnt
# mount /dev/sda10 /mnt
# cd /mnt
# ls -l
total 48
-rw-r--r-- 1 root root 0 2011-09-26 22:52 part10
用cp
命令把8复制到10:
(parted) cp 8 10
growing file system... 95% (time left 00:38)
下面是复制完成之后的结果:
# mount /dev/sda10 /mnt
# cd /mnt
# ls -l
total 52
-rw-r--r-- 1 root root 0 2011-09-26 22:52 part8
-rw-r--r-- 1 root root 20 2011-09-26 22:52 test.txt
另外需要注意的是, 如果目标磁盘和被复制的磁盘的文件系统不一致, 这个复制操作将会重建目标磁盘的文件系统使其和被复制的磁盘分区一样.(也就是说, 复制操作使得两个分区一模(mu)一样.)
用rm
命令移除某个分区
(parted) rm
Partition number? 9
(parted)
也很简单...
这样一删的话, 里面的东西就全没了 :)