Solved

how can i make a bootable usb drive programatically

Posted on 2008-09-29
7
1,351 Views
Last Modified: 2013-11-14
Hi experts,
I need to make a usb drive bootable using a tool, I am asking this question here as i cannot use any third party tool to do this and i need to implement this in my code in C++.
The req are: user will insert an external USB hard disk on the machine.
and when he clicks "make bootable", the tool will first format the usb disk, I will be using format.exe to format the disk, I already have the boot files ready with me (ntldr, bootfix etc with me).
If i only copy these files to the usb disk, i will not be able to boot from this usb disk because:
The MBR on the disk is not present.
So with c++ how can i write the MBR on the USB hard drive so that it will point it to the boot files on the same disk so that my USB hard disk becomes bootable.

I am sure there is a way, but i am unaware what is it.
TIA
0
Comment
Question by:LearningCpp
7 Comments
 
LVL 8

Expert Comment

by:Anthony2000
ID: 22598802
0
 
LVL 86

Expert Comment

by:jkr
ID: 22598824
Use 'SHFormatDrive()' (http://msdn.microsoft.com/en-us/library/bb762169(VS.85).aspx) and set the following option:

SHFMT_OPT_SYSONLY
0x002. Selects the Create an MS-DOS startup disk option, creating a system boot disk.
0
 
LVL 8

Expert Comment

by:Anthony2000
ID: 22598966
I didn't check that you are doing this under Windows. But the SHFormatDrive still requires some user interaction:
from SHFormatDrive's remarks section:
"The format is controlled by the dialog interface. That is, the user must click the OK button to actually begin the formatthe format cannot be started programmatically."


0
Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

 

Author Comment

by:LearningCpp
ID: 22599504
No user interaction required, so i cannot user SHFormatDrive()?
0
 
LVL 8

Expert Comment

by:Anthony2000
ID: 22600115
Here is a link that discusses using BartPE: http://www.dedoimedo.com/computers/livecd.html See the section titled:  

"Bootable USB sticks"

0
 
LVL 17

Expert Comment

by:CSecurity
ID: 22605166
create autorun.inf in your home directory of USB memory disk that include these texts:
[autorun]
OPEN=SETUP.EXE
ICON=SETUP.EXE,0

as you know, you can change setup.exe and setup.ico as you desire
regards...
0
 

Accepted Solution

by:
LearningCpp earned 0 total points
ID: 22707491
Can i use IOCTL_DISK_SET_PARTITION_INFO and PARTITION_INFORMATION_MBR in some way to do this?

Cannot use BartPE.

which setup.exe will use autorun.inf?
0

Featured Post

Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
SD card might be causing Note 4 issues.  How can I fix? 103 168
ESX 6.5 storage not recognized after tagging as SSD 18 102
Server backups 5 59
SSD mSata 250GB 37 72
How to update Firmware and Bios in Dell Equalogic PS6000 Arrays and Hard Disks firmware update.
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
Windows 8 comes with a dramatically different user interface known as Metro. Notably missing from the new interface is a Start button and Start Menu. Many users do not like it, much preferring the interface of earlier versions — Windows 7, Windows X…
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question