Running chkdsk on a disk partition without a drive letter

28

7

I have a hard drive that shows up in Disk Management as having two partitions.

One of the partitions says 69.71GB and that's it. The other says 4.82GB and, underneath that, Healthy (OEM Partition).

I'm trying to do chkdsk on the 69.71GB partition and am unsure of how to do it without a drive letter.

It's an NTFS partition that's gotten corrupted. Linux's ntfsfix spits out a bunch of errors so I'm thinking chkdsk might be better.

neubert

Posted 2012-12-13T04:04:30.397

Reputation: 3 991

The answer from LawrenceC is correct and works. Why didn't you accept it as the answer? – Francisco Zarabozo – 2018-10-04T08:29:21.303

@FranciscoZarabozo - the answer came almost a year after I asked the question and I'm not going to go mounting a hard drive, now, just to test an answer to a question that long ago ceased to have relevance to my life. I'm also not going to mark something as the answer without verifying it nor am I going to mark something as the answer simply because it has more upvotes than any other answer. – neubert – 2018-10-04T12:31:17.823

1Why can't you just assign a drive letter to it? – Zoredache – 2012-12-13T08:17:59.673

Answers

33

Try this.

Open a command prompt. Execute the mountvol command which will tell you all the volumes on your system and give you the GUID of them.

\\?\Volume{eb38d03b-29ed-11e2-be65-806e6f6e6963}\
    *** NO MOUNT POINTS ***

\\?\Volume{eb38d03c-29ed-11e2-be65-806e6f6e6963}\
    C:\

\\?\Volume{41ae7a1c-9849-11e2-be7a-0026b9dc157c}\
    F:\

I bet the one you won't have a drive letter but Windows should still give it a GUID if it's a valid and recognized partition.

Then run CHKDSK in this fashion:

chkdsk "\\?\Volume{eb38d03c-29ed-11e2-be65-806e6f6e6963}"

Worked on my system but my volume had a drive letter. Use /f and other switches as appropriate.

LawrenceC

Posted 2012-12-13T04:04:30.397

Reputation: 63 487

1This didn't work here. It just checked the current disk. – clst – 2014-07-14T12:11:44.727

