M
M
Michael Galyuk2014-09-01 13:12:41
Windows
Michael Galyuk, 2014-09-01 13:12:41

BootMgr in Windows 7 binds to hardware via C:\Boot\BCD?

Transferred Windows 7 to another hard drive (preliminarily untied from hardware by deleting specific devices in the Device Manager).
Now I get an error when loading:

Failed to start Windows. This may have happened due to a recent configuration change.
Status: 0xc000000e.
Details: The boot menu failed because the required device is not available.

Is the new bootloader BootMgr bound to the hardware now???!!
NTLDR did not allow itself this, and the config (C:\boot.ini) was text.
Now the config is also binary (C:\Boot\BCD). This mess.
I know that it is possible to be perverted with bcdedit and so on. Questions such:
1) Whether there is a universal BCD loading Windows from the 1st disk, 1st section? Let me download.
2) Is there a way to edit BCD on Linux? (EasyBCD and BOOTICE do not work under Wine).
ps I need to install Win7 on many machines, and on each I'm not going to pervert.
In the case of WinXP, I just copy the directories from under Linux, install Grub2, and everything loads. How to outsmart Win7 and its flawed bootloader (bootmgr)?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
M
Michael Galyuk, 2014-09-05
@robux

Problem solved. I share my experience.
I clone all OSes (Linux, WinXP, Win7) through *.tar.gz archives, booting into Linux from a flash drive.
Sitting and talking all day long with the masters, spending like a monkey for 2 hours on a computer - somehow it doesn’t shoot for me. In addition, all programs are already installed in ready-made images - offices, viewers, settings for the working environment, and so on.
1.Linux.
With Linux, the easiest thing is - it is not tied to hardware.
Pack folders ./tar_root.sh:

#!/bin/sh
cd /
tar --ignore-failed-read --exclude=var/cache/apt -czvf lubuntu1204.tgz bin boot etc home lib opt root run sbin usr var

Then you unpack, put grub and you're done (script below).
2. WinXP
Piggy is easy to "untie" from hardware: boot in Safe Mode (using F8 at the very beginning), go to "Device Manager", delete everything related to the chip (for example, "Intel 45111"), hard turn off the computer by PULLING THE CORD power from the asshole, boot into Linux, edit the C:\Boot.ini file:
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP disk 1 part 1" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows XP disk 2 part 1" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP disk 1 part 2" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="Windows XP disk 2 part 2" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional Multiprocessor PC"  /fastdetect /noexecute=alwaysoff /hal=halmacpi.dll /kernel=ntkrnlmp.exe
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional"  /fastdetect /noexecute=alwaysoff /detecthal
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Multiprocessor PC with MPS"  /fastdetect /noexecute=alwaysoff /hal=halmps.dll /kernel=ntkrnlmp.exe

and pack the whole thing ./tar_win.sh:
#!/bin/sh
cd /mnt/win
tar --ignore-failed-read --exclude=Windows/Temp -czvf winxp.tar.gz WINDOWS "Documents and Settings" "Program Files" AUTOEXEC.BAT Bootfont.bin CONFIG.SYS IO.SYS MSDOS.SYS NTBOOTDD.SYS NTDETECT.COM boot.ini ntldr

You unpack on a new machine from under Linux, update rude:
and you're done.
3. Windows 7
Similar to WinXP, but in safe mode, BEFORE removing chipsets from Device Manager, you need to CHANGE THE REGISTRY (run regedit) to avoid the blue screen BSOD 0x0000007B, I quote the source :
The first step is to delete the HKLM\SYSTEM\MountedDevices registry branch.
Now you need to enable the launch of services that load standard IDE and SATA controller drivers.
Open the HKLM\SYSTEM\CurrentControlSet\services branch on the left side of the registry editor. Now check the following sections in this thread: amdide, amdsata, amdxata, atapi, intelide, msahci, pciide. The Start parameter for each must be equal to 0x00000000 (0). Value Start=0 - start the service when Windows boots. If it is equal to 0x00000003 (3), double-click on the parameter name (Start) and change the value to 0 (figure below) and click OK.
After start is set to 0 for all the above registry keys, close the registry editor and restart the computer in normal mode. In most cases, this is enough ...
If the steps taken did not help and Windows 7 still does not boot and gives a STOP 0x0000007b error, then the necessary controller driver is not loaded. Let's try to enable the loading of all drivers known to the operating system.
To do this, set the value of the Start parameter to 0 in the following services: adp94xx, adpahci, adpu320, aic78xx, amdsbs, arc, arcsas, elxstor, HpSAMD, iaStorV, iirsp, LSI_FC, LSI_SAS, LSI_SAS2, LSI_SCSI, megasas, MegaSR, nfrd960, nvraid, nvstor, ql2300, ql40xx, SiSRaid2, SiSRaid4, vhdmp, vsmraid, aliide, cmdide, nvraid, viaide.

