Най-накрая ми дойде мерак да пиша. Темата по неволя пак е техническа, че ако захвана да чеша Михов Миков, Яне Янев и новия избирателен закон, край няма да има.
Последните два дена човъркам VMware Workstation. Резултатът е нещо като dual-boot машина, само че Windows (въздъх) се пуска директно от неговия си дял. Предимства:
- леко повишено бързодействие;
- няма нужда една и съща информация да се дублира;
- ако все пак се наложи, Windows може да бъде зареден по обичайния начин.
Недостатъци:
- VMware трябва да се пусне с root привилегии, или
- използващите го потребители да бъдат добавени в групата disk, или
- дялът, на който е инсталиран Windows, да бъде прехвърлен в друга (нова) група, а потребителите да станат нейни членове.
Тукашният подход е вторият, въпреки очевидните му недостатъци. Доколкото компютърът се използва само от един човек, това не представлява проблем. Вероятно най-добър от гледна точка на сигурността е третият (и най-неестетичен). Предполагам, че SELinux може да се настрои така, че да ограничава достъпа само до някои операции с диска. This is left as an exercise for the reader, при наличието на търпение.
Процедура:
- Създава се нова виртуална машина. Когато стигнете до секцията Disk, изберете Use physical disk, после съответното устройство (/dev/[hs]dX), Use individual partitions и накрая дяла, където е инсталиран Windows.
- dd if=/dev/zero of=bootdisk.img bs=512 count=2880
- mkfs.msdos bootdisk.img
- losetup /dev/loopX bootdisk.img
- mount /dev/loopX /mnt
- mkdir -p /mnt/boot/grub
- cp /boot/grub/stage? grub.conf /mnt/boot/grub
- grub
> device (fd0) /dev/loopX
> root (fd0)
> setup (fd0)
- umount /mnt
- losetup -d /dev/loopX
grub.conf съдържа примерно
default 0
timeout 0
hiddenmenu
title Windows XP
rootnoverify (hd0,X)
chainloader +1
clear
Преместете bootdisk.img в директорията, където VMware съхранява конфигурацията на Windows. После Edit virtual machine settings → Floppy → Use a floppy image, въвеждате пътя до bootdisk.img, отмятате Read-only и Connect at power on. Така се избягва неприятната ситуация VMware да ползва MBR на твърдия диск (само пробвайте да заредите Linux оттам и гледайте какво става). Рестартирайте в Windows и създайте нов хардуерен профил (Control Panel → System → Hardware → Hardware profiles). Пак рестартитайте, заредете Linux, пуснете Windows през VMware и в началото изберете новия профил. Така всички промени в хардуера ще бъдат валидни само за въпросния профил и Windows ще се зарежда нормално, когато го стартирате вместо Linux.
Сега интересната част — след като Windows зареди безпроблемно, инсталираме Truecrypt и криптираме системния дял. Инсталацията е елементарна, важният момент е когато програмата изплюе нещо за Pretest ала-бала. В този момент MBR е презаписан и Truecrypt очаква при следващия рестарт да тръгне неговия boot manager. Това е тънкият момент — възстановяваме GRUB, но запазваме новия MBR.
dd if=/dev/[hs]dX of=tc.mbr bs=512 count=1
dd if=/boot/grub/stage1 of=/dev/[hs]dX bs=512 count=1
За да тръгне сега Windows, grub.conf от bootdisk.img се променя примерно тъй:
default 0
timeout 0
hiddenmenu
title Windows XP
rootnoverify (hd0,X)
chainloader (fd0)/boot/grub/tc.mbr
clear
и tc.mbr се копира в /boot/grub на bootdisk.img по горната схема. Рестарт и всичко си отива на мястото.
17.IV.2009 г.
Забравих да отбележа — в системния (Linux-кия) /boot/grub/grub.conf се добавя
title Windows XP
rootnoverify (hd0,X)
chainloader (hd0,Y)/boot/grub/tc.mbr
clear
(hd0,Y) е дялът, където е /boot директорията на Linux.