返回介绍

Hack-66 Parted 命令

发布于 2025-03-08 17:38:58 字数 7515 浏览 0 评论 0 收藏 0

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 命令可以创建主分区和逻辑分区,他所需要的参数是 STARTEND . 也就是标记从哪儿分,分到哪儿. 单位是 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)

也很简单...

这样一删的话,里面的东西就全没了 :)

本书简介:

  • Linux 进阶技巧
  • 巧妙的命令组合
  • Bash 某些技巧
  • 一共一百零一个(包括充数的)
  • 最后有个奖励章(额外技巧)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文