Windows setzt das Boot-Flag um

Registriert
Juni 2010
Beiträge
181
Ich habe auf einer Partition Windows 7 installiert und auf einer anderen Linux. Ursprünglich saß das Boot-Flag auf der Windows-Partition. Dann habe ich das Boot-Flag umgesetzt und Linux installiert. In der Linux-Partition habe ich dann Grub installiert und im Bootmenü sowohl Windows als auch Linux verfügbar gemacht als Auswahlpunkte. Starte ich so Linux läuft alles glatt. Starte ich so aber Windows, läuft auch erst einmal alles glatt. Nur beim nächsten Neustart dann nicht mehr. Dann startet Windows einfach durch und von meinem Grub-Loader bekomme ich überhaupt nichts mehr zu sehen. Windows hat einfach das Boot-Flag wieder zurück auf seine Partition gesetzt. Wie kann ich das denn abstellen? Ich will ja nicht jedesmal per Boot-CD das Boot-Flag wieder per Hand umsetzen, nur um einmal Linux zu starten. Wie kann ich also Windows diese lästige Eigenheit abgewöhnen? Wie ist das Problem nur in den Griff zu bekommen? - Auf 'nem anderen Rechner habe ich das schon einmal geschafft. Nur auf dem hier noch nicht und ich kann mich nicht so recht erinnern, wie das gehen soll. Irgendwelche Vorschläge? Auf dem anderen Rechner, auf dem es schon einmal geklappt hat, war es auch nicht nötig, irgend 'nen anderen Loader zu installieren oder sowas. Da stehen auch nur die gleichen Optionen wie hier zur Verfügung: ein Grub-Loader in der Linux-Boot-Partition / oder einer Linux-Partition um das mal so auszudrücken. Der einzige Unterschied zwischen diesem Rechner und dem alten ist die Reihenfolge der Windows- und Linux-Partitionen. Da Windows und Linux auf dem neuen Rechner aber schon gut stehen, habe ich da keine sonderliche Lust, da noch mal von vorne anfangen zu müssen. Ausserdem wüsste ich jetzt nicht genau was ich da anders machen müsste und dann könnte es durchaus noch passieren, dass ich nach 'ner Heiden-Arbeit wieder genauso dastehe wie jetzt. Also am sinnvollsten erscheint es mir da einfach in Erfahrung zu bringen, wie ich Windows diese lästige Angewohnheit mit dem Boot-Flag zurücksetzen irgendwie wieder abgewöhnen kann. Hat da vielleicht irgendjemand eine Idee?
 
Wie wärs einfach mit windows als main os und dann z.B. oracle VM VirtualBox mit linux drauf?
Wäre dass denn nicht einfacher als eine partition mit windows und einer partition mit linux?
Ich habe win als os und dann virtualbox mit debian drauf(oder drunter) und dass läuft prima
 
Das entspricht nicht so ganz meiner Vorstellung. Da ist man immer noch in irgendeiner Weise mit Windows online. Außerdem ist da die Frage, ob die Linux-3D-Effekte noch so funktionieren wie sollen. Nö, der Punkt, warum ich das nicht so mache, obwohl das gar kein so abwegiger Gedanke ist, ist dass mir die Daten auf der Windows-Partition einfach zu wichtig sind, um sie in irgendeiner Weise "einer Gefahr auszusetzen" - sprich mit dem Windows online zu gehen. Da können die wegkommen oder sich vervielfältigen oder weiß der Geier was. Kapiesch?
Außerdem löst das ja nicht das grundsätzliche Problem. Es geht ja im Grunde genommen nur um ein popeliges Boot-Flag. Da brauche ich doch nicht zu rechtfertigen, warum ich das so mache. Das ist doch ein technischer Fehler sozusagen. Windows hat regulär nicht irgendwelche Boot-Flags umzusetzen! Da brauch' ich mich doch bei meinen Installationen nicht drum zu kümmern. Das ist doch ein Fehler in Windows - oder eben eine Sabotage-Routine die sich gegen andere Betriebssysteme / Bootloader wendet. Richtig ist das aber nicht. Jedenfalls nicht so. Windows kann ja auch über Grub gestartet werden. Da braucht kein Boot-Flag auf der Windows-Partition zu liegen. Basta!
 
vielleicht überwachungskameras und wachschutz einstellen.
was funkt den windows von deinen daten so schön ins netz?
ach so! weist du garnicht!
ich sags dir-> nichts!
 
Moin,

wo hast DU denn Grub installiert ? In der Linux-Partition (z.B. /dev/sda2) oder direkt im MBR der Bootplatte (/dev/sda) ?

In ersterm Fall ist das völlig normal, was Windows macht. Solltest Du Grub aber im MBR installiert haben, dann läuft das was gehörig schief. Das umsetzen des Boot-Flags sollte meiner Meinung nach aber auch aus dem installierten Windows heraus in Diskpart funktionieren. Da brauchst Du keine Boot-CD für.
 
Ja, ich habe wohl einmal zu viel gesehen, wie sich eine Firewall ohne mein Zutun deaktiviert. - Glaub' mir, dann bringt dich nichts mehr dazu, mit Windows zu surfen. Aber das ist ja nicht das Thema. Na klar wäre es praktisch usw. Diese Umständlichkeit geht mir ja selbst auf den Wecker, aber ich habe mich nun einmal so entschieden. Auf der anderen Platte geht's ja auch. Nur weiß ich eben nicht mehr, wie oder wieso. Jedesmal dieser Stress mit Parallelinstallationen!
Ergänzung ()

Das mit dem Diskpart in Windows hört sich ja mal vernünftig an. Wenn ich mit Windows selbst das Boot-Flag umsetze, dann kann es das ja nicht einfach so wieder von sich aus auf irgendwas anderes umsetzen. Das werd' ich dann gleich mal probieren. Grub habe ich in einer der Linux-Partitionen installiert. (Die mit "/".) Wieso ist das denn völlig normal, wenn Windows das macht? Beim normalen Betrieb einfach mal das Boot-Flag unaufgefordert und ohne guten Grund umzusetzen, gehört für mich nicht zu dem, was ich mir von einem Betriebssystem wünsche/erwarte.
 
Windows erwartet nun mal, dass die Partition, von der gebootet wird, auch das Boot-Flag gesetzt hat. Ansonsten ist das ein Fehler, den es korrigiert.

Wenn Grub im MBR installiert ist, dann lädt er den Rest automatisch aus der Linux Partition, in der der Rest seiner Binaries steht, unabhängig vom Boot-Flag. Und je nach ausgewähltem BS setzt Grub dann das Boot-Flag für die entsprechende Partition und lädt dann Windows (per Chainloader) oder Linux (per init).

Du kannst Grub auch nachträglich noch in den MBR installieren: "grub-install /dev/sda". Das /dev/sda musst Du natürlich durch das Device ersetzen, das Deine Boot-Platte darstellt.
 
