« Отговор #9 -: Oct 31, 2014, 07:21 »
В последно време се заяждаш с мен, не приемай това за отмъщение, защото, ако съм целял флейм, щях да ти отговоря подобаващо още в съответните теми.
Това няма да работи и причината е много проста. Сега дърт съм и почвам да позабравям теорията, но съм почти сигурен, че grub го водеха два паса и половина.
Какво ще рече това? От много, много години 512 байта не са достатъчни за задачите, които поставяме на зареждащата програма. За съжаление основната входно-изходна система е част от печалната ДОС. Това ще рече, че търси именно в нулевият сектор нещо, на което да подаде управлението, а Линукс пък е досифицирано ядро и приема разделението на диска на четири главни дяла. За да се избегне това тясно място, типично в стила на индустрията, се прилагат хакове.
Схемата е следната. В първите петстотин и дванадесет байта се слага само една мъничка част от зареждащата програма, която посочва от къде да се продължи зареждането. Понеже grub е най-мощната от наличните системи, той доста умен, може да чете файлови системи и да пребори почти всякакви ограничения. Но това в момента не е важното. Важното е, че в тези петстотин и дванадесет байта има код, който да разпознае следващият дял, да определи подходящият каталог и да предаде управлението по веригата.
Така че, ако grub е в master boot record, сиреч главният зареждащ запис, то твоята схема ще работи само, ако се използва на същият компютър и резултата ще е, че ще подаде зареждането на grub от твърдият диск. Но най-вероятно дори това няма да се случи, защото ще открие, че мястото от където зарежда не е същото, което търси, ще се паникьоса и ще увисне на надписа grub.
Това разбира се е добрият момент. Ако в mbr се намира нещото от онази ужасна ОС, дори аз не се наемам да предвидя, какъв ще е резултата.
Да дърт съм да го Ева и помня времената, когато това работеше. Но работеше, защото там се намираше зареждащият модул на ДОС, който е в един пас. Това ще рече, че той беше не по-умен от bios. Просто намираше къде започва първият възможен главен дял и изпълняваше кода, който се намира там.
п.п. В Lilo това пак не би сработило, защото той е двупасов.