I included the first bundle of services, and from the second - only those ending in *ide.
Then we also hard cut down the power supply of the system unit, boot into Linux, PUT C: \ Boot \ BCD, supplemented with EasyBCD and corrected through VisualBCDEditor, we pack all this junk ./tar_win7.sh:
#!/bin/sh

cd /mnt/win
tar --ignore-failed-read --exclude=var/cache/apt -czvf /mnt/data/Distr/Win7_x32.Gor.emp3.delink.tar.gz bootmgr \
  config.sys XELDZ autoexec.bat BOOTSECT.BAK Boot Windows Recovery "Program Files" ProgramData \
  "Documents and Settings" Users PerfLogs Progs

We unpack (like Piggy) on another computer, run update-grub and replace the line in the /boot/grub/grub.cfg file:
chainloader +1
with:
With the first option, Windows7 is not loaded on all machines.
Right now, I put Linux (Lubuntu), Grub2 and Windows everywhere at the request of the user. I do everything through the ./install.sh script, after adjusting the paths of disks and folders:
#!/bin/sh

INST_DEV=/dev/sdb1
INST_MNT=/mnt/vdorogu

BOOT_DISK=/dev/sda

LIN_DEV=/dev/sda3
LIN_MNT=/mnt/root

WIN_DEV=/dev/sda1
WIN_MNT=/mnt/win

## For Ext4
#tune2fs -o journal_data_writeback $LIN_DEV
#tune2fs -O ^has_journal $LIN_DEV
#e2fsck -f $LIN_DEV

## === Mount parts

#mkdir $INST_MNT
#mount $INST_DEV $INST_MNT
#mkdir $LIN_MNT
#mount $LIN_DEV $LIN_MNT
#mkdir $WIN_MNT
#mount $WIN_DEV $WIN_MNT

## === Install Linux

cd $INST_MNT

tar xvzfk ./iso/lubuntu1204.tar.gz -C $LIN_MNT

cd $LIN_MNT

mkdir cdrom
mkdir dev
mkdir media
mkdir mnt
mkdir mnt/win
mkdir proc
mkdir sys
mkdir tmp

chmod 777 tmp
chmod 777 home

grub-install --root-directory=$LIN_MNT $BOOT_DISK
mount --bind /dev $LIN_MNT/dev
mount --bind /proc $LIN_MNT/proc
mount --bind /sys $LIN_MNT/sys

chroot $LIN_MNT grub-install --recheck --no-floppy $BOOT_DISK
chroot $LIN_MNT update-grub

umount $LIN_MNT/dev
umount $LIN_MNT/proc
umount $LIN_MNT/sys

## === Install Windows

cd $INST_MNT

tar xvzf ./iso/winxp3sp3dnet.tar.gz -C $WIN_MNT
#tar xvzf ./iso/win7gor32.tar.gz -C $WIN_MNT

# === Edit fstab

nano $LIN_MNT/etc/fstab

A lot of time is saved, especially useful if you need to quickly restore the system.
Any OS is installed in 5 minutes (archive unpacking) without monkey actions.

F
FreeManOfPeace, 2014-09-02
@FreeManOfPeace

I came across a similar one, it was necessary to deploy one Windows (7 Pro) and programs on 14 machines (with group policies and all that, since the locale in our school left much to be desired), to transfer the Acronis LiveCD (we have everything for piracy in general I don’t give a damn because Belarus) and there were no problems on some of the machines, but on the same part, the bootloader restored using the appropriate function on the disk with Windows, which determines whether there will be problems with the transfer or not, it is not clear since the machines were with the same hardware and the same partitioning of the disk (before cloning, I partitioned the disk into 3 partitions from under the disk with Debian)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question