-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UEFI:NTFS - Unable to start driver: [1] or Could not start NTFS partition service: [14] #1213
Comments
Thanks for opening a new issue. As I mentioned in the previous one, I suspect that the problem comes from the EfiFs NTFS driver having switched from using the You are mentioning that you went through a BIOS update, so I wonder if that update is preventing EFI executables with Here's what you can do to validate that this is indeed the issue, using the USB you created with Rufus 3.3:
Of course, this is just one possibility, and I may be off mark (especially it's possible that I had already changed the subsystem type before 2.18, in which case the above probably won't help). The other thing that I'd like you to try, to confirm that this has to do with the EFI driver, is to pick the |
Thanks for the very very detailed guide on how to debug this specifically. I changed the Subsystem header of the v3.3 ntfs_x64.efi file to EFI Runtime Driver like you said but got a different error this time. However copying the file from 2.18 to the drive created by 3.3 allows the drive to boot perfectly fine. The ntfs_x64.efi file from the 2.18 drive already has the Subsystem header set to EFI Boot Driver |
Thanks for the test. I probably should have checked the driver from 2.18 before I asked you to run that test. As I mentioned earlier, can I ask you to please try all of the drivers |
Thanks for the update, but next time please don't edit a comment to add new data, as I didn't see your tests with the various version until now! It's much better to create a new entry, as I do get a notification. There were a lot of changes between 1.1 and 1.2, and since you are the only person with a machine that can replicate the problem, this is probably going to take a lot of back and forth to troubleshoot, so it may take a while. I guess the first thing I'm going to test, since 1.2 changed the compiler being used, it to try with a different compiler. I can not revert to the old one (Clang/C2) since support for it is being dropped by Microsoft in the latest version of Visual Studio, which is part of the reason why I switched compiler for the binary in the first place. Since version 1.2, the NTFS driver binary is compiled with the EDK2, so a good test will be to try non EDK2 versions. If you look in https://rufus.ie/testing/ you'll see that I uploaded 2 drivers: |
Many thanks for the new tests! Yes, the sha1sum of It's quite interesting that the test MSVC version works, whereas the original one doesn't, as the EDK2 version used by Rufus uses MSVC for compilation behind the scenes. So, just to make absolutely sure that this is not an EDK2 issue that has since been fixed, can I please ask you to try one more test? I have just recompiled a new EDK2 driver, which you can find as If it does, I guess I'll have to figure out the differences between the way the EDK2 invokes MSVC and the way the regular Visual Studio solution does (besides the use of gnu-efi, which I would assert should be the main difference), so that I can try to produce a driver that works. Else, I guess I'm going to have to switch to compiling all the drivers with Visual Studio + gnu-efi instead of EDK2, which is fine, but which will increase the size of the binaries and therefore the size of Rufus (the reason I'm using EDK2 + MSVC is because it produces the smallest binaries). And it still won't tell me exactly what it is between your platform and these drivers that is causing this weird incompatibility... |
I can confirm that the EDK2 driver fails. If you need more information let me know and I'll do my best to provide it. |
Thanks. I think right now I need to process all this good data you provided, and come up with some new things to try, to zero the issue further (which probably won't happen before next week at this stage). At any rate, your testing and your patience with this issue are much appreciated! |
I can't reproduce this myself (of course...), but EDK2 does make quite a few drastic changes to the standard MSVC build environment in the interest of saving space. I'm going to go ahead and assume EDK2 itself is not at fault (meaning the headers as opposed to the gnu-efi ones) as I've used both for years with no issues. But comparing
To get most of the above in order you can put the following in the
|
@Mattiwatti, many thanks for the extended analysis. This should indeed be exceedingly helpful, and I'll try to produce and upload drivers that apply your suggestions, to see if we can validate your hypotheses. |
Finally got around to compile a NTFS driver that includes @Mattiwatti's build options suggestion. So let's find out if it's really one of these compilation settings that is really causing the issue or something else. The driver is called @zanechua, if you can conduct a test with this driver, as you did with the other ones, I would realy appreciate it. Also, for the record, the linker issued the following warning, which means that the
|
That warning is not an issue, it just means some other EDK2 build setting already applied The only difference is that |
Tested ntfs_x64_edk2_TEST1.efi and I still get the same error. |
Thanks for the test, it was definitely worth a try. My guess would still have to be that EDK2 has deprecated APIs that gnu-efi hasn't, therefore I will replace all the x86 drivers with their gnu-efi version in the next release of Rufus. For the sake of not increasing the size of the Rufus executable too dramatically, I think I'll keep the ARM/EDK2 versions though, as I would surmise that any ARM UEFI firmware should be modern enough to work with drivers compiled with a recent EDK2. |
Hi all, Just an update, I'm also running into this error using my Dell Lattitude E6520. I'm currently trying to see if 2.18 also resolved this issue. |
@devedse, can you please indicate if you're getting errorcode 1 or 14, or some other. |
Didn't manage to make a screenshot as I went back to 2.18 and that worked. I'll see if I can create a new usb stick with the 3.3 version. Also one thing I don't quite understand is that I can select fat32 in Rufus 2.18 but not in 3.3. |
Well, for 2 that's a given. As to the first test, you are getting a completely different error from the ones mentioned above. Interesting...
Well, UEFI:NTFS is of course only valid for NTFS, so obviously it makes no sense to have it with FAT. I sure hope you didn't use FAT32 for your 2.18 test, because then it makes your success there irrelevant. |
Also, why does the boot option name in your first screen say Care to post a full log of how you created the USB with Rufus 3.3? |
I did use NTFS for both tests. The WinUsb2 is just a name that you can manually enter. Full process would be:
Same for 2.18 but there it did work. |
Still, I would really like to see the full log of you created the USB with Rufus 3.3. |
Will do tomorrow. :) thnx for the help already! |
Thanks for the testing. Let me first address your first post.
Yes, absolutely. The whole point of UEFI:NTFS is to have a bootloader on a small FAT partition (the one you point to) that loads the NTFS driver and then chain load the actual bootloader on the NTFS partition, so, yes, you definitely want to see a What you ultimately want to do is execute the EFI bootloader that resides on the NTFS partition, so that's why if you don't have a In other words the boot process goes like this:
Please do NOT do that. You should NOT touch the small UEFI_NTFS partition that already contains the
And now I realize that your boot selection window is not a Microsoft Windows application, but a UEFI menu. So yes, that's what you should use to select the device you want to boot from (though I'm a bit puzzled that Dell forces you to point to a specific file instead of just automatically looking for a boot partition, which is how UEFI is set to proceed... count on Dell to make it a lot less user intuitive than needs to be). |
I have a question though: What happens if you simply select |
Okay, now to comment on your videos:
If possible, I'd be very curious about what happens if you run the UEFI Shell and try to load the v1.5 NTFS driver from there, and whether you'd see the same errors. Let me prepare a procedure to guide you through that. |
Okay, let's try this test:
Screenshots from any errors (no need to upload videos) as well as the ouptut of the I hope this doesn't sound too much like I'm just ordering you around (feel free to take your time if needed or ask for clarification), because I really appreciate your willingness to help and I am very grateful for the tests you've already performed today! |
Sorry for the delayed response but I haven't really been able to find time to look into the issue further. I'll let you know once I've executed the steps you requested. |
The problem happens also to me, but with 3.9 works. |
@pbatard , I've found some time to run through the scenario. I've tried to execute step 3: However if I do this I only manage to see a black screen. At the end of your post is stated that I should also try to booth with NTFS-G.efi. I've tried that too, but the same black screen appeared again. For NTFS-E.efi the same happened. What am I doing wrong 😄? |
So if you want we can drop on discord and do some tests together if that's easier for you. |
@devedse, thanks for testing.
Interesting. It means that you can't even execute a recent UEFI Shell v2.2 (because that's what the I need to think about this some more, as well as investigate what breaking changes might have occurred in the EDK2.
That shouldn't be necessary. Fingers crossed, I'm going to get my hands on a machine that is affected by this issue sometime this week, which should greatly improve my ability to troubleshoot that error. I can always use test reports though, as you can never be too sure that something you're seeing on one machine will be exactly the same on another... |
DAMMIT! Finally got that Dell machine (an Optiplex 7010), but it looks like it isn't affected by the issue. I tried to downgrade the BIOS just in case, but UEFI:NTFS still works fine with the EDK2 driver there. However, testing with that machine is giving me some hints as to where the issue might stem from (but not how to fix it yet). Especially from @devedse's initial report and from #1536, I can see that the Device Paths reported when the issue occurs are a bit unexpected. For instance, @devedse reports seeing Moreover, according to this, It is however very puzzling to see either of the above being used for USB devices when UEFI should have a relatively solid implementation to handle USB devices... Now, the NTFS driver itself should be entirely agnostic to the type of controller being used (the proof of that being that the gnu-efi compiled version of the same code works), but I'm starting to wonder if the EDK2 may not be doing some things behind the scenes where the type of controller being used to access USB devices does matter... Anyway, while I am trying to source yet another Dell machine that might be able to replicate this issue, I have the following to ask:
Thanks |
This thread helped me resolve my issue with doing this on ubuntu. |
A-HA! I finally got my hand on a problematic machine (Dell Optiplex 390), and now everything is crystal clear, as per pbatard/EfiFs#21. The main cause of the problem is that some old UEFI firmwares don't provide a protocol that allows to convert a Device Path (a Device Path is a binary blob that UEFI uses to uniquely indentify a device such as a USB drive or a USB partition) to a Device Path string, which is what I decided to use as a unique identifier for partitions in EfiFs because that's what In other words, it made a lot of sense to use a DevicePath string at the time, especially as, regardless of whether the UEFI firmware did provide a protocol to convert a Device Path to a string, I could always fall back to a function, But then I added support for EDK2 compilation, skirted around the absence of So, what happens on the problematic machines is that, when we try to bind the NTFS driver to a partition, the string conversion for the Device Path of that partition fails, and the driver says it can't open that partition (with error I have to say, I am a bit ashamed that I didn't spot this earlier, because, of course, it makes total sense now that it's clear what happened, and I feel like I should have been able to figure this out, without having to go through the trouble of purchasing a couple of these old Dell systems. Once I have figured out a good way to work around the issue of not being able to rely on Device Path string conversions in EfiFs, I will produce a v1.6 release of the EfiFs drivers and hopefully, this time, that should be the end of this obnoxious issue. |
Amazing that you figured it out :), keep us posted! |
Okay, I have now updated the UEFI:NTFS image in Rufus and I will close this issue, as I expect it to be fixed for good. For those who want to test, I have also uploaded an early TEST version of Rufus 3.11 with the updated UEFI:NTFS here. |
do you have the UEFI:NTFS as an img? I want to dd write the img |
I just tried the NTFS.efi driver in OpenCore, which is an EDKII build. At boot in the EDK environment upon loading the driver I get:
|
Since the software is 100% Open Source, the latest image can always be downloaded from the GitHub repo here
You are most likely not using the proper driver from your arch. I'm afraid this is NOT the right thread to ask for help about using the driver. This thread is about getting errors [1] or [14] or [3] when using the UEFI:NTFS version installed by Rufus. If you have unrelated questions, please create a thread either in the UEFI:NTFS project or the EfiFs project. Otherwise, I will have no choice but to lock this issue to prevent further unrelated issues. |
Thank you for this fix in the 3.11 ver. |
* Note: This may affect pbatard#1213
* Now use version 1.6 of the EfiFs drivers that enables firmwares that don't provide EFI_DEVICE_PATH_TO_TEXT_PROTOCOL to mount NTFS partitions regardless. * Also use the latest version of UEFI:NTFS that displays additional info about the system. * Closes pbatard#1213. * Also update version to Rufus-next.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue if you think you have a related problem or query. |
Checklist
<FULL LOG>
below.Rufus version: x.y.z
- I have NOT removed any part of it.Additionally (if applicable):
(✓)
button to compute the MD5, SHA1 and SHA256 checksums, which are therefore present in the log I copied. I confirmed, by performing an internet search, that these values match the ones from the official image.Issue description
Motherboard: S2600CP4
Bios Revision: R02.06.E006
Rufus version: 3.3
Here's the log from Rufus:
https://gist.github.com/zanechua/36c2416c9d8035623a0efb51a176d7af
Here are the errors I am getting on boot:
EDIT:
So it seems like the last version of Rufus v2 works.
Rufus version: 2.18
Here's the log from Rufus:
https://gist.github.com/zanechua/acf8c67c7026814796f7da6414dd6e3e
I don't think it's the bios update though since 2.18 works. I haven't formatted this computer in awhile so I might have been using 2.18 and this is the first time I am using 3.x on this computer.
The text was updated successfully, but these errors were encountered: