精华内容
参与话题
问答
  • DiskGenius4.5.0免费版

    2014-04-04 16:12:02
    DiskGenius V4.5.0 1、Windows版,检测坏道时,可指定超时时间。另外如果中途磁盘掉线就中止检测并显示提示。 2、优化对坏道硬盘的读写,提高数据恢复时的扫描速度。 3、为免费版增加分区表格式转换功能,可在GUID与...
  • iostat等命令看到的是系统级的统计,比如下例中我们看到/dev/sdb很忙,如果要追查是哪个进程导致的I/O繁忙,应该怎么办? 1 2 3 4 5 6 ... Device: rrqm/s wrqm/s r/s...

    iostat等命令看到的是系统级的统计,比如下例中我们看到/dev/sdb很忙,如果要追查是哪个进程导致的I/O繁忙,应该怎么办?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    # iostat -xd

    ...

    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util

    sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

    sdb               0.00     0.00 6781.67    0.00  3390.83     0.00     1.00     0.85    0.13    0.13    0.00   0.13  85.03

    dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

    dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

    dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

    ...

    进程的内核数据结构中包含了I/O数量的统计:

    1

    2

    3

    4

    5

    struct task_struct {

    ...

             struct task_io_accounting ioac;

    ...

    };

    可以直接在 /proc/<pid>/io 中看到:

    1

    2

    3

    4

    5

    6

    7

    8

    # cat /proc/3088/io

    rchar: 125119 //在read(),pread(),readv(),sendfile等系统调用中读取的字节数

    wchar: 632    //在write(),pwrite(),writev(),sendfile等系统调用中写入的字节数

    syscr: 111    //调用read(),pread(),readv(),sendfile等系统调用的次数

    syscw: 79     //调用write(),pwrite(),writev(),sendfile等系统调用的次数

    read_bytes: 425984 //进程读取的物理I/O字节数,包括mmap pagein,在submit_bio()中统计的

    write_bytes: 0     //进程写出的物理I/O字节数,包括mmap pageout,在submit_bio()中统计的

    cancelled_write_bytes: 0 //如果进程截短了cache中的文件,事实上就减少了原本要发生的写I/O

    我们关心的是实际发生的物理I/O,从上面的注释可知,应该关注 read_bytes 和 write_bytes。请注意这都是历史累计值,从进程开始执行之初就一直累加。如果要观察动态变化情况,可以使用 pidstat 命令,它就是利用了/proc/<pid>/io 中的原始数据计算单位时间内的增量:

    1

    2

    3

    4

    5

    6

    7

    8

    # pidstat -d 2 2

    Linux 3.10.0-229.14.1.el7.x86_64 (bj71s060)     11/16/2016      _x86_64_       (2 CPU)

     

    12:30:15 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command

    12:30:17 PM     0     14772   3362.25      0.00      0.00  dd

     

    12:30:17 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command

    12:30:19 PM     0     14772   3371.25      0.00      0.00  dd

    另外还有一个常用的命令 iotop 也可以观察进程的动态I/O:

    1

    2

    3

    4

    5

    6

    Actual DISK READ:       3.31 M/s | Actual DISK WRITE:       0.00 B/s

      TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND          

    14772 be/4 root        3.31 M/s    0.00 B/s  0.00 % 61.99 % dd if=/de~lag=direct

        1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd -~rialize 24

        2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]

    ...

    pidstat 和 iotop 也有不足之处,它们无法具体到某个硬盘设备,如果系统中有很多硬盘设备,都在忙,而我们只想看某一个特定的硬盘的I/O来自哪些进程,这两个命令就帮不上忙了。怎么办呢?可以用上万能工具SystemTap。比如:我们希望找出访问/dev/sdb的进程,可以用下列脚本,它的原理是对submit_bio下探针:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    #! /usr/bin/env stap

     

    global device_of_interest

     

    probe begin {

      device_of_interest = $1

      printf ("device of interest: 0x%x\n", device_of_interest)

    }

     

    probe kernel.function("submit_bio")

    {

      dev = $bio->bi_bdev->bd_dev

      if (dev == device_of_interest)

        printf ("[%s](%d) dev:0x%x rw:%d size:%d\n",

                execname(), pid(), dev, $rw, $bio->bi_size)

    }

    这个脚本需要在命令行参数中指定需要监控的硬盘设备号,得到这个设备号的方法如下:

    1

    2

    3

    4

    5

    6

    # ll /dev/sdb

    brw-rw----. 1 root disk 8, 16 Oct 24 15:52 /dev/sdb

     

    Major number(12-bit):  8 i.e. 0x8

    Minor number(20-bit): 16 i.e. 0x00010

    合在一起得到设备号: 0x800010

    执行脚本,我们看到:

    1

    2

    3

    4

    5

    6

    7

    8

    # ./dev_task_io.stp 0x800010

    device of interest: 0x800010

    [dd](31202) dev:0x800010 rw:0 size:512

    [dd](31202) dev:0x800010 rw:0 size:512

    [dd](31202) dev:0x800010 rw:0 size:512

    [dd](31202) dev:0x800010 rw:0 size:512

    [dd](31202) dev:0x800010 rw:0 size:512

    ...

    结果很令人满意,我们看到是进程号为31202的dd命令在对/dev/sdb进行读操作。

    展开全文
  • disk 变成missing 后的解决

    千次阅读 2015-12-17 20:14:57
    reducevg rootvg 后没有把dump 迁移后, disk 变成missing 的解决
    

    reducevg 后disk 变成missing 以后的解决

    lsvg -p rootvg

    下面出现hdisk0 是missing 的状态

    reduevg rootvg hdisk0 报错

    lspv -l hdisk0

    发现有 hd70 这个 dump lv 在disk0 上:

    其实应该在一开始就执行:migratelv -l hd70 hdisk0 hdisk1
    如果有pagespace没做镜像:migratepv -l paging00 hdisk0 hdisk1;

    下面开始把 primary dump 开始变成: /dev/sysdumpnull

    sysdumpdev -P -p /dev/sysdumpnull

    下面就可以reducevg rootvg hdisk0

    如果还是报错:
    可以试试下面:

    reducevg -d rootvg hdisk0

    ----

    下面开始加盘:
    cfgmgr

    extendvg rootvg hdisk0

    smit mirrorvg
    或者:syncvg -c 2 rootvg

    bosboot -ad /dev/hdisk0

    bootlist -m normal hdisk0 hdisk1 cd0
    bootlist -o -m normal

    ----

    下面开始重建dump
    mklv -t sysdump -y hd70 rootvg hdisk0

    修改主要的dump file
    sysdumpdev -Pp /dev/hd70


    展开全文
  • http://blog.chinaunix.net/uid-30282771-id-5113192.html  块设备剖析之块设备注册 - add_disk()函数解析 2015-07-07 23:08:45 分类: LINUX ... add_disk()是块设备注册的内核接

    http://blog.chinaunix.net/uid-30282771-id-5113192.html



    分类: LINUX

    本文所有内容基于内核版本Linux-v3.2.40。

        add_disk()是块设备注册的内核接口,是块设备驱动的最后一步,也是最关键的一步,下面就分析一下该函数实现的具体细节。

        当申请完一个gendisk并进行初始化之后,就可以借助add_diak将之注册到通用块层。表面上看,add_diak似乎是一个平淡无奇的函数,其实不然,它涉及到了后备存储器、kobj_map、分区、请求队列等一大堆东西,但在这里我们主要关心块设备的注册过程,所以会省略掉一些内容,有兴趣的读者可以去阅读源码,源码位置在block/genhd.c。
        下面先把add_disk分段贴出,并加以我自己的理解,如有不准确或不恰当的地方,欢迎批评指正。
        

    点击(此处)折叠或打开

    1. void add_disk(struct gendisk *disk)
    2. {
    3.     struct backing_dev_info *bdi;
    4.     dev_t devt;
    5.     int retval;

    6.     /* 申请设备号 */
    7.     retval = blk_alloc_devt(&disk->part0, &devt);
    8.     if (retval) {
    9.         WARN_ON(1);
    10.         return;
    11.     }
    12.     disk_to_dev(disk)->devt = devt/* 记录gendisk的设备号 */

    13.     /* ->major and ->first_minor aren't supposed to be
    14.      * dereferenced from here on, but set them just in case.
    15.      */
    16.     disk->major = MAJOR(devt);
    17.     disk->first_minor = MINOR(devt);

    18.     disk_alloc_events(disk);

    19.     /* Register BDI before referencing it from bdev */
    20.     bdi = &disk->queue->backing_dev_info;
    21.     bdi_register_dev(bdi, disk_devt(disk));

    22.     /* 将gendisk添加到kobj_map中 */
    23.     blk_register_region(disk_devt(disk), disk->minors, NULL,
    24.              exact_match, exact_lock, disk);
    25.     register_disk(disk); /* 注册gendisk到通用块层 */
    26.     blk_register_queue(disk); /* 注册请求队列到通用块层 */

    27.     /*
    28.      * Take an extra ref on queue which will be put on disk_release()
    29.      * so that it sticks around as long as @disk is there.
    30.      */
    31.     WARN_ON_ONCE(blk_get_queue(disk->queue));

    32.     retval = sysfs_create_link(&disk_to_dev(disk)->kobj, &bdi->dev->kobj,
    33.                  "bdi");
    34.     WARN_ON(retval);

    35.     disk_add_events(disk);
    36. }
        Line7~13这段代码很简单,主要是获得gendisk的设备号并记录到gendisk内嵌的decive中。这里唯一需要说明的一点是块设备的次设备号与分区号并不是相等的,有的设备其起始次设备号可能就是一个比较大的值,如:
        disk  202, 64  /dev/sda
        disk  202, 65  /dev/sda1
        disk  202, 66  /dev/sda2
        因此次设备号的计算一般为:disk->first_minor + part->partno

        Line27~29接下来将申请的gendisk管理起来。如何管理呢?内核采用了与字符设备相似的方法,使用了一个全局的struct kobj_map结构体bdev_map,它其实是一个struct probe指针数组,用主设备号作为数组的索引,如下所示:
        

    点击(此处)折叠或打开

    1. struct kobj_map {
    2.     struct probe *probes[255];
    3.     struct mutex *lock;
    4. };

    5. struct probe {
    6.     struct probe *next; /* 下一个probe */
    7.     dev_t dev; /* 起始设备号 */

    8.     /* 设备号的范围,如起始设备号是12,range是10,
    9.      * 那么该结构体关联设备号为[12, 22)的所有设备
    10.      */
    11.     unsigned long range; 
    12.     struct module *owner;
    13.     kobj_probe_t *get; /* 用于获取该设备内嵌的kobj */
    14.     int (*lock)(dev_t, void *);
    15.     void *data; /* 一般指向设备的实际结构体 */
    16. };
        从上面可以看到,该指针数组最多可容纳255个指针,那对于主设备号大于255的设备应该放到哪里呢?细心的读者应该会发现,在probe结构体中有一个next指针,该指针就是为了链接索引值相同的不同probe,因此数组struct probe *probes[255]索引值的计算应该为:major % 256。
        对于一个块设备,它唯一的对应于一个struct probe结构体,该结构体包含了它所有必需的信息,如以上代码所示。所以,我们只需要知道设备的设备号就可以从bdev_map中还原回真正的设备结构体(probe结构体中的data),这也真是函数kobj_lookup完成的功能。

        Line30register_disk(disk)注册gendisk到通用块层,如果深究这将是一个相对复杂的函数
        

    点击(此处)折叠或打开

    1. void register_disk(struct gendisk *disk)
    2. {
    3.     struct device *ddev = disk_to_dev(disk);
    4.     struct block_device *bdev;
    5.     struct disk_part_iter piter;
    6.     struct hd_struct *part;
    7.     int err;

    8.     /* No minors to use for partitions */
    9.     if (!disk_part_scan_enabled(disk)) { 
    10.         goto exit/* 该设备不支持分区或强制不扫描分区 */
    11.     }

    12.     /* No such device (e.g., media were just removed) */
    13.     if (!get_capacity(disk))
    14.         goto exit;

    15.     bdev = bdget_disk(disk, 0);
    16.     if (!bdev)
    17.         goto exit;

    18.     bdev->bd_invalidated = 1;
    19.     err = blkdev_get(bdev, FMODE_READ, NULL);
    20.     if (err < 0)
    21.         goto exit;
    22.     blkdev_put(bdev, FMODE_READ);

    23. exit:
    24.     /* announce disk after possible partitions are created */
    25.     dev_set_uevent_suppress(ddev, 0);
    26.     kobject_uevent(&ddev->kobj, KOBJ_ADD);

    27.     /* announce possible partitions */
    28.     disk_part_iter_init(&piter, disk, 0);
    29.     while ((part = disk_part_iter_next(&piter)))
    30.         kobject_uevent(&part_to_dev(part)->kobj, KOBJ_ADD);
    31.     disk_part_iter_exit(&piter);
    32. }
        它主要由两个关键函数实现:
        1. bdget_disk():为gendisk分配block_device结构体,作为gendisk在bdevfs中的抽象。该函数最终借助bdget()实现,具体的实现细节可参考我的另一篇博文-bdget()函数详解 。
        2. blkdev_get():以只读方式打开该设备,进行分区扫描,并设置block_device与gendisk、hd_struct之间的关联,以及gendisk的block_device与hd_struct的block_device之间的关联。关于该函数的详细分析,感兴趣的读者可自行分析

        我们再回到add_disk()函数:
        Line31通过blk_register_queue()将该gendisk的请求队列request_queue注册到通用块层。请求队列主要在数据的读写时用到,涉及到request合并、电梯算法等一系列的内容,这里不详细讨论,如果感兴趣可参考这位仁兄的博客 - blk_register_queue()函数学习。这里只说明一点:request_queue里面包含了许多与底层设备相关的内容,比如扇区大小,该queue可容纳的最大扇区数等等,可通过blk_queue_logical_block_size()设置扇区的大小,比如blk_queue_logical_block_size(gendisk->queue, 4096),设置gendisk使用4k大小的扇区,该设置对新型设备(如flash等)往往是必须的,因为它们可操作的最小单元就是4k。

        这样整个函数的主要部分就分析完了。当该函数执行完成后,你期望的设备就会乖乖的出现在/dev目录下,比如/dev/sdb, /dev/ramdisk,而不需要像注册字符设备那样再搞一个class
        
         断断续续分几次才把这篇文章写完,难免会有不足之处,如果发现欢迎批评指正。
         本文乃原创文章,请勿随意转载,如需转载请详细标明转载出处。

    展开全文
  • diskid.exe下载

    2015-06-05 11:30:48
    diskid hookdiskid下载 hookdiskid.exe diskid.exe下载 winhex diskid 下载 hookdiskid.exe 下载 修改虚拟机ide hookdiskid
  • 系统优化工具disk++

    2019-03-18 19:31:20
    常用系统优化工具disk++,非常有效果,优化后明显速度提升。
  • DiskPart命令详解

    万次阅读 2016-03-31 15:59:11
    Diskpart命令是Windows环境下的一个命令,利用diskpart可实现对硬盘的分区管理,包括创建分区、删除分区、合并(扩展)分区,完全可取代分区魔术师等第三方工具软件,它还有分区魔术师无法实现的功能,如设置动态...
    Diskpart命令是Windows环境下的一个命令,利用diskpart可实现对硬盘的分区管理,包括创建分区、删除分区、合并(扩展)分区,完全可取代分区魔术师等第三方工具软件,它还有分区魔术师无法实现的功能,如设置动态磁盘、镜像卷等,而且设置分区后不用重启电脑也能生效。 
    下面讲解下利用Diskpart命令分区方法: 1.开始——运行,输入CMD,启动命令窗口。 

    2.键入“Diskpart”→回车→进入“Diskpart”的命令环境,其提示符为“DISKPART>”。

    3.在此提示下键入相应命令就可以进行分区操作,具体用到的命令有: Clean List Select Create Format Exit 

    4.以下是命令顺序及操作解释: 

    List Disk:显示本机的所有磁盘,以便正确操作目标磁盘 

    Select Disk 1:选择0号磁盘 

    Clean :清除0号磁盘上的所有分区 

    Create :Partition Primary Size=512000 创建主分区,容量为:512000MB Active:激活主分区 
    Format Quick:快速格式化当前分区 Create Partition Extended:创建扩展分区 
    Create Partition Logical Size=512000:创建逻辑分区一,容量为:512000MB Format Quick:快速格式化当前分区 
    Create Partition Logical Size=512000:创建逻辑分区二,容量为:512000MB Format Quick :快速格式化当前分区 
    Create Partition Logical :创建逻辑分区三,大小为剩余的容量 Format Quick :快速格式化当前分区 
    Exit :退出Diskpart命令环境 Exit :退出命令窗口 
    这里要注意的是Diskpart分区时,一定要选对目标磁盘,当前被选中的磁盘/分区前面会有*号标志,可以用List Disk/Partition来进行查看。另外在分区前也可以用Resan重新扫描一下机器的磁盘,以便正确选择目标磁盘。 

    这些命令的使用方法可以在Diskpart命令提示符下键入Help或者通过网络查询,如果不清楚可以查看。



    http://www.cnblogs.com/samcn/archive/2011/01/10/1931637.html

    写入脚本是,详细介绍

         DiskPart.exe 是一种文本模式命令解释程序,它使您能够通过使用脚本或从命令提示符直接输入来管理对象(磁盘、分区或卷)。在磁盘、分区或卷上使用 DiskPart.exe 命令之前,必须首先列出然后选中要给予其焦点的对象。当某个对象具有焦点时,键入的任何 DiskPart.exe 命令都会作用到该对象。

    利用 list disklist volume 和 list partition 命令,可以列出可用对象并确定对象编号或驱动器号。list disk 和 list volume 命令显示计算机上的所有磁盘和卷。而 list partition 命令只显示具有焦点的磁盘上的分区。使用 list 命令时,具有焦点的对象旁边出现一个星号 (*)。可以按编号或按驱动器号选择对象,例如,磁盘 0、分区 1、卷 3 或卷 C。

    选择对象时,焦点一直保留在那个对象上,直到选中不同的对象。例如,如果在磁盘 0 上设置了焦点,并且选择磁盘 2 上的卷 8,焦点就从磁盘 0 转移到磁盘 2 上的卷 8。有些命令会自动更改焦点。例如,如果创建了新分区,焦点就自动转移到新分区上。

    只能在选定磁盘上的分区上设置焦点。某个分区具有焦点时,相关的卷(如果有的话)也具有焦点。某个卷具有焦点时,如果该卷映射到某个特定分区,则相关的磁盘和分区也具有了焦点。如果不是这样,则说明磁盘和卷上的焦点丢失。

    DiskPart 命令

    若要查看该命令语法,请单击以下命令:

    active

    在基本盘上,将具有焦点的分区标为 active。这样就通知基本输入/输出系统 (BIOS) 或可扩展固件接口 (EFI),该分区或卷是有效的系统分区或系统卷。

    只有分区才可以标为 active。

    要点

    • DiskPart 只验证分区有足够空间来包含操作系统的启动文件。DiskPart 不检查分区的内容。如果误将某个分区标为 “active”,并且该分区不包含操作系统的启动文件,则您的计算机可能无法启动。

    语法

    active

    add disk

    将具有焦点的简单卷镜像到指定磁盘。

    语法

    add disk=n [noerr]

    参数

    n
    指定要包含此镜像的磁盘。只可以镜像简单卷。指定磁盘必须至少有与要镜像的简单卷同样大小的未分配空间。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    assign

    给具有焦点的卷分配一个驱动器号或装载点。如果不指定驱动器号或装载点,则分配下一个可用驱动器号。如果驱动器号或装载点已经在用,则会产生一个错误。

    使用 assign 命令,可以更改与某个可移动驱动器关联的驱动器号。

    不可以向系统卷、启动卷或包含页面文件的卷分配驱动器号。此外,还不可以向原始设备制造商 (OEM) 分区或任何非基本 MSDATA 分区的 GUID 分区表 (GPT) 分区分配驱动器号。

    语法

    assign [{letter=d|mount=Path}] [noerr]

    参数

    letter=d
    要分配到该卷的驱动器号。
    mount=Path
    要分配到该卷的装载点。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    break disk

    仅适用于动态盘。将具有焦点的镜像卷分为两个简单卷。一个简单卷保留驱动器号和镜像卷的所有装载点,而另一个简单卷则接收焦点,这样就可以向其分配一个驱动器号。

    默认情况下,保留镜像卷的两个部分上的内容。每个部分成为一个简单卷。利用 nokeep 参数,只能将镜像的一半保留为简单卷,而将另一半被删除并转换为可用空间。两卷都不接收焦点。

    语法

    break disk=n [nokeep] [noerr]

    参数

    n
    指定包含镜像卷的磁盘。
    nokeep
    指定只保留其中一个镜像卷,而删除另一个简单卷并将其转换为可用空间。无论是保留的卷还是可用空间都不接收焦点。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    clean

    从具有焦点的磁盘删除任何分区或卷格式。在主启动记录 (MBR) 磁盘上,只覆盖 MBR 分区信息和隐藏扇区信息。在 GUID 分区表 (GPT) 磁盘上,覆盖 GPT 分区信息,其中包括 保护性 MBR。不存在隐藏扇区信息。

    语法

    set all

    参数

    all
    指定磁盘上所有扇区的信息为零,这样就完全删除磁盘上的所有数据。

    convert basic

    将空白动态盘转换为基本盘。

    语法

    convert basic [noerr]

    参数

    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    convert dynamic

    将基本盘转换为动态盘。

    语法

    convert dynamic [noerr]

    参数

    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    convert gpt

    在基于 Itanium 的计算机上,将具有主启动记录 (MBR) 分区样式的空白基本盘转换为具有 GUID分区表 (GPT) 分区样式的基本盘。

    要点

    • 磁盘必须为空盘,以便将其转换为 GPT 磁盘。在转化磁盘之前备份您的数据并删掉所有分区或卷。

    语法

    convert gpt [noerr]

    参数

    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    convert mbr

    在基于 Itanium 的计算机上,将具有 GUID 分区表 (GPT) 分区样式的空白基本盘转换为具有主启动记录 (MBR) 分区样式的基本盘。

    要点

    • 磁盘必须为空盘,以便将其转换为 MBR 磁盘。在转化磁盘之前备份您的数据并删掉所有分区或卷。

    语法

    convert mbr [noerr]

    参数

    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    create partition efi

    在基于 Itanium 的计算机上,在 GUID 分区表 (GPT) 磁盘上创建可扩展固件接口 (EFI) 系统分区。创建分区之后,焦点就转移到新建分区上。

    语法

    create partition efi [size=n] [offset=n] [noerr]

    参数

    size=n
    分区的大小 (MB)。如果不给出分区大小,那么分区将会持续到当前区域中没有闲置空间为止。
    offset=n
    创建分区的字节偏移量。如果没有给出偏移量,那么该分区就被置于空间足够大而能容纳该分区的第一个磁盘范围内。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    create partition extended

    在当前驱动器上创建扩展分区。创建分区之后,焦点就自动转移到新建分区上。每个磁盘上只能创建一个扩展分区。如果试图在另一个扩展分区内创建扩展分区,此命令会失败。必须在创建逻辑驱动器之前创建扩展分区。

    语法

    create partition extended [size=n] [offset=n] [noerr]

    参数

    size=n
    扩展分区的大小 (MB)。如果不给出分区大小,那么分区将会持续到区域中没有可用空间为止。扩展分区大小是按柱面对齐的。它会自动舍入到最近的柱面边界。例如,如果您指定一个大小为 500 MB 的分区,分区将会自动舍入为504 MB。
    offset=n
    仅应用于 主启动记录(MBR)磁盘。创建扩展分区的字节偏移量。如果没有给出偏移量,分区将会在磁盘第一个空闲位置开始。偏移量是按柱面对齐的。偏移量会自动舍入到最近的柱面边界。例如,如果定义偏移量为 27 MB, 柱面为 8 MB,偏移量被舍入为 24 MB。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    create partition logical

    在扩展分区中创建逻辑驱动器。创建分区之后,焦点自动转移到新建逻辑驱动器上。

    语法

    create partition logical [size=n] [offset=n] [noerr]

    参数

    size=n
    逻辑驱动器的大小 (MB)。如果不给出分区大小,那么分区将会持续到当前区域中没有闲置空间为止。
    offset=n
    仅应用于 主启动记录(MBR)磁盘。创建逻辑驱动器的字节偏移量。偏移量是按柱面对齐的(也就是说,偏移量会自动舍入,以完全填充正在使用的柱面大小)。如果没有给出偏移量,那么该分区就被置于空间足够大而能容纳该分区的第一扩展磁盘中。分区长度至少要和由 size= n 指定的字节数一样。如果要指定逻辑驱动器的大小,它必须小于扩展分区。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    create partition msr

    在基于 Itanium 的计算机上,在GUID 分区表 (GPT) 磁盘上创建 Microsoft 保留 (MSR) 分区。

    小心

    • 要小心使用 create partition msr 命令。因为 GPT 磁盘要求特定分区布局,创建 Microsoft 保留分区会导致磁盘不可读取。在用来启动 Windows XP 64-Bit Edition 的 GPT 磁盘上,EFI 系统分区是磁盘上的第一个分区,其后是 Microsoft 保留分区。只用于存储数据的 GPT 磁盘不包含 EFI 系统分区,因此 Microsoft 保留分区是第一个分区。

      Windows XP 64-Bit Edition 不装载 Microsoft 保留分区。不能在它们上面存储数据,也不能删除它们。

     

    create volume simple

    创建简单卷。创建新卷后,焦点自动转移到新卷上。

    语法

    create volume simple [size=n] [disk=n] [noerr]

    参数

    size=n
    卷大小 (MB)。如果未指定卷大小,新建卷就占用磁盘上剩余的闲置空间。
    disk=n
    用来创建卷的动态盘。如果未指定磁盘,则使用当前磁盘。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    create volume stripe

    在指定磁盘上创建条纹卷。创建新卷后,焦点自动转移到新卷上。

    语法

    create volume stripe [size=n] [disk=n[,[n,匽] [noerr]

    参数

    size=n
    磁盘空间大小以兆字节(MB)为单位,卷将占用每一个磁盘如果未指定大小,则新建卷将占用最小的磁盘上的剩余闲置空间,以及在其后每个磁盘上占用同样大小的磁盘空间。
    disk=n
    用来创建卷的动态盘。size= n 的磁盘空间将分配给每一个磁盘。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    delete disk

    从磁盘列表删除遗失的动态盘。

    语法

    delete disk [noerr] [override]

    参数

    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
    override
    使 DiskPart 能够删除磁盘上所有简单卷。如果磁盘上包含半个镜像卷,则删除磁盘上的这半个镜像。如果磁盘是 RAID-5 卷的成员,则 delete disk override 命令会失败。

    delete partition

    在每个基本盘上,删除带有焦点的分区。不能删除系统分区、启动分区或任何包含活动页面文件或故障转储(内存转储)的分区。

    小心

    • 删除一个动态盘上的分区会删除磁盘上的所有脱机动态卷,因而会破坏任何数据并会将磁盘转换为基本盘。要删除动态卷,请总是使用 delete volume 命令。

    可以从动态盘删除分区,但不可以创建分区。例如,可以删除动态 GPT 磁盘上的未识别的 GUID 分区表 (GPT) 分区。删除这样的分区不会导致由此产生的闲置空间变为可用。此命令专门用来在无法使用 clean 命令时的紧急情况下回收遭到破坏的脱机动态盘空间。

    语法

    delete partition [noerr] [override]

    参数

    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。
    override
    使 DiskPart 能够删除任何分区,而不管其类型是什么。通常情况下,DiskPart 只允许您删除已知数据分区。

    delete volume

    删除所选卷。不能删除系统卷、启动卷或任何包含活动页面文件或故障转储(内存转储)的卷。

    语法

    delete volume [noerr]

    参数

    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    detail disk

    显示所选磁盘及其上面的卷的属性。

    语法

    detail disk

    detail volume

    显示存放当前卷的磁盘。

    语法

    detail volume

    exit

    退出 DiskPart 命令解释程序。

    语法

    exit

    extend

    将带有焦点的卷扩展为最邻近的未分配空间。对于基本卷,未分配的空间必须在同一磁盘上,并且必须接着(扇区偏移量大于)带有焦点的分区。动态简单卷或跨区卷可以在任何动态盘上扩展为空的空间。使用此命令,可以将现有卷扩展为新建空间。

    如果分区以前通过 NTFS 文件系统格式化,该文件系统就自动扩展为占用更大分区。不会丢失任何数据。如果分区以前通过非 NTFS 的文件系统格式进行格式化,此命令就会失败,并不对分区作任何更改。

    不能扩展当前系统或启动分区。

    语法

    extend [size=n] [disk=n] [noerr]

    参数

    size=n
    添加到当前分区的空间大小 (MB)。如果不指定大小,磁盘就扩展为占用所有最邻近的未分配空间。
    disk=n
    用来扩展卷的动态盘。size= n 的磁盘空间将在磁盘上进行分配。如果未指定磁盘,则在当前磁盘上扩展卷。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    help

    显示可用命令的列表。

    语法

    help

    import

    将外部磁盘组导入本地计算机的磁盘组。import 命令导入与带有焦点的磁盘同为一组的每个磁盘。

    语法

    import [noerr]

    参数

    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    list disk

    显示磁盘列表以及有关磁盘信息的列表,例如大小、可用空间、磁盘是基本盘还是动态盘以及该磁盘是使用主启动记录 (MBR) 还是 GUID 分区表 (GPT) 分区样式。标有星号 (*) 的磁盘具有焦点。

    语法

    list disk

    list partition

    显示当前分区的分区表中列出的分区。在动态盘上,这些分区可能不与磁盘上的动态卷相对应。之所以会有这种偏差,是因为动态盘包含磁盘上当前存在的系统卷或启动卷的分区表中的项目以及包含一个占用其余磁盘空间以供动态卷使用的分区。

    语法

    list partition

    list volume

    显示所有磁盘上的基本卷和动态卷列表。

    语法

    list volume

    online

    使脱机磁盘或带有焦点的卷处于联机状态。

    语法

    online [noerr]

    参数

    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    rem

    提供一种向脚本添加注释的方法。

    语法

    rem

    范例

    rem These commands set up 3 drives.

    create partition primary size=2048

    assign d:

    create partition extend

    create partition logical size=2048

    assign e:

    create partition logical

    assign f:

    remove

    从带有焦点的卷删除驱动器号或装载点。如果使用了 all 参数,就会删除所有当前驱动器号和装载点。如果未指定驱动器号或装载点,则 DiskPart 将删除它遇到的第一个驱动器号或装载点。

    remove 命令可用来更改与可移动驱动器关联的驱动器号。不能删除系统卷、启动卷或页面卷上的驱动器号。另外,不能删除如下分区的驱动器号:OEM 分区、任何具有未识别的 GUID 的 GPT 分区或任何特殊的、非数据的 GPT 分区(例如,EFI 系统分区)。

    语法

    remove [{letter=d|mount=Path [all]}] [noerr]

    参数

    letter=d
    要删除的驱动器号。
    mount=Path
    要删除的装载点路径。
    all
    删除所有当前驱动器号和装载点。
    noerr
    仅用于脚本。当发生错误时,指定 DiskPart 继续处理命令,就象错误没有发生一样。没有 noerr 参数,错误将导致 DiskPart 以错误代码退出。

    rescan

    查找已添加到计算机的新磁盘。

    语法

    rescan

    retain

    准备现有动态简单卷,以便用作启动卷或系统卷。

    在基于 x86 的计算机上,在带有焦点的动态简单卷上的主启动记录 (MBR) 中创建分区项。要创建 MBR 分区,动态简单卷必须从按柱面对齐的偏移量开始,并且其大小是柱面的整数。

    在基于 Itanium 的计算机上,在带有焦点的动态简单卷上的 GUID 分区表 (GPT) 中创建分区项。

    注意

    • retain 命令只在“无人参与安装”期间使用或者由原始设备制造商 (OEM) 使用。

    语法

    retain

    select disk

    选择指定磁盘,并将焦点转移到此磁盘。

    语法

    select disk=[n]

    参数

    n
    要接收焦点的磁盘的磁盘编号。如果未指定磁盘编号,select 命令就列出当前具有焦点的磁盘。使用 list disk 命令,您可以查看计算机上所有磁盘的编号。

    select partition

    选择指定分区并给予其焦点。如果未指定分区,select 命令就会列出具有焦点的当前分区。使用 list partition 命令,您可以查看当前磁盘上所有分区的编号。

    语法

    select partition=[{n|d}]

    参数

    n
    要接收焦点的分区的编号。
    d
    要接收焦点的分区的驱动器号或装载点路径。

    select volume

    选择指定卷并将焦点转移到该卷。如果未指定卷,select 命令就会列出具有焦点的当前卷。您可以按编号、驱动器号或装载点路径指定卷。在基本盘上,选择卷同时会给予相应分区焦点。使用 list volume 命令,您可以查看计算机上所有卷的编号。

    语法

    select volume=[{n|d}]

    参数

    n
    要接收焦点的卷的编号。
    d
    要接收焦点的卷的驱动器号或装载点路径。

    DiskPart 脚本

    利用 DiskPart,您可以创建自动执行与磁盘相关的任务(例如,创建卷或将磁盘转换为动态盘)的脚本。如果是使用“无人参与安装”或 Sysprep (它们不支持创建非启动卷的卷)部署 Windows,则创建这些任务的脚本非常有用。

    要启动 DiskPart 脚本,请在命令提示符下键入:

    DiskPart /S scriptname.txt

    其中,scriptname.txt 是包含脚本的文本文件的名称。

    要重新定向 DiskPart 对某个文件的脚本输出,请键入:

    DiskPart /S scriptname.txt > logfile.txt

    其中,logfile.txt 是 DiskPart 写入其输出的文本文件的名称。

    当 DiskPart 启动时,DiskPart 版本和计算机名称显示在命令提示符下。默认情况下,如果 DiskPart 在尝试执行脚本任务时发生错误,DiskPart 就会停止处理脚本并显示一个错误代码(除非指定了 noerr 参数)。但是,DiskPart 在遇到语法错误时总是返回错误,而不管是否使用了 noerr 参数。noerr 参数使您能够执行许多有用的任务,例如,使用单个脚本删除所有磁盘上所有分区,而不管磁盘数量的多少。

    下表列出 DiskPart 错误代码:

    错误 说明
    0 没有出现错误。运行整个脚本,没有失败。
    1 发生致命的异常事件。可能出现严重问题。
    2 为 DiskPart 命令指定的参数不正确。
    3 DiskPart 无法打开指定的脚本或输出文件。
    4 DiskPart 使用的其中一项任务返回失败。
    5 出现命令语法错误。脚本失败,这是因为对象选择不正确,或与此命令一起使用时无效。

    Desire has no rest.

    展开全文
  • DiskGenius2012专业版(已破解)

    千次下载 热门讨论 2012-06-11 21:03:46
    diskgenius专业版破解中文版2012.3.8.0(磁盘分区及数据恢复软件) 软件语言: 简体中文 软件大小: 3.60MB KB 运行环境: 2000/XP/2003 授权方式: 免费版 DiskGenius是一款磁盘分区及数据恢复软件。支持对GPT磁盘(使用...
  • DiskGenius

    2014-05-16 11:05:55
    Disk Genius 4.40 免费版
  • DiskGenius使用教程.pdf

    2014-11-08 11:27:28
    DiskGenius 磁盘分区工具 1.程序主界面(主界面各部分说明) 2.快速分区 3.新建分区 4.复制分区和备份分区 5.文件数据恢复 一丶已删除文件的恢复 二丶格式化的文件恢复 6.搜索已丢失分区(重建分区表) 可选择的搜索...
  • 1.如果你加密了某一个文件夹比如E:\password,那你可以先装一个自带独立文件浏览功能的软件,这里我用的是DiskGenius,一款磁盘管理软件. 2.使用它的文件浏览功能定位到E:\MySafeBox,然后依次往下面点,大概四五层的样子...
  • 本人在用GHOST安装WIN7时,将整个硬盘覆盖了。... DiskGenius软件恢复分区是不错的,但最好用比较新的版本。否则分区被多次处理后,比较难恢复。 这儿将2个软件共享给大家。如果有需要帮忙恢复数据的可联系我。
  • DiskGenius是一款磁盘分区及数据恢复软件。它具有操作直观简便的特点,从最初的DOS版起就深受用户好评。Windows版本除了继承并增强了DOS版的大部分功能外,还增加了许多新的功能。如:已删除文件恢复、分区复制、...
  • DiskGenius3.4.5免费版

    2018-04-15 14:58:43
    DiskGenius3.4.5 免费版 修改分区、格式化、编辑分区表等
  • DISKGENIUS 4.5.0

    2014-06-24 12:13:03
    DiskGenius(硬盘分区) 4.5.0
  • DiskGenius v4.3.0 专业版

    2013-09-27 16:58:38
    DiskGenius除具备基本的分区建立、删除、格式化等磁盘管理功能外,还提供了强大的已丢失分区搜索功能、误删除文件恢复、误格式化及分区被破坏后的文件恢复功能、分区镜像备份与还原功能、分区复制、硬盘复制功能、...
  • 向大家介绍了一个对付硬盘坏道的好帮手——FBDISK,这款软件以其简洁的操作...为了能让大家有更多的选择,此次我们再介绍一款名为“Disk Genius”的软件,它同样是对付硬盘坏道的能手,而且功能丝毫不比FBDISK逊色哦!
  • DiskGenius4.72.zip

    2019-06-05 00:57:48
    DiskGenius4.7专业版破解版.我自己还没用。希望对大家有用。
  • DiskGenius使用图解 (转自网络)

    千次阅读 2011-10-30 12:04:45
    相信很多人都知道有Disk Genius(以前的DiskMan)这款软件,下载DISKGEN,它是一款完全的国产免费软件,虽是一款基于纯DOS的软件却拥有完全的简体中文界面,整个软件的大小也总共只有143k,非常便于携带。...
  • DiskGenius是一款磁盘分区及数据恢复软件。它是在最初的DOS版的基础上开发而成的。Windows版本的DiskGenius软件,除了继承并增强了DOS版的大部分功能外(少部分没有实现的功能将会陆续加入),还增加了许多新的功能。...
  • DiskGenius 3.8.0 专业版破解版。功能强大的硬盘分区和数据恢复工具。
  • DiskGenius恢复分区及文件的方法

    万次阅读 2012-09-10 10:48:18
    DiskGenius恢复分区及文件的方法 作者: DiskGenius 2009年5月6日  最近在email及论坛中发现很多朋友在分区或文件丢失后恢复数据时不得要领,不知道如何操作才能恢复数据,甚至情急之下胡乱操作,造成无法...
  • DiskGenius 3.5.0 32Bit 中文绿色版 磁盘分区、修复类工具
  • DiskGenius_3.8.0 专业版破解版for DOS。功能强大的磁盘分区和数据恢复工具。
  • EasyBCD和DiskGenius

    2018-03-28 17:12:24
    这里提供硬盘安装linux工具EasyBCD和DiskGenius的下载
  • 【分享】DiskGenius注册算法简析

    千次阅读 2013-03-14 06:39:43
    初次接触DiskGenius已经成为遥远的记忆,那个时候还只有DOS版本。后来到Windows版,用它来处理过几个找回丢失分区的案例,方便实用。到现在它的功能越来越强大,成为喜好启动技术和桌面支持人员的必备工具之一。 ...
  • Disk genius(Diskgenius)修复硬盘分区表图文教程  硬盘分区表的丢失是我们所不愿意见到的,想想我们收集了很长时间的资料一下子化为乌有的情况,确实是非常郁闷。硬盘分区表丢失了该怎么办?其实有修复的方法,...
  • DiskGenius 专业版 V4.6.5 绿色版-硬盘修复.
  • DiskGenius官方图文教程--复制(克隆)硬盘
  • DiskGenius3.5(免费版)

    2011-08-31 11:37:53
    DiskGenius是一款磁盘分区及数据恢复软件。支持对GPT磁盘(使用GUID分区表)的分区操作。除具备基本的分区建立、删除、格式化等磁盘管理功能外,还提供了强大的已丢失分区搜索功能、误删除文件恢复、误格式化及分区...

空空如也

1 2 3 4 5 ... 20
收藏数 437,427
精华内容 174,970
关键字:

disk