Oh well, I figured it was a long shot. :( – LawrenceC – 2014-07-14T13:07:46.573

10Works for me on volume w/o letter. Don't forget to avoid last \ in volume name. – LogicDaemon – 2014-11-27T06:45:29.457

It worked for me just like this chkdsk "\\?\Volume{eb38d03c-29ed-11e2-be65-806e6f6e6963}" /f/v/x – razor7 – 2015-12-29T12:43:48.210

Did not work for me on SBS2011Std. (Microsoft Windows [Version 6.1.7601]) So I gave up, assigned a drive letter, scanned, then unassigned the drive letter. – StackzOfZtuff – 2016-08-03T09:59:37.350

It said NO MOUNT POINTS. chkdsk ran successfully and didn't report any error. However the partition still cannot be mounted. – xji – 2017-03-24T14:24:10.493

Windows doesn't recognize the format of the partition then. Is it NTFS, FAT32, exFAT or something else? cfdisk on Linux can tell you what it is. – LawrenceC – 2017-03-24T15:31:15.327

It is NTFS. It's a quite curious situation: The drive was being normally recognized in Windows, but not in Ubuntu, before I reinstalled Windows due to some system error. Now, after the Windows system reinstall, Windows can't recognize it either. I downloaded TestDisk per a comment below and it suggests a "None" partition table type for this drive. I proceeded to perform a quick search and selected "list files", and all my files are there and can be read by TestDisk!

– xji – 2017-03-24T22:29:04.090

So it appears that now the problem is to build a correct partition table, but I'm not sure how to proceed now. Sorry I don't have much experience on this. Does this current situation suggest that the drive itself is broken, but I can still read and copy the original files out? Or is there still a way to rescue this drive and use it normally again. – xji – 2017-03-24T22:29:23.700

Asked a new question at https://superuser.com/questions/1192154/recovering-ntfs-partition-with-testdisk

– xji – 2017-03-24T23:10:43.047

Testdisk can copy the files off. – LawrenceC – 2017-03-24T23:24:07.873

1you can also try *wmic volume get deviceid* to view volume ids – user283868 – 2016-02-21T00:42:20.423

5It doesn't work when there's no mounting point or a drive letter. – DevAntoine – 2014-01-12T14:03:33.067

2

LawrenceC's answer worked for me. If you have many volumes without drive letters (e.g. Recovery, etc) and don't know which GUID to use, though, here's a way that might be easier:

  1. Open Disk Management (diskmgmt.msc).
  2. Right-click on the volume you want to scan.
  3. Select Properties.
  4. Go to the "Security" tab.
  5. Copy the "Object name" string displayed at the top of the tab.
  6. Open a UAC-elevated command prompt.
  7. Type CHKDSK (along with the desired switches you want to pass, like /R or /X).
  8. Paste-in the string you copied in step 5.
  9. Remove the trailing slash.
  10. Press ENTER.

GuyPaddock

Posted 2012-12-13T04:04:30.397

Reputation: 355

2

Ultimately, you should be able to run chkdsk on a volume, as per the chkdks documentation (instead of a drive letter or mount point, you simply pass it the volume name). However, it's probably easier and more reliable to just assign the partition a drive letter or mount point.

Under Windows, you need to assign a partition a mount-point to use chkdsk on it. You can use the Computer Management snap-in (Start -> Run -> compmgmt.msc) or DISKPART to do this (see below for DISKPART instructions). If you go with the Computer Management method, go to the Disk Management section, where you need to assign the partition either:

  1. A drive letter (i.e. X:)
  2. A mount path (i.e. X:/MyDisc/)

After this, you should be able to run chkdsk on the particular mount-point of interest. The easiest and most reliable would probably be to mount it as a drive letter.


Alternatively, you can use DISKPART to assign the partition a letter. Fire up DISKPART, and type LIST DISK to find the disk, followed by SELECT DISK <N> (where <N> is the drive number). Follow the same steps to find the proper partition (i.e. LIST PARTITION followed by SELECT PARTITION <N>), and then simply type ASSIGN to have Windows mount the partition at the next new drive letter.

Breakthrough

Posted 2012-12-13T04:04:30.397

Reputation: 32 927

Thanks to your comment, I downloaded TestDisk. It suggested "None" as partition table type on this drive, but I could still proceed to list all the original files I stored there. Is there still a way to create a partition table, rescue the drive and use it normally again, or does the current situation suggest I can still read and copy the original files out, but nothing further than that? Sorry, I'm not very familiar with this. – xji – 2017-03-24T22:34:50.547

Asked a new question at https://superuser.com/questions/1192154/recovering-ntfs-partition-with-testdisk

– xji – 2017-03-24T23:10:53.847

I can list the partitions on the bad drive but when I try to assign the partition it just hangs. Any ideas? – neubert – 2012-12-14T00:45:40.517

1

@neubert as a next step, I would use TestDisk to attempt to find the partitions (and check their integrity), and finally to see if you can browse the drive (it has a file recovery mode you can use to browse partitions).

– Breakthrough – 2012-12-14T03:05:38.213

Not sure if things have changed since this answer, but Assign is for volumes not partitions. The Help text says: "Assign a drive letter or mount point to the selected volume". I tried following your steps and it told me "there is no volume specified" But, while my partition shows up, it is not listed as a volume" – Vaccano – 2014-03-17T21:46:14.920

@Vaccano is the filesystem damaged or incompatible with Windows? Unless it can be mounted, you cannot run chkdsk on it. – Breakthrough – 2014-03-18T00:19:37.553

1

Use the diagnostic utility from the drive vendor. Most major hard drive vendors offer these tools as a free download.

Dave M

Posted 2012-12-13T04:04:30.397

Reputation: 12 811

1

After trying some of the solutions without success. Here is what I did:

  • Change Directory to the Mounted Volume
  • execute "chkdsk ." ( . for current directory )

It scanned the Mounted Volume. I couldn't get it to work another way with the volume mounted.

clst

Posted 2012-12-13T04:04:30.397

Reputation: 501

1

Open "Run" type in "diskmgmt.msc", this opens the disk manager. Find the drive, right-click on the drive, scroll to Change Drive Letters and Paths, you can then give it a dedicated drive letter. Every time you plug it into your computer, it will use the drive letter you assigned to it

ladiya_leeoz

Posted 2012-12-13T04:04:30.397

Reputation: 21

0

What you will have to do is use DISKPART

First, open up command prompt.

1.Goto start menu.

2.Type cmd and open it

3.Once in Command Prompt type

DISKPART

4.Then you are going to type

List Disk

5.Find your disk that has the file size of 69.71 GB

6.Then you need to type

List partition

7.Once you find the partition that you are wanting to run a chkdsk on look next to the partitions and they should be labeled by numbers. so choose the number of the partition and write the following command

Select partition 1

8.But replace the 1 with whatever number your drive letter is then type

Assign

9.That will then assign the partition a drive letter then you can run a chkdsk on that drive

Type exit to leave diskpart

then type chkdsk D: /f /r

10.Replace "D:" with whatever drive letter it is for your drive.

JustinD

Posted 2012-12-13T04:04:30.397

Reputation: 694

It hangs after I type in assign on the desired partition.. – neubert – 2012-12-14T00:44:30.660

When you type assign, all it should be doing is mounting your drive and assigning it a drive letter. it shouldn't really hang. – JustinD – 2012-12-14T13:22:44.367

3Not sure if things have changed since this answer, but Assign is for volumes not partitions. The Help text says: "Assign a drive letter or mount point to the selected volume". I tried following your steps and it told me "there is no volume specified" But, while my partition shows up, it is not listed as a volume" – Vaccano – 2014-03-17T21:47:01.460

-1

You should provide drive letter, volume name (use mountvol to obtain it), or mount point for "chkdsk", here is part of its help content:

CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]] [/B] [/scan] [/spotfix]


