http://berklix.com/~jhs/src/bsd/fixes/freebsd/ports/jhs/sysutils/ntfsprogs/files/README.JHS The URL above is temporary, The notes below are temporarily here until I do more work & decide { where to move this, & whether better to post re@ or hackers@ or use multiple send-pr for src & ports & release } to add ntfsresize tools to install & livefs.iso media, Meantime, see also http://berklix.com/~jhs/txt/install_bsd.html ------------------------------------------------------------------------------- Log/ Example of how to shrink /dev/ad4s1 MBR slice that had all 500G of a disc, with just one NTFS of XP Home V2002 Service Pack 3, into a slice of just 30G for NTFS, + 2 x 15G slices for bootable BSD versions + Remaining common data. /dev/ad6 holds a previously installed FreeBSD-8.1 as the base to work from. Backup: (cd /ntfs;tar cf - . )|( cd /ad6s4/ntfs ; tar xf - ); umount /ntfs Check sizes of physical disks: dmesg: ad4: 476938MB at ata2-master UDMA100 SATA ad4: 976771055 sectors [969018C/16H/63S] 16 sectors /interrupt 1 depth queue Look at numbers Microsoft installed itself with: fdisk /dev/ad4 ******* Working on device /dev/ad4 ******* parameters extracted from in-core disklabel are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 7 (0x07),(NTFS, OS/2 HPFS, QNX-2 (16 bit) or Advanced UNIX) start 63, size 976768002 (476937 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 1023/ head 254/ sector 63 The data for partition 2 is: The data for partition 3 is: The data for partition 4 is: Do some arithmatic: dc 976771055 512 * p 500106780160 So dmesg sectors are 512 bytes. 976771055 976768002 - p 3053 3053 63 - 512 * p 1530880 63 + probably cylinder alignement at end, not big enough for suspend, prob not enough for recovery config 976768002 512 * p 500105217024 # fdisk s1 476937 1024 1024 * * p 500104691712 # fdisk M is 1024*1024 not 10^6 29999993344 512 / p 58593737 # sectors in my new 30 G MS ntfsresize comes from /usr/ports/sysutils/ntfsprogs ntfsresize --info /dev/ad4s1 ntfsresize v2.0.0 (libntfs 10:0:0) Device name : /dev/ad4s1 NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 500105216512 bytes (500106 MB) Current device size: 500105217024 bytes (500106 MB) Checking filesystem consistency ... 100.00 percent completed Accounting clusters ... Cluster accounting failed at 1950 (0x79e): missing cluster in $Bitmap Cluster accounting failed at 189158 (0x2e2e6): extra cluster in $Bitmap Cluster accounting failed at 189159 (0x2e2e7): extra cluster in $Bitmap Filesystem check failed! Totally 3 cluster accounting mismatches. ERROR: NTFS is inconsistent. Run chkdsk /f on Windows then reboot it TWICE! The usage of the /f parameter is very IMPORTANT! No modification was and will be made to NTFS by this software until it gets repaired. ntfsfix comes from /usr/ports/sysutils/ntfsprogs ntfsfix /dev/ad4s1 Mounting volume... FAILED Attempting to correct errors... Processing $MFT and $MFTMirr... Reading $MFT... OK Reading $MFTMirr... OK Comparing $MFTMirr to $MFT... OK Processing of $MFT and $MFTMirr completed successfully. Setting required flags on partition... OK Going to empty the journal ($LogFile)... OK NTFS volume version is 3.1. NTFS partition /dev/ad4s1 was processed successfully. ntfsfix /dev/ad4s1 Mounting volume... OK Processing of $MFT and $MFTMirr completed successfully. NTFS volume version is 3.1. NTFS partition /dev/ad4s1 was processed successfully. ntfsresize --info /dev/ad4s1 ntfsresize v2.0.0 (libntfs 10:0:0) ERROR: Volume is scheduled for check. Run chkdsk /f and please try again, or see option -f. boot MS XP Home watch chkdsk with blue background find & run command.com chksdk c: /f It refuses, Says in use, Offers to flag for next reboot, Accept, Reboot MS. Boot bsd 8.1-Release umount /dev/ad4s1 ntfsresize -n /dev/ad4s1 ntfsresize v2.0.0 (libntfs 10:0:0) Device name : /dev/ad4s1 NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 500105216512 bytes (500106 MB) Current device size: 500105217024 bytes (500106 MB) Checking filesystem consistency ... 100.00 percent completed Accounting clusters ... Space in use : 14263 MB (2.9%) Collecting resizing constraints ... You might resize at 14262378496 bytes or 14263 MB (freeing 485843 MB). Please make a test run using both the -n and -s options before real resizing! ntfsresize -n -s 30G /dev/ad4s1 ntfsresize v2.0.0 (libntfs 10:0:0) Device name : /dev/ad4s1 NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 500105216512 bytes (500106 MB) Current device size: 500105217024 bytes (500106 MB) New volume size : 29999993344 bytes (30000 MB) Checking filesystem consistency ... 100.00 percent completed Accounting clusters ... Space in use : 14263 MB (2.9%) Collecting resizing constraints ... Needed relocations : 2716051 (11125 MB) Schedule chkdsk for NTFS consistency check at Windows boot time ... Resetting $LogFile ... (this might take a while) Relocating needed data ... 100.00 percent completed Updating $BadClust file ... Updating $Bitmap file ... Updating Boot record ... The read-only test run ended successfully. ntfsresize -s 30G /dev/ad4s1 ntfsresize v2.0.0 (libntfs 10:0:0) Device name : /dev/ad4s1 NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 500105216512 bytes (500106 MB) Current device size: 500105217024 bytes (500106 MB) New volume size : 29999993344 bytes (30000 MB) Checking filesystem consistency ... 100.00 percent completed Accounting clusters ... Space in use : 14263 MB (2.9%) Collecting resizing constraints ... Needed relocations : 2716051 (11125 MB) WARNING: Every sanity check passed and only the dangerous operations left. Make sure that important data has been backed up! Power outage or computer crash may result major data loss! Are you sure you want to proceed (y/[n])? y Schedule chkdsk for NTFS consistency check at Windows boot time ... Resetting $LogFile ... (this might take a while) Relocating needed data ... 100.00 percent completed Updating $BadClust file ... Updating $Bitmap file ... Updating Boot record ... Syncing device ... Successfully resized NTFS on device '/dev/ad4s1'. You can go on to shrink the device for example with Linux fdisk. IMPORTANT: When recreating the partition, make sure that you 1) create it at the same disk sector (use sector as the unit!) 2) create it with the same partition type (usually 7, HPFS/NTFS) 3) do not make it smaller than the new NTFS filesystem size 4) set the bootable flag for the partition if it existed before Otherwise you won't be able to access NTFS or can't boot from the disk! If you make a mistake and don't have a partition table backup then you can recover the partition table by TestDisk or Parted's rescue mode. BIOS Set boot=ad4 boot MS XP Home watch chkdsk with blue background, watch MS reboot itself So MS partition still OK BIOS Set boot=ad6 Boot BSD fdisk -p /dev/ad4 # /dev/ad4 g c969018 h16 s63 p 1 0x07 63 976768002 a 1 fdisk -s /dev/ad4 /dev/ad4: 969018 cyl 16 hd 63 sec Part Start Size Type Flags 1: 63 976768002 0x07 0x80 fdisk -s /dev/ad6 /dev/ad6: 969021 cyl 16 hd 63 sec Part Start Size Type Flags 1: 63 30719745 0xa5 0x00 2: 30719808 30719808 0xa5 0x80 3: 61439616 30719808 0xa5 0x00 4: 92159424 884613744 0xa5 0x00 fdisk -t -u /dev/ad4 ******* Working on device /dev/ad4 ******* parameters extracted from in-core disklabel are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Do you want to change our idea of what BIOS thinks ? [n] Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 7 (0x07),(NTFS, OS/2 HPFS, QNX-2 (16 bit) or Advanced UNIX) start 63, size 976768002 (476937 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 1023/ head 254/ sector 63 Do you want to change it? [n] y Supply a decimal value for "sysid (165=FreeBSD)" [7] Supply a decimal value for "start" [63] Supply a decimal value for "size" [976768002] 58593737 fdisk: WARNING: partition does not end on a cylinder boundary fdisk: WARNING: this may confuse the BIOS or some operating systems Correct this automatically? [n] y fdisk: WARNING: adjusting size of partition to 58592961 ^C dc 16 63 * p 1008 58593737 1008 + p 58594745 fdisk repeat Supply a decimal value for "size" [976768002] 58594745 fdisk: WARNING: partition does not end on a cylinder boundary fdisk: WARNING: this may confuse the BIOS or some operating systems Correct this automatically? [n] y fdisk: WARNING: adjusting size of partition to 58593969 Explicitly specify beg/end address ? [n] 58593969 is OK, a bit bigger than 58593737 dc 58593969 58593737 - p 232 sysid 7 (0x07),(NTFS, OS/2 HPFS, QNX-2 (16 bit) or Advanced UNIX) start 63, size 58593969 (28610 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 784/ head 15/ sector 63 Are we happy with this entry? [n] y The data for partition 2 is: Do you want to change it? [n] y Supply a decimal value for "sysid (165=FreeBSD)" [0] 165 Supply a decimal value for "start" [0] dc 63 58593969 + p 58594032 Supply a decimal value for "start" [0] 58594032 Supply a decimal value for "size" [0] 30719808 Same size, (a multiple of 63) as ad6s2 & ad6s3 Explicitly specify beg/end address ? [n] sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 58594032, size 30719808 (14999 Meg), flag 0 beg: cyl 785/ head 0/ sector 1; end: cyl 540/ head 15/ sector 63 Are we happy with this entry? [n] y The data for partition 3 is: Do you want to change it? [n] y Supply a decimal value for "sysid (165=FreeBSD)" [0] 165 Supply a decimal value for "start" [0] dc 58594032 30719808 + p 89313840 Supply a decimal value for "start" [0] 89313840 Supply a decimal value for "size" [0] 30719808 Explicitly specify beg/end address ? [n] sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 89313840, size 30719808 (14999 Meg), flag 0 beg: cyl 541/ head 0/ sector 1; end: cyl 296/ head 15/ sector 63 Are we happy with this entry? [n] y The data for partition 4 is: Do you want to change it? [n] y Supply a decimal value for "sysid (165=FreeBSD)" [0] 165 Supply a decimal value for "start" [0] dc 89313840 30719808 + p 120033648 Supply a decimal value for "start" [0] 120033648 Supply a decimal value for "size" [0] I want rest of disk, so give old size of s1 & let it calculate Supply a decimal value for "size" [0] 976768002 Eek ! It accepts an impossible value & does Not catch it, dc 120033648 58593969 30719808 30719808 - - - p 61439679 Explicitly specify beg/end address ? [n] sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 120033648, size 976768002 (476937 Meg), flag 0 beg: cyl 297/ head 0/ sector 1; end: cyl 608/ head 13/ sector 63 Are we happy with this entry? [n] n dc 976771055 63 - 58593969 - 30719808 - 30719808 - p 856737407 The data for partition 4 is: Do you want to change it? [n] y Supply a decimal value for "sysid (165=FreeBSD)" [0] 165 Supply a decimal value for "start" [0] 120033648 Supply a decimal value for "size" [0] 856737407 fdisk: WARNING: partition does not end on a cylinder boundary fdisk: WARNING: this may confuse the BIOS or some operating systems Correct this automatically? [n] y fdisk: WARNING: adjusting size of partition to 856736496 Explicitly specify beg/end address ? [n] sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 120033648, size 856736496 (418328 Meg), flag 0 beg: cyl 297/ head 0/ sector 1; end: cyl 313/ head 15/ sector 63 Are we happy with this entry? [n] y Partition 1 is marked active Do you want to change the active partition? [n] n parameters extracted from in-core disklabel are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Information from DOS bootblock is: 1: sysid 7 (0x07),(NTFS, OS/2 HPFS, QNX-2 (16 bit) or Advanced UNIX) start 63, size 58593969 (28610 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 784/ head 15/ sector 63 2: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 58594032, size 30719808 (14999 Meg), flag 0 beg: cyl 785/ head 0/ sector 1; end: cyl 540/ head 15/ sector 63 3: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 89313840, size 30719808 (14999 Meg), flag 0 beg: cyl 541/ head 0/ sector 1; end: cyl 296/ head 15/ sector 63 4: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 120033648, size 856736496 (418328 Meg), flag 0 beg: cyl 297/ head 0/ sector 1; end: cyl 313/ head 15/ sector 63 -t flag specified -- partition table not written. Check dc 63 58593969 + p 58594032 30719808 + p 89313840 30719808 + p 120033648 856736496 + p 976770144 a bit less than 976771055 sysctl kern.geom.debugflags=16 kern.geom.debugflags: 0 -> 16 fdisk -v -u /dev/ad4 ******* Working on device /dev/ad4 ******* parameters extracted from in-core disklabel are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Do you want to change our idea of what BIOS thinks ? [n] n Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 7 (0x07),(NTFS, OS/2 HPFS, QNX-2 (16 bit) or Advanced UNIX) start 63, size 976768002 (476937 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 1023/ head 254/ sector 63 Do you want to change it? [n] y Supply a decimal value for "sysid (165=FreeBSD)" [7] Supply a decimal value for "start" [63] Supply a decimal value for "size" [976768002] 58593969 Explicitly specify beg/end address ? [n] sysid 7 (0x07),(NTFS, OS/2 HPFS, QNX-2 (16 bit) or Advanced UNIX) start 63, size 58593969 (28610 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 784/ head 15/ sector 63 Are we happy with this entry? [n] y The data for partition 2 is: Do you want to change it? [n] y Supply a decimal value for "sysid (165=FreeBSD)" [0] 165 Supply a decimal value for "start" [0] 58594032 Supply a decimal value for "size" [0] 30719808 Explicitly specify beg/end address ? [n] sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 58594032, size 30719808 (14999 Meg), flag 0 beg: cyl 785/ head 0/ sector 1; end: cyl 540/ head 15/ sector 63 Are we happy with this entry? [n] y The data for partition 3 is: Do you want to change it? [n] y Supply a decimal value for "sysid (165=FreeBSD)" [0] 165 Supply a decimal value for "start" [0] 89313840 Supply a decimal value for "size" [0] 30719808 Explicitly specify beg/end address ? [n] sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 89313840, size 30719808 (14999 Meg), flag 0 beg: cyl 541/ head 0/ sector 1; end: cyl 296/ head 15/ sector 63 Are we happy with this entry? [n] y The data for partition 4 is: Do you want to change it? [n] y Supply a decimal value for "sysid (165=FreeBSD)" [0] 165 Supply a decimal value for "start" [0] 120033648 Supply a decimal value for "size" [0] 856736496 Explicitly specify beg/end address ? [n] sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 120033648, size 856736496 (418328 Meg), flag 0 beg: cyl 297/ head 0/ sector 1; end: cyl 313/ head 15/ sector 63 Are we happy with this entry? [n] y Partition 1 is marked active Do you want to change the active partition? [n] We haven't changed the partition table yet. This is your last chance. parameters extracted from in-core disklabel are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=969018 heads=16 sectors/track=63 (1008 blks/cyl) Information from DOS bootblock is: 1: sysid 7 (0x07),(NTFS, OS/2 HPFS, QNX-2 (16 bit) or Advanced UNIX) start 63, size 58593969 (28610 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 784/ head 15/ sector 63 2: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 58594032, size 30719808 (14999 Meg), flag 0 beg: cyl 785/ head 0/ sector 1; end: cyl 540/ head 15/ sector 63 3: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 89313840, size 30719808 (14999 Meg), flag 0 beg: cyl 541/ head 0/ sector 1; end: cyl 296/ head 15/ sector 63 4: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 120033648, size 856736496 (418328 Meg), flag 0 beg: cyl 297/ head 0/ sector 1; end: cyl 313/ head 15/ sector 63 Should we write new partition table? [n] y fdisk: Class not found fdisk -s /dev/ad4 /dev/ad4: 969018 cyl 16 hd 63 sec Part Start Size Type Flags 1: 63 58593969 0x07 0x80 2: 58594032 30719808 0xa5 0x00 3: 89313840 30719808 0xa5 0x00 4: 120033648 856736496 0xa5 0x00 ntfsresize --info /dev/ad4s1 ntfsresize v2.0.0 (libntfs 10:0:0) Device name : /dev/ad4s1 NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 29999993344 bytes (30000 MB) Current device size: 30000112128 bytes (30001 MB) Checking filesystem consistency ... 100.00 percent completed Accounting clusters ... Space in use : 14249 MB (47.5%) Collecting resizing constraints ... You might resize at 14248964096 bytes or 14249 MB (freeing 15751 MB). Please make a test run using both the -n and -s options before real resizing! dc 512 58593969 * p 30000112128 30000112128 29999993344 - p 118784 wasted bytes hardly worth worrying about, but to be pedantic, save it xs umount /ntfs ntfsresize -s 30000112128 /dev/ad4s1 ntfsresize v2.0.0 (libntfs 10:0:0) Device name : /dev/ad4s1 NTFS volume version: 3.1 Cluster size : 4096 bytes Current volume size: 29999993344 bytes (30000 MB) Current device size: 30000112128 bytes (30001 MB) New volume size : 30000108032 bytes (30001 MB) Checking filesystem consistency ... 100.00 percent completed Accounting clusters ... Space in use : 14249 MB (47.5%) Collecting resizing constraints ... WARNING: Every sanity check passed and only the dangerous operations left. Make sure that important data has been backed up! Power outage or computer crash may result major data loss! Are you sure you want to proceed (y/[n])? y Schedule chkdsk for NTFS consistency check at Windows boot time ... Resetting $LogFile ... (this might take a while) Updating $BadClust file ... Updating $Bitmap file ... Updating Boot record ... Syncing device ... Successfully resized NTFS on device '/dev/ad4s1'. xs ntfsresize --info /dev/ad4s1 ntfsresize v2.0.0 (libntfs 10:0:0) ERROR: Volume is scheduled for check. Run chkdsk /f and please try again, or see option -f. Boot MS, watch it chkdsk & reboot Boot BSD Clone current BSD slice on ad6s2 to /dev/ad4s2 fdisk /dev/ad6 fdisk /dev/ad4 both are size size 30719808 (14999 Meg) dd if=/dev/ad6s2 of=/dev/ad4s2 Problem: If I switch BIOS from Boot ad6 to boot ad4, then it always boots MS off F1, despite setting F2 active. Suggestions to hack /usr/src/sbin/fdisk/fdisk.c: Fdisk (for S1, S2, S3, but not S4) should round up a cylinder group, not down, otherwise if you say Yes, it creates a slic smaller than ntfsresize has created. Fdisk for S4 should automatically calculate a size for the remainder of the disk. (which Ive seen it do sometimes, so why not this time I don't know. Suggestions to hack ntfsresize: It could suggest rounding to a cylinder group (it could take code from fdisk.c to find what a cylinder group is (1008 in example above). Maybe NTFS doesnt Need cylinder group alignement, I don't know, but it could help if it suggested a value. Suggestion To write: send-pr to ref. ntfsresize in http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/install-pre.html Interim note sent to ken & re. 2011-03-03: 8.2-RELEASE media written to DVD-RW#15 Using /dev/cd0 external 9G dual layer drive Both Internal drives fail to read dvd-rw#15. dd if=/dev/acd0 bs=32k of=FreeBSD-8.2-RELEASE-amd64-dvd1.host=blak,drive=acd0.bs=32k.iso dd if=/dev/acd1 bs=32k of=FreeBSD-8.2-RELEASE-amd64-dvd1.host=blak,drive=acd1.bs=32k.iso dd: /dev/acd[01]: Input/output error Data verified on same drive I burnt with External starts to read dd if=/dev/cd0 bs=32k of=FreeBSD-8.2-RELEASE-amd64-dvd1.host=blak,drive=cd0.bs=32k.iso l *dvd* -rw-r--r-- 1 root staff 2414706688 Mar 4 01:34 FreeBSD-8.2-RELEASE-amd64-dvd1.host=blak,drive=cd0.bs=32k.iso -rw-r--r-- 1 jhs staff 2414686208 Feb 17 15:51 FreeBSD-8.2-RELEASE-amd64-dvd1.iso dc 2414686208 2048 / p 1179046 2048 * p 2414686208 dd if=FreeBSD-8.2-RELEASE-amd64-dvd1.host=blak,drive=cd0.bs=32k.iso bs=2048 count=1179046 of=FreeBSD-8.2-RELEASE-amd64-dvd1.host=blak,drive=cd0.bs=32k.bs=2048.count=1179046.iso l *dvd* -rw-r--r-- 1 jhs staff 2414686208 Mar 4 01:40 FreeBSD-8.2-RELEASE-amd64-dvd1.host=blak,drive=cd0.bs=32k.bs=2048.count=1179046.iso -rw-r--r-- 1 root staff 2414706688 Mar 4 01:34 FreeBSD-8.2-RELEASE-amd64-dvd1.host=blak,drive=cd0.bs=32k.iso -rw-r--r-- 1 jhs staff 2414686208 Feb 17 15:51 FreeBSD-8.2-RELEASE-amd64-dvd1.iso My BIOS says Award C. 84-2008 (though bix is supposed to be much newer ? ask jes@ ? makve an older mobo ? ) Even if I BIOS set the only bootable device as CDROM, & disable hard disks, if I have order ad2 then ad3 it still boots evil MS ! Ive gone right through BIOS I cant find eg any "protect boot from virus" type nastiness to turn off 2Qs: What to turn off in BIOS to really force MB not to boot hard disk ? Why is evil MS booting even when I try to tell it F3 Set BIOS to boot off USB-CDROM FreeBSD-8.2 booted kernel, it then asked which media & offered 2 internal dvd drives on ide, nut not the USB DVD it had booted from, moved the disc but read errors (on media validated OK on external burner drive) Via options menu I told it to do a device rescan, still no good, didnt list a usb cdrom installed the rest via ftp. selected type 2 MVR install, ie a FreeBSD one (not a type 1 which lists as non interactive I recall ?) Reboot Finally I can choose with F1 & F3 whether Xp or FreeBSD starts. NEXT TO DO: upgrade host=blak to 8.2-rel, rebuild ntfsresize, install ntfsresize on USB install media try acer laptop already waiting.