disk_diskpart - CSDN
精华内容
参与话题
  • DiskGenius4.5.0免费版

    2020-07-30 23:32:25
    DiskGenius V4.5.0 1、Windows版,检测坏道时,可指定超时时间。另外如果中途磁盘掉线就中止检测并显示提示。 2、优化对坏道硬盘的读写,提高数据恢复时的扫描速度。 3、为免费版增加分区表格式转换功能,可在GUID与...
  • 解决办法: 1、找到虚拟机所在的目录 将.vmx文件打开 将文件vmci0.present = "TRUE"改为vmci0.present = "FALSE" 2、删除以.lck为后缀名的文件夹 3、重新打开虚拟机 ...

    解决办法:

    1、找到虚拟机所在的目录

      将 .vmx文件打开

    将文件vmci0.present = "TRUE"改为 vmci0.present = "FALSE"

    2、删除以.lck为后缀名的文件夹

    3、重新打开虚拟机

    展开全文
  • Ghost的Disk菜单下的子菜单项可以实现硬盘到硬盘的直接对拷(Disk-To Disk)、硬盘到镜像文件(Disk-To Image)、从镜像文件还原硬盘内容(Disk-From Image)。 在多台电脑的配置完全相同的情况下,我们可以...
     
    Ghost的Disk菜单下的子菜单项可以实现硬盘到硬盘的直接对拷(Disk-To Disk)、硬盘到镜像文件(Disk-To Image)、从镜像文件还原硬盘内容(Disk-From Image)。

    在多台电脑的配置完全相同的情况下,我们可以先在一台电脑上安装好操作系统及软件,然后用ghost的硬盘对拷功能将系统完整地“复制”一份到其它电脑,这样装操作系统可比传统方法快多了哦:)。

    Ghost的Disk菜单各项使用与Partition大同小异,而且使用也不是很多,在此就不赘述了。

    完全版:
    克隆软件Ghost初级使用教程

    一、什么是Ghost ?

    Ghost(幽灵)软件是美国赛门铁克公司推出的一款出色的硬盘备份还原工具,可以实现FAT16、FAT32、NTFS、OS2等多种硬盘分区格式的分区及硬盘的备份还原。俗称克隆软件。

    1、特点:既然称之为克隆软件,说明其Ghost的备份还原是以硬盘的扇区为单位进行的,也就是说可以将一个硬盘上的物理信息完整复制,而不仅仅是数据的简单复制;克隆人只能克隆躯体,但这个Ghost却能克隆系统中所有的东东,包括声音动画图像,连磁盘碎片都可以帮你复制,比克隆人还厉害哟:)。Ghost支持将分区或硬盘直接备份到一个扩展名为.gho的文件里(赛门铁克把这种文件称为镜像文件),也支持直接备份到另一个分区或硬盘里。

    2、运行ghost:至今为止,ghost只支持Dos的运行环境,这不能说不是一种遗憾:(。我们通常把ghost文件复制到启动软盘(U盘)里,也可将其刻录进启动光盘,用启动盘进入Dos环境后,在提示符下输入ghost,回车即可运行ghost,首先出现的是关于界面

    按任意键进入ghost操作界面,出现ghost菜单,主菜单共有4项,从下至上分别为Quit(退出)、Options(选项)、Peer to Peer(点对对,主要用于网络中)、Local(本地)。一般情况下我们只用到Local菜单项,其下有三个子项:Disk(硬盘备份与还原)、Partition(磁盘分区备份与还原)、 Check(硬盘检测),前两项功能是我们用得最多的,下面的操作讲解就是围绕这两项展开的。

    3、由于Ghost在备份还原是按扇区来进行复制,所以在操作时一定要小心,不要把目标盘(分区)弄错了,要不将目标盘(分区)的数据全部抹掉就很惨的……根本没有多少恢复的机会,所以一定要认真、细心!但你也不要太紧张,其实Ghost的使用很简单,弄懂那几个单词的意思你就会理解它的用法,加上认真的态度,你一定可以掌握它的!一起来吧:)

    二、 分区备份

    预备知识:认识单词
    Disk:不用我说你也知道,磁盘的意思;
    Partition:即分区,在操作系统里,每个硬盘盘符(C盘以后)对应着一个分区;
    Image:镜像,镜像是Ghost的一种存放硬盘或分区内容的文件格式,扩展名为.gho;
    To:到,在ghost里,简单理解to即为“备份到”的意思;
    From:从,在ghost里,简单理解from即为“从……还原”的意思。

    (一) Partition菜单简介

    其下有三个子菜单:
    To Partion:将一个分区(称源分区)直接复制到另一个分区(目标分区),注意操作时,目标分区空间不能小于源分区;
    To Image:将一个分区备份为一个镜像文件,注意存放镜像文件的分区不能比源分区小,最好是比源分区大;
    From Image:从镜像文件中恢复分区(将备份的分区还原)。

    (二) 分区镜像文件的制作

    1、 运行ghost后,用光标方向键将光标从“Local”经“Disk”、“Partition”移动到“To Image”菜单项上,然后按回车。

    2、 出现选择本地硬盘窗口,,再按回车键。

    3、 出现选择源分区窗口(源分区就是你要把它制作成镜像文件的那个分区)

    用上下光标键将蓝色光条定位到我们要制作镜像文件的分区上,按回车键确认我们要选择的源分区,再按一下Tab键将光标定位到OK键上(此时OK键变为白色),再按回车键。

    4、 进入镜像文件存储目录,默认存储目录是ghost文件所在的目录,在File name处输入镜像文件的文件名,也可带路径输入文件名(此时要保证输入的路径是存在的,否则会提示非法路径),如输入D:\sysbak\cwin98,表示将镜像文件cwin98.gho保存到D:\sysbak目录下,输好文件名后,再回车。

    5、 接着出现“是否要压缩镜像文件”窗口,有“No(不压缩)、Fast(快速压缩)、High(高压缩比压缩)”,压缩比越低,保存速度越快。一般选Fast即可,用向右光标方向键移动到Fast上,回车确定;

    6、 接着又出现一个提示窗口,用光标方向键移动到“Yes”上,回车确定。

    7、 Ghost开始制作镜像文件

    8、 建立镜像文件成功后,会出现提示创建成功窗口

    回车即可回到Ghost界面;

    9、 再按Q键,回车后即可退出ghost。

    至此,分区镜像文件制作完毕! 也蛮简单的嘛:)。

    三、 从镜像文件还原分区

    制作好镜像文件,我们就可以在系统崩溃后还原,这样又能恢复到制作镜像文件时的系统状态。下面介绍镜像文件的还原。

    (一)在DOS状态下,进入Ghost所在目录,输入Ghost回车,即可运行Ghost。

    (二)出现Ghost主菜单后,用光标方向键移动到菜单“Local-Partition-From Image”,然后回车。

    (三) 出现“镜像文件还原位置窗口”,在File name处输入镜像文件的完整路径及文件名(你也可以用光标方向键配合Tab键分别选择镜像文件所在路径、输入文件名,但比较麻烦),如d:\sysbak\cwin98.gho,再回车。

    (四) 出现从镜像文件中选择源分区窗口,直接回车。
    (五) 又出现选择本地硬盘窗口,再回车。

    (六) 出现选择从硬盘选择目标分区窗口,我们用光标键选择目标分区(即要还原到哪个分区),回车。

    (七) 出现提问窗口,选Yes回车确定,ghost开始还原分区信息。

    (八) 很快就还原完毕,出现还原完毕窗口,选Reset Computer回车重启电脑。


    现在就完成了分区的恢复,是不是很快呀:)。
    注意:选择目标分区时一定要注意选对,否则:(,后果是目标分区原来的数据将全部消失……

    四、 硬盘的备份及还原

    Ghost的Disk菜单下的子菜单项可以实现硬盘到硬盘的直接对拷(Disk-To Disk)、硬盘到镜像文件(Disk-To Image)、从镜像文件还原硬盘内容(Disk-From Image)。

    在多台电脑的配置完全相同的情况下,我们可以先在一台电脑上安装好操作系统及软件,然后用ghost的硬盘对拷功能将系统完整地“复制”一份到其它电脑,这样装操作系统可比传统方法快多了哦:)。

    Ghost的Disk菜单各项使用与Partition大同小异,而且使用也不是很多,在此就不赘述了。

    五、 Ghost使用方案

    1、最佳方案:完成操作系统及各种驱动的安装后,将常用的软件(如杀毒、媒体播放软件、office办公软件等)安装到系统所在盘,接着安装操作系统和常用软件的各种升级补丁,然后优化系统,最后你就可以用启动盘启动到Dos下做系统盘的克隆备份了,注意备份盘的大小不能小于系统盘!

    2、如果你因疏忽,在装好系统一段间后才想起要克隆备份,那也没关系,备份前你最好先将系统盘里的垃圾文件清除,注册表里的垃圾信息清除(推荐用Windows优化大师),然后整理系统盘磁盘碎片,整理完成后到Dos下进行克隆备份。

    3、什么情况下该恢复克隆备份?
    当你感觉系统运行缓慢时(此时多半是由于经常安装卸载软件,残留或误删了一些文件,导致系统紊乱)、系统崩溃时、中了比较难杀除的病毒时,你就要进行克隆还原了!有时如果长时间没整理磁盘碎片,你又不想花上半个小时甚至更长时间整理时,你也可以直接恢复克隆备份,这样比单纯整理磁盘碎片效果要好得多!

    4、最后强调:在备份还原时一定要注意选对目标硬盘或分区!
    展开全文
  • 详细解释Basic disk和Dynamic disk

    千次阅读 2016-11-07 21:39:12
    (1)磁盘分类:basic disk (基本磁盘) 和 dynamic disk(动态磁盘) (2)区和卷:  partion(区),包括:primary partition (基本分区) and extend partition(扩展分区):Logi

    原文地址 http://ssheng.blog.sohu.com/158751893.html


    1. 名词翻译

    (1)磁盘分类:basic disk (基本磁盘) 和 dynamic disk(动态磁盘)

    (2)区和卷: 

    partion(区),包括:primary partition (基本分区) and extend partition(扩展分区):Logical drive (逻辑驱动)
    volume(卷),包括:Simple Volume 简单卷, Striped volume 带区卷,spanned vloume 跨区卷, mirror array 镜像卷,raid5卷 (redundant array of independent disk) 直译:独立磁盘冗余阵列

    2. 区别

    (1)基本磁盘(Basic Disks)
       基本磁盘是指包含具有Windows 2000和Windows NT所有版本所使用的主分区以及有逻辑驱动器的扩展分区。基本磁盘还可以包含利用Windows NT 4.0或更早版本所创建的卷、带区卷、镜像卷或R A I D - 5卷(又称为有奇偶检验的带区卷)。只要所使用的文件格式是一个可兼容的文件格式,基本磁盘就可以被Microsoft MS-DOS、Microsoft Windows 95、Microsoft Windows 98和Windows NT的所有版本访问。

       既然Windows 2000自动地将磁盘初始化成基本磁盘,那么用户就可以利用与Windows NT中相同的方法检修分区和卷故障。注意FAT32文件系统在Windows 2000中是一个新的文件系统。Windows NT中的磁盘故障检修工具很可能不识别FAT 3 2引导扇区,这也许会使格式化成FAT 3 2的卷出现问题。如果用户计算机中使用了FAT 3 2文件格式,请确保使用专为Windows 2000设计的识别FAT 3 2文件格式的磁盘故障检修工具。当硬件安装完成以后,新的磁盘或空白磁盘既可以初始化成基本磁盘,又可以初始化成动态磁盘。但是,要创建一个新的容错( fault-tolerant, FT)磁盘系统,用户必须将磁盘升级为动态磁盘。   

     (2)动态磁盘(Dynamic Disks)
      基本卷( basic volume)是指基本磁盘上的卷。基本卷包括主分区、扩展分区内的逻辑驱动器以及用Windows NT 4.0或更早版本所创建的卷、带区、镜像或R A I D - 5集。在动态磁盘上不能创建基本磁盘。

    注意只能在运行Windows 2000 Server的计算机上创建新的容错集,如镜像卷和R A I D - 5卷。在创建这些卷之前,必须将磁盘升级成动态磁盘。但是,用户可以使用一台运行Windows 2000 Professional的计算机在一台运行Windows 2000 Server的远程计算机上创建镜像卷和RAID-5卷。

    简单卷:单个磁盘
    带区卷:2-32个硬盘,每64K的块,均衡在各硬盘中,提高性能,不提供容错。
    跨区卷:2-32硬盘,依次写满各硬盘,不改变性能,不提供容错。
    镜像卷:2个硬盘,提供容错
    RAID5卷:3-32个硬盘,有容错功能的条带卷(奇偶校验)

    (3)你可以把一个基本磁盘转换成动态磁盘。但是你必须了解这并不是一个双向的过程。一旦你从基本磁盘变成了动态磁盘,除非你重新创建卷,否则你不能将它转变回去。

    注:升级前备份,必须由1MB未分配空间;动态降回基本则数据丢失

                   To Revert to a Basic Disk, All Data and Volumes Must be Removed

    (4) 两者之间最明显的不同在于操作系统支持。所有的Windows版本甚至DOS都支持基本磁盘,而对于动态磁盘则不是如此。只有Windows后期的版本,包括Windows 2000、Windows XP和Windows Server 2003支持动态磁盘。无论是基本磁盘还是动态磁盘,你都可以使用任何文件系统,包括FAT和NTFS。而且你可以在动态磁盘改变卷而不需要重启系统。


    展开全文
  • 10.14.2 解决黑苹果-v模式10.14.2提示disk0:error的错误,解决10.14进入安装界面无法抹掉磁盘,试一试吧,我电脑i3三代加华擎b75主板
  • 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
        
         断断续续分几次才把这篇文章写完,难免会有不足之处,如果发现欢迎批评指正。
         本文乃原创文章,请勿随意转载,如需转载请详细标明转载出处。

    展开全文
  • DiskPart命令详解

    万次阅读 2016-03-31 16:04:10
    Diskpart命令是Windows环境下的一个命令,利用diskpart可实现对硬盘的分区管理,包括创建分区、删除分区、合并(扩展)分区,完全可取代分区魔术师等第三方工具软件,它还有分区魔术师无法实现的功能,如设置动态...
  • database disk image is malformed解决方法

    万次阅读 2013-12-12 18:37:43
    作者:朱金灿来源:http://blog.csdn.net/clever101 在Hudson上终止一次Job的运行之后,Hudson在服务器上更新源码出现下图的错误: 上网查了下解决办法就是把源码目录下的svn文件删掉,然后重新checkout。
  • svn服务器意外中断或者服务器经常断电会造成svn的数据丢失和数据异常 如题的一个错误就是svn数据库出现了错误,在svn客户端提交时出现能传送,但是在传送的结束时提示错误 用sqlite3命令查看看到了这个数据库...
  • 下载Win32DiskImager软件并安装 本地下载 官网下载 一张Micro SD卡 一块树莓派3开发板 树莓派3电源 HDMI线 支持HDMI的显示器或电视机 一条网线(可选) 键盘 鼠标 电脑,安装Windows系统 系统...
  • SVN 出现 database disk image is malformed

    万次阅读 2014-12-08 14:25:01
    这个问题是由于sqlite数据库出错导致。 1. 将Repositories\xxxx\db下的db文件重命名,或删除,建议的留一份。 2. 打开cmd 敲 svnadmin verify D:\Repositories\xxxx\ 3. 看哪个版本文件出错。...
  • ubuntu 制作USB启动盘

    万次阅读 2013-07-25 11:03:00
    Insert a USB stick with at least 2GB of free space. ...Open the dash and search for Startup Disk Creator. 3 Select the Startup Disk Creator to launch the app. 4 Click 'Other' to choos
  • DiskGenius稳定不闪退版

    万次阅读 2016-06-15 09:51:25
    DiskGenius 是一款功能全面,安全可靠的 硬盘分区工具 。分区管理功能包括:创建分区、删除分区、格式化分区、无损调整分区、隐藏分区、分配盘符或删除盘符等。 备份还原 DiskGenius 还是一
  • 今天刚打开虚拟机就出现了问题,( ˇˍˇ ) 各种百度之后,找到了解决办法,总结下办法: 我的是直接使用这个就解决了 找到启动虚拟机的目录: 如下图 ...vmci0.present =
  • http Status 200 304 缓存
  • 此句英文的意思是数据库文件损坏。 怎么证明SQLite数据库文件损坏呢? 首先sqlite3 database_name进入数据库 ...如果数据库文件损坏就会报损坏的错误,如何数据库文件是完好的就会显示OK。...
  • 启动虚拟机出现:模块“Disk”启动失败

    千次阅读 多人点赞 2018-02-27 22:06:17
    1、找到虚拟机所在的目录 将 .vmx文件打开将文件vmci0.present = "TRUE"改为vmci0.present = "FALSE"2、删除以.lck为后缀名的文件3、重新打开虚拟机
  • 先关闭客户机在“虚拟机”-“电源”中选择“打开电源时进入固件(F)”之后重启客户机,会自动进入BIOS界面在Boot中将CD-ROM Drive调整为第一启动(一般是按“+”和“-”调整) 按F10保存并退出BIOS这时就可以正常对...
  • 服务器重启报错: 解决方案: systemctl daemon-reload 重启服务器即可: systemctl start admin-server
1 2 3 4 5 ... 20
收藏数 411,540
精华内容 164,616
关键字:

disk