volume              Specifies the drive letter (followed by a colon),
                    mount point, or volume name.

You can assign one of these either graphically, by "Disk Management" -> Right click on the volume -> "Change drive letter and Paths...", or by command line (@JustinD explained that).

IWIH

Posted 2012-12-13T04:04:30.397

Reputation: 99

-1

Linux's ntfsfix spits out a bunch of errors so I'm thinking chkdsk might be better.

I think it would be helpful to know what these errors are.

Also, have you tried mounting in linux? If the data is very sensitive I suggest cloning it to another drive as soon as possible. using something like;

dd if=/dev/sdc bs=2000K of=/path/to/raw/output.img

Also, you can mount that 'output.img' file within linux using a command similar to this;

mount -t ntfs-3g -o ro,loop,offset=<512*start sector> /path/to/raw/output.img

(The offset can be found using fdisk -l, and look at the start sector for ntfs partition and multiply by 512)

jredd

Posted 2012-12-13T04:04:30.397

Reputation: 776

-2

I was facing the same problem when I bought a new hard disk. I created three partitions: 200 GB, 200 GB, and 70 GB. Both of the 200 GB partitions were good and healthy, but the 70 GB one was in an unknown format. This causes the check disk problem while booting, so just do the below steps:

  1. Right click on "Computer" (or "My computer"), click on "Manage", and click on "Disk Management".
  2. There you find the partitions. Just click on one of the partitions which is light blue (logical drive), delete this volume, then unallocated it so that the disk space goes black color (unallocated). Then do 40/50 GB portion so that the other will remain unallocated.
  3. Then click on the new volume created and extend it. The problem will be solved.

No need to use the command prompt at all.

praneethraj

Posted 2012-12-13T04:04:30.397

Reputation: 1