So, das funktioniert alles nicht und den MBR lasse ich extra frei, weil da später -wie schon auf der anderen Platte- noch was anderes hinkommt. Also über die Datenträgerverwaltung ist da erst einmal kein Blumentopf zu gewinnen, weil bei Linux-Partitionen die Option "Datenträger als aktiv markieren" grau hinterlegt ist und somit nicht ausgewählt werden kann. So, und "diskpart" (wusste gar nicht, dass es das/sowas noch gibt), das habe ich nach ein paar Startschwierigkeit mit dem "select"-Befehl dazu gebracht, die Linux-Boot-Partition als aktiv zu markieren. Nur hat das nicht viel geholfen. Beim nächsten Neustart kam dann nämlich erst Grub, dann Windows, und dann eine Fehlermeldung mit irgendwas "/boot/bcd" und bitte legen Sie die Windows-DVD für eine Reparatur beim nächsten Neustart ein usw. Wie ich jetzt weiß (weil ich's 2x probiert habe), ist das gar nicht notwendig. Beim nächsten Neustart erscheint brav Windows ohne irgendein Grub. Failed again! Langsam fühle ich mich echt angenervt von dem Problem. Kann es nicht einfach einfach sein? und funktionieren z.B.?
 
Hallo,
dein Problem lässt sich für mich überhaupt nicht nachvollziehen.
Ich habe auf einer SSD vier Partitionen: sda3 und sda4 mit Win7 und sda1 und sda2 mit
Ubuntu.
Windows musste wegen seiner Arroganz als erstes installiert werden, danach Ubuntu.
Grub wird von Ubuntu völlig selbständig während der Installation eingerichtet und
startet als erstes von "/" (sda1) oder eben von sda3/Win7, wenn ich es beim Booten
auswähle.
Umstellen lässt sich die Bootreihenfolge bequem mit dem Startup-Manager unter
Ubuntu (installierbar aus den Paketquellen - zu finden dann unter System/Systemverwaltung).
Um irgendwelche Bootflags oder sonstwas habe ich mich noch nie kümmern müssen.
Ansonsten siehe Balou72
 
Zuletzt bearbeitet:
Balou72 schrieb:
Windows erwartet nun mal, dass die Partition, von der gebootet wird, auch das Boot-Flag gesetzt hat. Ansonsten ist das ein Fehler, den es korrigiert.
Stimmt so ja nicht ganz. Auf meinem alten System ist das ja aller Widrigkeiten zum Trotz nicht der Fall. Da korrigiert Windows das Boot-Flag auch nicht, obwohl über Grub von einer anderen Partition aus gebootet wird. Ach, langsam wird's echt langweilig. Blödes Thema. Ja, ihr Redmonder, was soll denn das? Wollt ihr mir den letzten Nerv rauben, oder was habt ihr euch dabei gedacht? Ist das irgendein Schutz gegen Viren oder wollt ihr die "customer" wirklich nur bis zum Erbrechen ärgern? - Ich versteh' hier irgendwas nicht. So ein Müll nervt ganz einfach nur! Ein Betriebssystem hat nunmal nicht mir-nichts-dir-nichts irgendwelche Boot-Flags einfach mal so umzusetzen! Das ist der totale Nonsense!
 
@Apfelring:
meinst du nicht, das es etwas Sinnfrei ist, auf einem unsicheren BS eine virtuelle Maschine
mit einem sicheren BS einzurichten- auch wenn es gut läuft?
Ich habe unter Ubuntu noch WinXP mit Virtualbox, nur wegen des von Sane leider nicht
unterstützten Scanners, den ich nicht ausmustern will.
Aber unter Win7 mit Ubuntu zu arbeiten- wüsste nicht, welchen Sinn das macht.
Aber du bist nicht alleine: am WE hat die PC-Welt.de allen Ernstes vorgeschlagen, sich für's
Online-Banking Ubuntu unter Windows einzurichten.
Dümmer geht's nimmer...
 
Das Problem ist gelöst!

Das Problem liegt nicht bei oder in Windows, sondern bei Grub! /bzw. der Grub-Konfiguration.
Da wird nämlich bei meinem Linux von der Automatik ein Konfigurations-File erstellt, das überflüssige Befehle enthält, die dann zu den ganzen oben benannten Fehlern führen - allen voran das Umsetzen des Boot-Flags. Windows trägt also mal keine Schuld. Die bewusste Datei ist "/boot/grub/menu.lst" Um die zu öffnen braucht man Adminitratoren-Rechte. Ich mache das über die Admin-Kommandozeile und dann mit Kwrite. (Eingefleischte Linuxer dürften sich jetzt gerade an den Kopf greifen.) Also in der Windows-Sektion dürfen bei mir nur 2 Zeilen stehen: root (bla,bla) und chainloader +bla. Die Datei speichere ich dann und führe die Bootloader-Installation unter Linux noch mal aus. Dann wird Grub mit den richtigen Parametern installiert und fertig ist der Lack!

Nicht Windows setzt das Boot-Flag um, sondern Grub!

und zwar mit dem Befehl "makeactive", der sich aus unerfindlichen Gründen in die Windows-Sektion des Grub-Konfigurationsfiles findet. Bei einem gerade erst neu installierten Linux wohlgemerkt. Dann gibt es da noch 2 weitere Zeilen, die Ärger machen und da auch nicht hingehören: "map (bla) (blub)" und nochmal "map (blub) (bla)". Dann läuft auch gar nichts und Windows startet nicht. Nochmal alles zusammengefasst:

/boot/grub/menu.lst

Windows 7
root (bla,bla)
chainloader +bla
map (bla) (blub)
map (blub) (bla)
makeactive


Die letzten 3 Zeilen gehören nicht dahin. Die hat die Automatik fälschlicherweise angelegt. Werden die entfernt und Grub dann neu installiert, dann geht es! - Hurra! Geschafft!
 
Hallo Künstler,
mit was für einer Distri arbeitest du? die "menu.lst" gibt es unter Ubuntu nicht(mehr).
Sie heisst jetzt "grub.cfg" und daran zu basteln wird dringend nicht empfohlen.
Bei mir sieht sie aus wie folgt:


# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
insmod vbe
insmod vga
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set a5aad8a0-4306-4375-8a4d-5e3da08a65a5
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640x480
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set a5aad8a0-4306-4375-8a4d-5e3da08a65a5
set locale_dir=($root)/boot/grub/locale
set lang=de
insmod gettext
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=2
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.35-29-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set a5aad8a0-4306-4375-8a4d-5e3da08a65a5
linux /boot/vmlinuz-2.6.35-29-generic root=UUID=a5aad8a0-4306-4375-8a4d-5e3da08a65a5 ro quiet quiet splash
initrd /boot/initrd.img-2.6.35-29-generic
}
menuentry 'Ubuntu, with Linux 2.6.35-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set a5aad8a0-4306-4375-8a4d-5e3da08a65a5
echo 'Loading Linux 2.6.35-29-generic ...'
linux /boot/vmlinuz-2.6.35-29-generic root=UUID=a5aad8a0-4306-4375-8a4d-5e3da08a65a5 ro single quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.35-29-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set a5aad8a0-4306-4375-8a4d-5e3da08a65a5
linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set a5aad8a0-4306-4375-8a4d-5e3da08a65a5
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda3)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set FA3C79A53C795E17
chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###


Basteln musste ich daran noch nie!

Gruss
 
Zurück
Oben