diff -Nru ms-sys-2.1.0/CHANGELOG ms-sys-2.3.0/CHANGELOG --- ms-sys-2.1.0/CHANGELOG 2005-06-26 16:39:53.000000000 +0000 +++ ms-sys-2.3.0/CHANGELOG 2012-04-01 13:26:09.000000000 +0000 @@ -1,5 +1,37 @@ Date Version Comment --------------------------------------------------------------------------- + 1/4 2012 2.3.0 Added experimental support for NTFS boot record. This + functionality is mostly useful to identify Windows 7 NTFS + boot records. Writing an NTFS Windows 7 boot record will + most likely not be of much use. + +22/1 2011 2.2.1 Modified Makefile to recreate directories lost by CVS + Now also doing a sanity check before only writing BPB + +13/5 2010 2.2.0 Added support for large disk image files. This version + is now considered stable as the BPB problem has had a + workaround since version 2.1.5. + +14/3 2010 2.1.5 Added support for manually setting the number of heads + in BPB + +3/10 2009 2.1.4 Win 7 and Vista MBR added + Added copyright notice to source files + +30/12 2007 2.1.3 Makefile now supports DESTDIR + +20/11 2005 2.1.2 Corrected spelling of Gürkan Sengün in man-page and + CONTRIBUTORS file. + Added a FAQ. + Renamed sv_SE.po to sv.po to fix bug described at + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=336813 + FreeDOS FAT16 and FAT32 boot records added. + +3/8 2005 2.1.1 Now the -p switch also writes the number of heads in BPB. + Modified Makefile to work with newer version of gcc. + Unfortunately it no longer works with older versions of + gcc as the output from the switch -MM has changed. + 26/6 2005 2.1.0 Now ms-sys is able to identify an ms-dos MBR with the undocumented F2 instruction. Fixed bug in Makefile which make Makefile fail to install diff -Nru ms-sys-2.1.0/CONTRIBUTORS ms-sys-2.3.0/CONTRIBUTORS --- ms-sys-2.1.0/CONTRIBUTORS 2004-06-05 18:58:18.000000000 +0000 +++ ms-sys-2.3.0/CONTRIBUTORS 2012-03-18 17:19:22.000000000 +0000 @@ -1,6 +1,6 @@ Henrik Carlqvist main developer Bob Tennent helped fixing problems compiling on RedHat 7.3 -Gurkan Sengun wrote the original man-page +Gürkan Sengün wrote the original man-page, pointed out bugs Ulf Gustafsson contributed an NT boot record Chris Bshaw tested NT boot record Ronan Salmon debugged NT BR and contributed missing part @@ -9,3 +9,9 @@ Andrew Yeomans added support for XP/DOS/zero MBRs Andree Leidenfrost helped debugging mkfs.vfat problem Matthew Brett reported 2.6 kernel bug, provided shell-account +Søren Holm helped debugging BPB problem with -p switch +Till Wimmer contributed FreeDOS FAT16 & FAT32 boot records +Alon Bar-Lev patched Makefile to support DESTDIR +Rene Arends added support for Win7 and Vista MBRs +Peter Daum patch for manually setting nr of heads in BPB +Pete Batard added NTFS Win7 experimental support diff -Nru ms-sys-2.1.0/FAQ ms-sys-2.3.0/FAQ --- ms-sys-2.1.0/FAQ 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/FAQ 2005-11-13 16:44:26.000000000 +0000 @@ -0,0 +1,11 @@ +Q1: I followed all instructions but my system doesn't boot!? + +A1: This is most likely because you are running ms-sys in a Linux environment + with a 2.6 kernel. The problem is that kernel 2.6 might report a geometry + incompatible with other operating systems. This makes gnu parted write + incompatible geometry information when formatting the partition. Ms-sys + has the switch -p which is supposed to fix the geometry information when + the formatting program has failed writing this correctly, but also ms-sys + will write the wrong information for the same reason. This is a known + problem described in the README which also contains a link to a detailed + description and a possible workaround for the problem. diff -Nru ms-sys-2.1.0/Makefile ms-sys-2.3.0/Makefile --- ms-sys-2.1.0/Makefile 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/Makefile 2010-05-13 21:07:51.000000000 +0000 @@ -1,5 +1,6 @@ # Generic GNU Makefile with Native Language Support # written by Henrik Carlqvist +# # Possible targets are: # make normal compile # make all normal compile, the same as above @@ -9,6 +10,9 @@ # make mrproper removes compiled files and dependencies # make debug compiles with flag -g for debuggers # make messages creates po/messages.po as a skeleton for NLS +# +# Contributors: Henrik Carlqvist +# Alon Bar-Lev # Name of program, compiled executable file PACKAGE = ms-sys @@ -17,7 +21,7 @@ # Example: EXTRA_CFLAGS = -D MY_DEFINE=1 # The row below is a workaround for systems which lack libintl.h -EXTRA_CFLAGS = -idirafter include-fallback +EXTRA_CFLAGS = -idirafter include-fallback -D_FILE_OFFSET_BITS=64 # Add anything extra you might need when linking below # Example: EXTRA_LDFLAGS = -lm @@ -26,10 +30,10 @@ # Paths # Installation path -PREFIX = $(DESTDIR)/usr +PREFIX ?= /usr/local BINDIR = $(PREFIX)/bin LOCALEDIR = $(PREFIX)/share/locale -MANDIR = $(PREFIX)/share/man +MANDIR = $(PREFIX)/man # Where your .c-files live SRC = src @@ -57,17 +61,16 @@ INCDIRS = $(INC) -CC = gcc +CC ?= gcc INCLUDES = $(INCDIRS:%=-I %) -CFLAGS = -O2 -ansi -pedantic -Wall -c $(INCLUDES) \ - -D PACKAGE=\"$(PACKAGE)\" -D LOCALEDIR=\"$(LOCALEDIR)\" \ - $(EXTRA_CFLAGS) +CFLAGS ?= -O2 ifeq ($(MAKECMDGOALS),debug) -CFLAGS = -g -ansi -pedantic -Wall -c $(INCLUDES) \ +CFLAGS ?= -g +endif +CFLAGS += -ansi -pedantic -Wall -c $(INCLUDES) \ -D PACKAGE=\"$(PACKAGE)\" -D LOCALEDIR=\"$(LOCALEDIR)\" \ $(EXTRA_CFLAGS) -endif -LDFLAGS = $(EXTRA_LDFLAGS) +LDFLAGS += $(EXTRA_LDFLAGS) SRC_FILES = $(wildcard $(SRC)/*.c) @@ -79,10 +82,10 @@ PO_FILES = $(filter-out $(MESSAGES),$(wildcard $(PO)/*.po)) MO_FILES = $(PO_FILES:$(PO)/%.po=$(MO)/%.mo) -LANGUAGES = $(PO_FILES:$(PO)/%.po=%) -NLS_FILES = $(LANGUAGES:%=$(LOCALEDIR)/%/$(MESSDIR)/$(PACKAGE).mo) +LANGUAGES ?= $(PO_FILES:$(PO)/%.po=%) +NLS_FILES = $(LANGUAGES:%=$(DESTDIR)$(LOCALEDIR)/%/$(MESSDIR)/$(PACKAGE).mo) MAN_FILES = $(foreach FILE, $(MAN_SRC), \ - $(MANDIR)/man$(subst .,,$(suffix $(FILE)))/$(FILE:$(MAN)/%=%)) + $(DESTDIR)$(MANDIR)/man$(subst .,,$(suffix $(FILE)))/$(FILE:$(MAN)/%=%)) FILES = $(SRC_FILES:$(SRC)/%.c=%) @@ -91,10 +94,10 @@ all debug: $(BIN)/$(PACKAGE) $(MO_FILES) -install: $(BINDIR)/$(PACKAGE) $(NLS_FILES) $(MAN_FILES) +install: $(DESTDIR)$(BINDIR)/$(PACKAGE) $(NLS_FILES) $(MAN_FILES) uninstall: - $(RM) $(BINDIR)/$(PACKAGE) $(NLS_FILES) $(MAN_FILES) + $(RM) $(DESTDIR)$(BINDIR)/$(PACKAGE) $(NLS_FILES) $(MAN_FILES) messages: $(MESSAGES) @@ -109,35 +112,35 @@ $(RM) $(LIB)/*.a $(RM) $(filter-out $(BIN)/CVS,$(wildcard $(BIN)/*)) -$(BINDIR)/%: $(BIN)/% +$(DESTDIR)$(BINDIR)/%: $(BIN)/% install -D -m 755 $^ $@ -$(LOCALEDIR)/%/$(MESSDIR)/$(PACKAGE).mo: $(MO)/%.mo - mkdir -p $(LOCALEDIR)/$*/$(MESSDIR) +$(DESTDIR)$(LOCALEDIR)/%/$(MESSDIR)/$(PACKAGE).mo: $(MO)/%.mo + mkdir -p $(DESTDIR)$(LOCALEDIR)/$*/$(MESSDIR) install -D -m 644 $^ $@ -$(MANDIR)/%: $(MAN)/$(*F) +$(DESTDIR)$(MANDIR)/%: $(MAN)/$(*F) install -D -m 644 $(MAN)/$(*F) $@ -$(BIN)/%: $(OBJS) +$(BIN)/%: $(OBJS) $(CC) -o $@ $^ $(LDFLAGS) $(MESSAGES): $(SRC_FILES) $(INC_FILES) xgettext -k_ -o$@ $^ -$(OBJS): $(OBJ)/%.o: $(SRC)/%.c $(DEP)/%.d +$(OBJS): $(OBJ)/%.o: $(SRC)/%.c $(DEP)/%.d \ + $(filter-out $(wildcard $(OBJ)), $(OBJ)) \ + $(filter-out $(wildcard $(BIN)), $(BIN)) $(CC) $(CFLAGS) -o $@ $< -$(MO_FILES): $(MO)/%.mo: $(PO)/%.po +$(MO_FILES): $(MO)/%.mo: $(PO)/%.po $(filter-out $(wildcard $(MO)), $(MO)) msgfmt -o $@ $< -$(DEPS): $(DEP)/%.d: $(SRC)/%.c +$(DEPS): $(DEP)/%.d: $(SRC)/%.c $(filter-out $(wildcard $(DEP)), $(DEP)) ifeq ($(MAKECMDGOALS),quiet) - @if((printf "$@ $(OBJ)/";$(CC) -MM $(CFLAGS) $< )> $@); then true; \ - else rm $@; false; fi + @$(CC) -MM $(CFLAGS) -MT $@ $< > $@ else - if((printf "$@ $(OBJ)/";$(CC) -MM $(CFLAGS) $< )> $@); then true; \ - else rm $@; false; fi + $(CC) -MM $(CFLAGS) -MT $@ $< > $@ endif ifneq ($(MAKECMDGOALS),mrproper) @@ -146,6 +149,10 @@ endif endif +# Create directories which might be lost from CVS +$(DEP) $(OBJ) $(BIN) $(MO): + mkdir -p $@ + # Used to force some rules to always be compiled FORCE: ; diff -Nru ms-sys-2.1.0/README ms-sys-2.3.0/README --- ms-sys-2.1.0/README 2005-03-27 16:04:31.000000000 +0000 +++ ms-sys-2.3.0/README 2012-04-01 13:26:09.000000000 +0000 @@ -116,15 +116,18 @@ is supposed to fix this problem. The problem has also been reported on partitions formatted with mkdosfs and mkfs.vfat. -Unfortunately, there have also been some reports that the switch -p does not -always fix the problem above. To do further work on the -p switch I will need -someone able to reproduce the problem who is willing to do some testing. - There have been yet another problem reported about the -p switch and gnu parted together with Linux kernel 2.6. The problem is that kernel 2.6 might report a geometry incompatible with other operating systems. There is a detailed description of the problem at http://groups-beta.google.com/group/linux.kernel/msg/404d8683ce302cf2 +As a workaround for this ms-sys now has the switch -H to manually set the +number of heads. The next problem is to find out what value for number of +heads to give. If the system was booted by LILO this can be shown by +"lilo -T geom". There have been reports about problems when compiling against uClibc. More -problem reports or suggestions of fixes are welcome! \ No newline at end of file +problem reports or suggestions of fixes are welcome! + +Writing Windows 7 NTFS boot records with ms-sys is probably not useful if +the intention is to get a bootable partition. diff -Nru ms-sys-2.1.0/debian/changelog ms-sys-2.3.0/debian/changelog --- ms-sys-2.1.0/debian/changelog 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/debian/changelog 2012-12-30 19:52:15.000000000 +0000 @@ -1,46 +1,19 @@ -ms-sys (2.1.0-1) unstable; urgency=low +ms-sys (2.3.0-0~quantal0) quantal; urgency=low - * New upstream version. - * Updated standards version to 3.6.2. + * New upstream release: + Added experimental support for NTFS boot record. - -- Gürkan Sengün Sun, 25 Sep 2005 11:53:30 +0200 + -- Daniel Baumann Sun, 30 Dec 2012 20:52:15 +0100 -ms-sys (1.1.3-1) unstable; urgency=low +ms-sys (2.2.1-2) unstable; urgency=low - * New upstream version. - * Changed my name to UTF-8 in debian/{changelog,copyright,control} - * Thanks Andree Leidenfrost for the help. + * debian/rules: Simplified. + * debian/ms-sys.install: Install all locales. - -- Gürkan Sengün Sun, 4 Apr 2004 21:46:59 +0200 + -- Daniel Baumann Sat, 06 Aug 2011 17:48:53 +0200 -ms-sys (1.1.0-2) unstable; urgency=low +ms-sys (2.2.1-1) natty; urgency=low - * Changed all "Gurkan Sengun" to "Gürkan Sengün" - - -- Gürkan Sengün Thu, 13 Nov 2003 21:09:45 +0100 - -ms-sys (1.1.0-1) unstable; urgency=low - - * New upstream version. - - -- Gürkan Sengün Fri, 17 Oct 2003 19:16:23 +0200 - -ms-sys (1.0.1-3) unstable; urgency=low - - * Fixed package to build on hppa by removing the "-ansi" flag from - the gcc call (Thanks to Paul Telford for the hint). Closes: Bug#199069 - - -- Gürkan Sengün Thu, 21 Aug 2003 23:19:00 +0200 - -ms-sys (1.0.1-2) unstable; urgency=low - - * Changed Architecture from i386 to any. - - -- Gürkan Sengün Sun, 13 Apr 2003 21:36:11 +0200 - -ms-sys (1.0.1-1) unstable; urgency=low - - * Initial Release. - - -- Gürkan Sengün Tue, 18 Feb 2003 22:46:56 +0100 + * Initial packaging release + -- Ahmed Kamal Sat, 12 Mar 2011 20:03:25 +0200 diff -Nru ms-sys-2.1.0/debian/compat ms-sys-2.3.0/debian/compat --- ms-sys-2.1.0/debian/compat 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/debian/compat 2011-03-12 18:26:41.000000000 +0000 @@ -1 +1 @@ -4 +7 diff -Nru ms-sys-2.1.0/debian/control ms-sys-2.3.0/debian/control --- ms-sys-2.1.0/debian/control 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/debian/control 2012-12-30 19:46:50.000000000 +0000 @@ -1,16 +1,16 @@ Source: ms-sys Section: admin Priority: optional -Maintainer: Gürkan Sengün -Build-Depends: debhelper (>= 4) -Standards-Version: 3.6.2 +Maintainer: Ahmed Kamal +Build-Depends: debhelper (>= 7.0.50~) +Standards-Version: 3.9.1 +Homepage: http://ms-sys.sourceforge.net Package: ms-sys Architecture: any -Depends: ${shlibs:Depends} -Description: Write a Microsoft compatible boot record - The program does the same as Microsoft's "fdisk /mbr" to a hard disk or - "sys d:" to a floppy or FAT32 partition, except that it does not copy - any system files (only the boot record is written). - . - Homepage: http://ms-sys.sourceforge.net/ +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Program for writing Microsoft compatible boot records + This is a Linux program for writing Microsoft compatible boot + records. The program does the same as Microsoft "fdisk /mbr" to a hard + disk or "sys d:" to a floppy or FAT partition except that it does not + copy any system files, only the boot record is written diff -Nru ms-sys-2.1.0/debian/copyright ms-sys-2.3.0/debian/copyright --- ms-sys-2.1.0/debian/copyright 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/debian/copyright 2011-03-18 21:25:24.000000000 +0000 @@ -1,12 +1,36 @@ -This package was debianized by Gürkan Sengün on -Tue, 18 Feb 2003 22:46:56 +0100. +Format: http://dep.debian.net/deps/dep5 +Upstream-Name: ms-sys +Source: http://ms-sys.sourceforge.net/ -It was downloaded from http://ms-sys.sourceforge.net/ +Files: * +Copyright: Henrik Carlqvist +License: GPL-3.0+ -Upstream Author: Henrik Carlqvist +Files: debian/* +Copyright: 2011 Ahmed Kamal +License: GPL-3.0+ -Copyright: +License: GPL-3.0+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + . + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". -You are free to distribute this software under the terms of the GNU General -Public License. On Debian systems, the complete text of the GNU General Public -License can be found in /usr/share/common-licenses/GPL file. +# Please choose a license for your packaging work. If the program you package +# uses a mainstream license, using the same license is the safest choice. +# Please avoid to pick license terms that are more restrictive than the +# packaged work, as it may make Debian's contributions unacceptable upstream. +# If you just want it to be GPL version 3, leave the following line in. + +and is licensed under the GPL version 3, see above. diff -Nru ms-sys-2.1.0/debian/dirs ms-sys-2.3.0/debian/dirs --- ms-sys-2.1.0/debian/dirs 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/debian/dirs 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -usr/bin -usr/share/locale -usr/share/man/man1 diff -Nru ms-sys-2.1.0/debian/docs ms-sys-2.3.0/debian/docs --- ms-sys-2.1.0/debian/docs 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/debian/docs 2012-12-30 19:47:52.000000000 +0000 @@ -1,3 +1,6 @@ +CHANGELOG +CONTRIBUTORS +COPYING +FAQ README TODO -CONTRIBUTORS diff -Nru ms-sys-2.1.0/debian/ms-sys.install ms-sys-2.3.0/debian/ms-sys.install --- ms-sys-2.1.0/debian/ms-sys.install 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/debian/ms-sys.install 2011-08-06 15:43:20.000000000 +0000 @@ -0,0 +1,2 @@ +debian/tmp/usr/bin +debian/tmp/usr/share/locale/*/LC_MESSAGES/ms-sys.mo diff -Nru ms-sys-2.1.0/debian/ms-sys.manpages ms-sys-2.3.0/debian/ms-sys.manpages --- ms-sys-2.1.0/debian/ms-sys.manpages 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/debian/ms-sys.manpages 2011-03-18 21:36:34.000000000 +0000 @@ -0,0 +1 @@ +debian/tmp/usr/man/man1/ms-sys.1 diff -Nru ms-sys-2.1.0/debian/rules ms-sys-2.3.0/debian/rules --- ms-sys-2.1.0/debian/rules 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/debian/rules 2011-08-06 15:41:16.000000000 +0000 @@ -1,63 +1,15 @@ #!/usr/bin/make -f -# Sample debian/rules that uses debhelper. -# GNU copyright 1997 to 1999 by Joey Hess. +# -*- makefile -*- -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 +%: + dh $@ +override_dh_auto_clean: + dh_auto_clean + rm -rf bin dep mo obj -CFLAGS = -Wall -g +override_dh_auto_build: + PREFIX="/usr" $(MAKE) -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif - - -build: build-stamp - -build-stamp: #configure-stamp - dh_testdir - $(MAKE) - touch build-stamp - -clean: - dh_testdir - dh_testroot - rm -f build-stamp configure-stamp - -$(MAKE) clean - dh_clean - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - $(MAKE) install DESTDIR=$(CURDIR)/debian/ms-sys - - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - dh_installdocs -# dh_installman -A - dh_installchangelogs CHANGELOG - dh_link - dh_strip - dh_compress - dh_fixperms - dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure +override_dh_auto_install: + PREFIX="/usr" DESTDIR=$(CURDIR)/debian/tmp $(MAKE) install diff -Nru ms-sys-2.1.0/debian/source/format ms-sys-2.3.0/debian/source/format --- ms-sys-2.1.0/debian/source/format 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/debian/source/format 2012-12-30 20:00:41.606466355 +0000 @@ -0,0 +1 @@ +3.0 (quilt) diff -Nru ms-sys-2.1.0/debian/watch ms-sys-2.3.0/debian/watch --- ms-sys-2.1.0/debian/watch 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/debian/watch 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -version=2 -http://heanet.dl.sourceforge.net/sourceforge/ms-sys/ms-sys-(.*).tgz diff -Nru ms-sys-2.1.0/dep/br.d ms-sys-2.3.0/dep/br.d --- ms-sys-2.1.0/dep/br.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/br.d 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -dep/br.d obj/br.o: src/br.c inc/file.h inc/br.h inc/mbr_dos.h inc/mbr_dos_f2.h \ - inc/mbr_95b.h inc/mbr_2000.h inc/mbr_syslinux.h inc/mbr_zero.h diff -Nru ms-sys-2.1.0/dep/fat12.d ms-sys-2.3.0/dep/fat12.d --- ms-sys-2.1.0/dep/fat12.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/fat12.d 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -dep/fat12.d obj/fat12.o: src/fat12.c inc/file.h inc/fat12.h inc/br_fat12_0x0.h \ - inc/br_fat12_0x3e.h inc/label_11_char.h diff -Nru ms-sys-2.1.0/dep/fat16.d ms-sys-2.3.0/dep/fat16.d --- ms-sys-2.1.0/dep/fat16.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/fat16.d 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -dep/fat16.d obj/fat16.o: src/fat16.c inc/file.h inc/fat16.h inc/br_fat16_0x0.h \ - inc/br_fat16_0x3e.h inc/label_11_char.h diff -Nru ms-sys-2.1.0/dep/fat32.d ms-sys-2.3.0/dep/fat32.d --- ms-sys-2.1.0/dep/fat32.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/fat32.d 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -dep/fat32.d obj/fat32.o: src/fat32.c inc/file.h inc/fat32.h inc/br_fat32_0x0.h \ - inc/br_fat32_0x52.h inc/br_fat32_0x3f0.h inc/label_11_char.h diff -Nru ms-sys-2.1.0/dep/fat32nt.d ms-sys-2.3.0/dep/fat32nt.d --- ms-sys-2.1.0/dep/fat32nt.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/fat32nt.d 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -dep/fat32nt.d obj/fat32nt.o: src/fat32nt.c inc/file.h inc/fat32nt.h inc/br_fat32nt_0x0.h \ - inc/br_fat32nt_0x52.h inc/br_fat32nt_0x3f0.h inc/br_fat32nt_0x1800.h \ - inc/label_11_char.h diff -Nru ms-sys-2.1.0/dep/file.d ms-sys-2.3.0/dep/file.d --- ms-sys-2.1.0/dep/file.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/file.d 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -dep/file.d obj/file.o: src/file.c inc/nls.h inc/file.h diff -Nru ms-sys-2.1.0/dep/identify.d ms-sys-2.3.0/dep/identify.d --- ms-sys-2.1.0/dep/identify.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/identify.d 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -dep/identify.d obj/identify.o: src/identify.c inc/br.h inc/fat12.h inc/fat16.h inc/fat32.h \ - inc/fat32nt.h inc/nls.h inc/identify.h diff -Nru ms-sys-2.1.0/dep/main.d ms-sys-2.3.0/dep/main.d --- ms-sys-2.1.0/dep/main.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/main.d 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -dep/main.d obj/main.o: src/main.c inc/fat12.h inc/fat16.h inc/fat32.h inc/fat32nt.h \ - inc/br.h inc/identify.h inc/nls.h inc/partition_info.h diff -Nru ms-sys-2.1.0/dep/nls.d ms-sys-2.3.0/dep/nls.d --- ms-sys-2.1.0/dep/nls.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/nls.d 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -dep/nls.d obj/nls.o: src/nls.c inc/nls.h diff -Nru ms-sys-2.1.0/dep/partition_info.d ms-sys-2.3.0/dep/partition_info.d --- ms-sys-2.1.0/dep/partition_info.d 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/dep/partition_info.d 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -dep/partition_info.d obj/partition_info.o: src/partition_info.c inc/file.h inc/identify.h \ - inc/partition_info.h diff -Nru ms-sys-2.1.0/inc/br.h ms-sys-2.3.0/inc/br.h --- ms-sys-2.1.0/inc/br.h 2004-10-05 10:20:34.000000000 +0000 +++ ms-sys-2.3.0/inc/br.h 2009-09-23 18:29:43.000000000 +0000 @@ -28,6 +28,14 @@ FALSE.The file position will change when this function is called! */ int is_2000_mbr(FILE *fp); +/* returns TRUE if the file has a Microsoft Vista master boot record, otherwise + FALSE.The file position will change when this function is called! */ +int is_vista_mbr(FILE *fp); + +/* returns TRUE if the file has a Microsoft 7 master boot record, otherwise + FALSE.The file position will change when this function is called! */ +int is_win7_mbr(FILE *fp); + /* returns TRUE if the file has a syslinux master boot record, otherwise FALSE.The file position will change when this function is called! */ int is_syslinux_mbr(FILE *fp); @@ -48,6 +56,14 @@ FALSE */ int write_2000_mbr(FILE *fp); +/* Writes a Vista master boot record to a file, returns TRUE on success, otherwise + FALSE */ +int write_vista_mbr(FILE *fp); + +/* Writes a 7 master boot record to a file, returns TRUE on success, otherwise + FALSE */ +int write_win7_mbr(FILE *fp); + /* Writes a syslinux master boot record to a file, returns TRUE on success, otherwise FALSE */ int write_syslinux_mbr(FILE *fp); diff -Nru ms-sys-2.1.0/inc/br_fat16fd_0x3e.h ms-sys-2.3.0/inc/br_fat16fd_0x3e.h --- ms-sys-2.1.0/inc/br_fat16fd_0x3e.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/br_fat16fd_0x3e.h 2005-10-20 18:18:23.000000000 +0000 @@ -0,0 +1,37 @@ +/* br_fat16_0x3e.h +// +// ANI +// substring gmbh/tw 14.9.04 +// modified bootsector 0x03e - 0x200 to support FreeDOS +*/ +unsigned char br_fat16_0x3e[] = { 0xfa, 0xfc, + 0x31, 0xc0, 0x8e, 0xd8, 0xbd, 0x00, 0x7c, 0xb8, 0xe0, 0x1f, 0x8e, 0xc0, 0x89, 0xee, 0x89, 0xef, + 0xb9, 0x00, 0x01, 0xf3, 0xa5, 0xea, 0x5e, 0x7c, 0xe0, 0x1f, 0x00, 0x00, 0x60, 0x00, 0x8e, 0xd8, + 0x8e, 0xd0, 0x8d, 0x66, 0xa0, 0xfb, 0x80, 0x7e, 0x24, 0xff, 0x75, 0x03, 0x88, 0x56, 0x24, 0xc7, + 0x46, 0xc0, 0x10, 0x00, 0xc7, 0x46, 0xc2, 0x01, 0x00, 0xe8, 0xe6, 0x00, 0x46, 0x72, 0x65, 0x65, + 0x44, 0x4f, 0x53, 0x00, 0x8b, 0x76, 0x1c, 0x8b, 0x7e, 0x1e, 0x03, 0x76, 0x0e, 0x83, 0xd7, 0x00, + 0x89, 0x76, 0xd2, 0x89, 0x7e, 0xd4, 0x8a, 0x46, 0x10, 0x98, 0xf7, 0x66, 0x16, 0x01, 0xc6, 0x11, + 0xd7, 0x89, 0x76, 0xd6, 0x89, 0x7e, 0xd8, 0x8b, 0x5e, 0x0b, 0xb1, 0x05, 0xd3, 0xeb, 0x8b, 0x46, + 0x11, 0x31, 0xd2, 0xf7, 0xf3, 0x89, 0x46, 0xd0, 0x01, 0xc6, 0x83, 0xd7, 0x00, 0x89, 0x76, 0xda, + 0x89, 0x7e, 0xdc, 0x8b, 0x46, 0xd6, 0x8b, 0x56, 0xd8, 0x8b, 0x7e, 0xd0, 0xc4, 0x5e, 0x5a, 0xe8, + 0x98, 0x00, 0x72, 0x2f, 0xc4, 0x7e, 0x5a, 0xb9, 0x0b, 0x00, 0xbe, 0xf1, 0x7d, 0x57, 0xf3, 0xa6, + 0x5f, 0x26, 0x8b, 0x45, 0x1a, 0x74, 0x0b, 0x83, 0xc7, 0x20, 0x26, 0x80, 0x3d, 0x00, 0x75, 0xe7, + 0x72, 0x56, 0x50, 0xc4, 0x5e, 0x5a, 0x8b, 0x7e, 0x16, 0x8b, 0x46, 0xd2, 0x8b, 0x56, 0xd4, 0xe8, + 0x68, 0x00, 0x58, 0x72, 0x43, 0x1e, 0x07, 0x8e, 0x5e, 0x5c, 0xbf, 0x00, 0x20, 0xab, 0x89, 0xc6, + 0x8b, 0x56, 0x5c, 0x01, 0xf6, 0x73, 0x03, 0x80, 0xc6, 0x10, 0x8e, 0xda, 0xad, 0x3d, 0xf8, 0xff, + 0x72, 0xeb, 0x31, 0xc0, 0xab, 0x0e, 0x1f, 0xc4, 0x5e, 0x5a, 0xbe, 0x00, 0x20, 0xad, 0x09, 0xc0, + 0x74, 0x24, 0x48, 0x48, 0x8b, 0x7e, 0x0d, 0x81, 0xe7, 0xff, 0x00, 0xf7, 0xe7, 0x03, 0x46, 0xda, + 0x13, 0x56, 0xdc, 0xe8, 0x24, 0x00, 0x73, 0xe5, 0xe8, 0x17, 0x00, 0x20, 0x65, 0x72, 0x72, 0x00, + 0x30, 0xe4, 0xcd, 0x16, 0xcd, 0x19, 0x8a, 0x5e, 0x24, 0xff, 0x6e, 0x5a, 0x31, 0xdb, 0xb4, 0x0e, + 0xcd, 0x10, 0x5e, 0xac, 0x56, 0x3c, 0x00, 0x75, 0xf3, 0xc3, 0x56, 0x89, 0x46, 0xc8, 0x89, 0x56, + 0xca, 0x8c, 0x46, 0xc6, 0x89, 0x5e, 0xc4, 0xb4, 0x41, 0xbb, 0xaa, 0x55, 0x8a, 0x56, 0x24, 0x84, + 0xd2, 0x74, 0x19, 0xcd, 0x13, 0x72, 0x15, 0xd1, 0xe9, 0x81, 0xdb, 0x54, 0xaa, 0x75, 0x0d, 0x8d, + 0x76, 0xc0, 0x89, 0x5e, 0xcc, 0x89, 0x5e, 0xce, 0xb4, 0x42, 0xeb, 0x2c, 0x8b, 0x4e, 0xc8, 0x8b, + 0x56, 0xca, 0x8a, 0x46, 0x18, 0xf6, 0x66, 0x1a, 0x91, 0xf7, 0xf1, 0x92, 0xf6, 0x76, 0x18, 0x89, + 0xd1, 0x88, 0xc6, 0x86, 0xe9, 0xd0, 0xc9, 0xd0, 0xc9, 0x8a, 0x46, 0x18, 0x28, 0xe0, 0xfe, 0xc4, + 0x08, 0xe1, 0xc4, 0x5e, 0xc4, 0xb8, 0x01, 0x02, 0x8a, 0x56, 0x24, 0xcd, 0x13, 0x73, 0x06, 0x30, + 0xe4, 0xcd, 0x13, 0xeb, 0xa2, 0x8b, 0x46, 0x0b, 0xf6, 0x76, 0xc0, 0x01, 0x46, 0xc6, 0x83, 0x46, + 0xc8, 0x01, 0x83, 0x56, 0xca, 0x00, 0x4f, 0x75, 0xea, 0x8e, 0x46, 0xc6, 0x5e, 0xc3, 0x00, 0x00, + 0x00, 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, 0x20, 0x20, 0x53, 0x59, 0x53, 0x00, 0x00, 0x55, 0xaa +}; + diff -Nru ms-sys-2.1.0/inc/br_fat32fd_0x3f0.h ms-sys-2.3.0/inc/br_fat32fd_0x3f0.h --- ms-sys-2.1.0/inc/br_fat32fd_0x3f0.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/br_fat32fd_0x3f0.h 2005-10-20 18:18:23.000000000 +0000 @@ -0,0 +1,53 @@ +/* br_fat32_0x52.h +// +// ANI +// substring gmbh/tw 14.9.04 +// modified cluster code 0x3f0 to support FreeDOS +*/ +unsigned char br_fat32_0x3f0[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x55, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xaa +}; + diff -Nru ms-sys-2.1.0/inc/br_fat32fd_0x52.h ms-sys-2.3.0/inc/br_fat32fd_0x52.h --- ms-sys-2.1.0/inc/br_fat32fd_0x52.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/br_fat32fd_0x52.h 2005-10-20 18:18:23.000000000 +0000 @@ -0,0 +1,86 @@ +/* br_fat32_0x52.h +// +// ANI +// substring gmbh/tw 14.9.04 +// modified bootstrap code 0x052 to support FreeDOS +*/ +unsigned char br_fat32_0x52[] = { + 0x46, 0x41, 0x54, 0x33, 0x32, 0x20, 0x20, 0x20, 0xfc, 0xfa, 0x29, 0xc0, + 0x8e, 0xd8, 0xbd, 0x00, 0x7c, 0xb8, 0xe0, 0x1f, 0x8e, 0xc0, 0x89, 0xee, + 0x89, 0xef, 0xb9, 0x00, 0x01, 0xf3, 0xa5, 0xea, 0x7a, 0x7c, 0xe0, 0x1f, + 0x00, 0x00, 0x60, 0x00, 0x8e, 0xd8, 0x8e, 0xd0, 0x8d, 0x66, 0xe0, 0xfb, + 0x88, 0x56, 0x40, 0xbe, 0xc1, 0x7d, 0xe8, 0xf4, 0x00, 0x66, 0x31, 0xc0, + 0x66, 0x89, 0x46, 0x44, 0x8b, 0x46, 0x0e, 0x66, 0x03, 0x46, 0x1c, 0x66, + 0x89, 0x46, 0x48, 0x66, 0x89, 0x46, 0x4c, 0x66, 0x8b, 0x46, 0x10, 0x66, + 0xf7, 0x6e, 0x24, 0x66, 0x01, 0x46, 0x4c, 0xb8, 0x00, 0x02, 0x3b, 0x46, + 0x0b, 0x74, 0x08, 0x01, 0xc0, 0xff, 0x06, 0x34, 0x7d, 0xeb, 0xf3, 0x66, + 0x8b, 0x46, 0x2c, 0x66, 0x50, 0xe8, 0x94, 0x00, 0x72, 0x4d, 0xc4, 0x5e, + 0x76, 0xe8, 0xb7, 0x00, 0x31, 0xff, 0xb9, 0x0b, 0x00, 0xbe, 0xf1, 0x7d, + 0xf3, 0xa6, 0x74, 0x15, 0x83, 0xc7, 0x20, 0x83, 0xe7, 0xe0, 0x3b, 0x7e, + 0x0b, 0x75, 0xeb, 0x4a, 0x75, 0xe0, 0x66, 0x58, 0xe8, 0x34, 0x00, 0xeb, + 0xd2, 0x26, 0xff, 0x75, 0x09, 0x26, 0xff, 0x75, 0x0f, 0x66, 0x58, 0x29, + 0xdb, 0x66, 0x50, 0xe8, 0x5a, 0x00, 0x72, 0x0d, 0xe8, 0x80, 0x00, 0x4a, + 0x75, 0xfa, 0x66, 0x58, 0xe8, 0x14, 0x00, 0xeb, 0xec, 0x8a, 0x5e, 0x40, + 0xff, 0x6e, 0x76, 0xbe, 0xee, 0x7d, 0xe8, 0x64, 0x00, 0x30, 0xe4, 0xcd, + 0x16, 0xcd, 0x19, 0x06, 0x57, 0x53, 0x89, 0xc7, 0xc1, 0xe7, 0x02, 0x50, + 0x8b, 0x46, 0x0b, 0x48, 0x21, 0xc7, 0x58, 0x66, 0xc1, 0xe8, 0x07, 0x66, + 0x03, 0x46, 0x48, 0xbb, 0x00, 0x20, 0x8e, 0xc3, 0x29, 0xdb, 0x66, 0x3b, + 0x46, 0x44, 0x74, 0x07, 0x66, 0x89, 0x46, 0x44, 0xe8, 0x38, 0x00, 0x26, + 0x80, 0x65, 0x03, 0x0f, 0x26, 0x66, 0x8b, 0x05, 0x5b, 0x5f, 0x07, 0xc3, + 0x66, 0x3d, 0xf8, 0xff, 0xff, 0x0f, 0x73, 0x15, 0x66, 0x48, 0x66, 0x48, + 0x66, 0x0f, 0xb6, 0x56, 0x0d, 0x66, 0x52, 0x66, 0xf7, 0xe2, 0x66, 0x5a, + 0x66, 0x03, 0x46, 0x4c, 0xc3, 0xf9, 0xc3, 0x31, 0xdb, 0xb4, 0x0e, 0xcd, + 0x10, 0xac, 0x3c, 0x00, 0x75, 0xf5, 0xc3, 0x52, 0x56, 0x57, 0x66, 0x50, + 0x89, 0xe7, 0x6a, 0x00, 0x6a, 0x00, 0x66, 0x50, 0x06, 0x53, 0x6a, 0x01, + 0x6a, 0x10, 0x89, 0xe6, 0x8a, 0x56, 0x40, 0xb4, 0x42, 0xcd, 0x13, 0x89, + 0xfc, 0x66, 0x58, 0x73, 0x08, 0x50, 0x30, 0xe4, 0xcd, 0x13, 0x58, 0xeb, + 0xd9, 0x66, 0x40, 0x03, 0x5e, 0x0b, 0x73, 0x07, 0x8c, 0xc2, 0x80, 0xc6, + 0x10, 0x8e, 0xc2, 0x5f, 0x5e, 0x5a, 0xc3, 0x4c, 0x6f, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x20, 0x46, 0x72, 0x65, 0x65, 0x44, 0x4f, 0x53, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x4e, 0x6f, 0x20, 0x4b, 0x45, 0x52, 0x4e, 0x45, + 0x4c, 0x20, 0x20, 0x53, 0x59, 0x53, 0x00, 0x00, 0x55, 0xaa, 0x52, 0x52, + 0x61, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x72, 0x72, 0x41, 0x61 +}; + diff -Nru ms-sys-2.1.0/inc/br_ntfs_0x0.h ms-sys-2.3.0/inc/br_ntfs_0x0.h --- ms-sys-2.1.0/inc/br_ntfs_0x0.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/br_ntfs_0x0.h 2012-02-26 16:31:31.000000000 +0000 @@ -0,0 +1,3 @@ +unsigned char br_ntfs_0x0[] = { + 0xEB, 0x52, 0x90, 0x4E, 0x54, 0x46, 0x53, 0x20, 0x20, 0x20, 0x20 +}; diff -Nru ms-sys-2.1.0/inc/br_ntfs_0x54.h ms-sys-2.3.0/inc/br_ntfs_0x54.h --- ms-sys-2.1.0/inc/br_ntfs_0x54.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/br_ntfs_0x54.h 2012-02-26 16:31:31.000000000 +0000 @@ -0,0 +1,340 @@ +unsigned char br_ntfs_0x54[] = { + 0xFA, 0x33, 0xC0, 0x8E, 0xD0, 0xBC, 0x00, 0x7C, 0xFB, 0x68, 0xC0, 0x07, + 0x1F, 0x1E, 0x68, 0x66, 0x00, 0xCB, 0x88, 0x16, 0x0E, 0x00, 0x66, 0x81, + 0x3E, 0x03, 0x00, 0x4E, 0x54, 0x46, 0x53, 0x75, 0x15, 0xB4, 0x41, 0xBB, + 0xAA, 0x55, 0xCD, 0x13, 0x72, 0x0C, 0x81, 0xFB, 0x55, 0xAA, 0x75, 0x06, + 0xF7, 0xC1, 0x01, 0x00, 0x75, 0x03, 0xE9, 0xDD, 0x00, 0x1E, 0x83, 0xEC, + 0x18, 0x68, 0x1A, 0x00, 0xB4, 0x48, 0x8A, 0x16, 0x0E, 0x00, 0x8B, 0xF4, + 0x16, 0x1F, 0xCD, 0x13, 0x9F, 0x83, 0xC4, 0x18, 0x9E, 0x58, 0x1F, 0x72, + 0xE1, 0x3B, 0x06, 0x0B, 0x00, 0x75, 0xDB, 0xA3, 0x0F, 0x00, 0xC1, 0x2E, + 0x0F, 0x00, 0x04, 0x1E, 0x5A, 0x33, 0xDB, 0xB9, 0x00, 0x20, 0x2B, 0xC8, + 0x66, 0xFF, 0x06, 0x11, 0x00, 0x03, 0x16, 0x0F, 0x00, 0x8E, 0xC2, 0xFF, + 0x06, 0x16, 0x00, 0xE8, 0x4B, 0x00, 0x2B, 0xC8, 0x77, 0xEF, 0xB8, 0x00, + 0xBB, 0xCD, 0x1A, 0x66, 0x23, 0xC0, 0x75, 0x2D, 0x66, 0x81, 0xFB, 0x54, + 0x43, 0x50, 0x41, 0x75, 0x24, 0x81, 0xF9, 0x02, 0x01, 0x72, 0x1E, 0x16, + 0x68, 0x07, 0xBB, 0x16, 0x68, 0x70, 0x0E, 0x16, 0x68, 0x09, 0x00, 0x66, + 0x53, 0x66, 0x53, 0x66, 0x55, 0x16, 0x16, 0x16, 0x68, 0xB8, 0x01, 0x66, + 0x61, 0x0E, 0x07, 0xCD, 0x1A, 0x33, 0xC0, 0xBF, 0x28, 0x10, 0xB9, 0xD8, + 0x0F, 0xFC, 0xF3, 0xAA, 0xE9, 0x5F, 0x01, 0x90, 0x90, 0x66, 0x60, 0x1E, + 0x06, 0x66, 0xA1, 0x11, 0x00, 0x66, 0x03, 0x06, 0x1C, 0x00, 0x1E, 0x66, + 0x68, 0x00, 0x00, 0x00, 0x00, 0x66, 0x50, 0x06, 0x53, 0x68, 0x01, 0x00, + 0x68, 0x10, 0x00, 0xB4, 0x42, 0x8A, 0x16, 0x0E, 0x00, 0x16, 0x1F, 0x8B, + 0xF4, 0xCD, 0x13, 0x66, 0x59, 0x5B, 0x5A, 0x66, 0x59, 0x66, 0x59, 0x1F, + 0x0F, 0x82, 0x16, 0x00, 0x66, 0xFF, 0x06, 0x11, 0x00, 0x03, 0x16, 0x0F, + 0x00, 0x8E, 0xC2, 0xFF, 0x0E, 0x16, 0x00, 0x75, 0xBC, 0x07, 0x1F, 0x66, + 0x61, 0xC3, 0xA0, 0xF8, 0x01, 0xE8, 0x09, 0x00, 0xA0, 0xFB, 0x01, 0xE8, + 0x03, 0x00, 0xF4, 0xEB, 0xFD, 0xB4, 0x01, 0x8B, 0xF0, 0xAC, 0x3C, 0x00, + 0x74, 0x09, 0xB4, 0x0E, 0xBB, 0x07, 0x00, 0xCD, 0x10, 0xEB, 0xF2, 0xC3, + 0x0D, 0x0A, 0x41, 0x20, 0x64, 0x69, 0x73, 0x6B, 0x20, 0x72, 0x65, 0x61, + 0x64, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72, 0x20, 0x6F, 0x63, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x64, 0x00, 0x0D, 0x0A, 0x42, 0x4F, 0x4F, 0x54, 0x4D, + 0x47, 0x52, 0x20, 0x69, 0x73, 0x20, 0x6D, 0x69, 0x73, 0x73, 0x69, 0x6E, + 0x67, 0x00, 0x0D, 0x0A, 0x42, 0x4F, 0x4F, 0x54, 0x4D, 0x47, 0x52, 0x20, + 0x69, 0x73, 0x20, 0x63, 0x6F, 0x6D, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, + 0x64, 0x00, 0x0D, 0x0A, 0x50, 0x72, 0x65, 0x73, 0x73, 0x20, 0x43, 0x74, + 0x72, 0x6C, 0x2B, 0x41, 0x6C, 0x74, 0x2B, 0x44, 0x65, 0x6C, 0x20, 0x74, + 0x6F, 0x20, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x0D, 0x0A, 0x00, + 0x8C, 0xA9, 0xBE, 0xD6, 0x00, 0x00, 0x55, 0xAA, 0x07, 0x00, 0x42, 0x00, + 0x4F, 0x00, 0x4F, 0x00, 0x54, 0x00, 0x4D, 0x00, 0x47, 0x00, 0x52, 0x00, + 0x04, 0x00, 0x24, 0x00, 0x49, 0x00, 0x33, 0x00, 0x30, 0x00, 0x00, 0xD4, + 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x22, + 0x90, 0x90, 0x05, 0x00, 0x4E, 0x00, 0x54, 0x00, 0x4C, 0x00, 0x44, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0F, + 0xB7, 0x06, 0x0B, 0x00, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66, 0xF7, + 0xE3, 0x66, 0xA3, 0x52, 0x02, 0x66, 0x8B, 0x0E, 0x40, 0x00, 0x80, 0xF9, + 0x00, 0x0F, 0x8F, 0x0E, 0x00, 0xF6, 0xD9, 0x66, 0xB8, 0x01, 0x00, 0x00, + 0x00, 0x66, 0xD3, 0xE0, 0xEB, 0x08, 0x90, 0x66, 0xA1, 0x52, 0x02, 0x66, + 0xF7, 0xE1, 0x66, 0xA3, 0x66, 0x02, 0x66, 0x0F, 0xB7, 0x1E, 0x0B, 0x00, + 0x66, 0x33, 0xD2, 0x66, 0xF7, 0xF3, 0x66, 0xA3, 0x56, 0x02, 0xE8, 0x95, + 0x04, 0x66, 0x8B, 0x0E, 0x4E, 0x02, 0x66, 0x89, 0x0E, 0x26, 0x02, 0x66, + 0x03, 0x0E, 0x66, 0x02, 0x66, 0x89, 0x0E, 0x2A, 0x02, 0x66, 0x03, 0x0E, + 0x66, 0x02, 0x66, 0x89, 0x0E, 0x2E, 0x02, 0x66, 0x03, 0x0E, 0x66, 0x02, + 0x66, 0x89, 0x0E, 0x3E, 0x02, 0x66, 0x03, 0x0E, 0x66, 0x02, 0x66, 0x89, + 0x0E, 0x46, 0x02, 0x66, 0xB8, 0x90, 0x00, 0x00, 0x00, 0x66, 0x8B, 0x0E, + 0x26, 0x02, 0xE8, 0x83, 0x09, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0x5E, 0xFE, + 0x66, 0xA3, 0x32, 0x02, 0x66, 0xB8, 0xA0, 0x00, 0x00, 0x00, 0x66, 0x8B, + 0x0E, 0x2A, 0x02, 0xE8, 0x6A, 0x09, 0x66, 0xA3, 0x36, 0x02, 0x66, 0xB8, + 0xB0, 0x00, 0x00, 0x00, 0x66, 0x8B, 0x0E, 0x2E, 0x02, 0xE8, 0x58, 0x09, + 0x66, 0xA3, 0x3A, 0x02, 0x66, 0xA1, 0x32, 0x02, 0x66, 0x0B, 0xC0, 0x0F, + 0x84, 0x2B, 0xFE, 0x67, 0x80, 0x78, 0x08, 0x00, 0x0F, 0x85, 0x22, 0xFE, + 0x67, 0x66, 0x8D, 0x50, 0x10, 0x67, 0x03, 0x42, 0x04, 0x67, 0x66, 0x0F, + 0xB6, 0x48, 0x0C, 0x66, 0x89, 0x0E, 0x72, 0x02, 0x67, 0x66, 0x8B, 0x48, + 0x08, 0x66, 0x89, 0x0E, 0x6E, 0x02, 0x66, 0xA1, 0x6E, 0x02, 0x66, 0x0F, + 0xB7, 0x0E, 0x0B, 0x00, 0x66, 0x33, 0xD2, 0x66, 0xF7, 0xF1, 0x66, 0xA3, + 0x76, 0x02, 0x66, 0xA1, 0x46, 0x02, 0x66, 0x03, 0x06, 0x6E, 0x02, 0x66, + 0xA3, 0x4A, 0x02, 0x66, 0x83, 0x3E, 0x36, 0x02, 0x00, 0x0F, 0x84, 0x1D, + 0x00, 0x66, 0x83, 0x3E, 0x3A, 0x02, 0x00, 0x0F, 0x84, 0xCF, 0xFD, 0x66, + 0x8B, 0x1E, 0x3A, 0x02, 0x1E, 0x07, 0x66, 0x8B, 0x3E, 0x4A, 0x02, 0x66, + 0xA1, 0x2E, 0x02, 0xE8, 0xE0, 0x01, 0x66, 0x0F, 0xB7, 0x0E, 0x00, 0x02, + 0x66, 0xB8, 0x02, 0x02, 0x00, 0x00, 0xE8, 0x22, 0x08, 0x66, 0x0B, 0xC0, + 0x0F, 0x85, 0x16, 0x00, 0x66, 0x0F, 0xB7, 0x0E, 0x5A, 0x02, 0x66, 0xB8, + 0x5C, 0x02, 0x00, 0x00, 0xE8, 0x0C, 0x08, 0x66, 0x0B, 0xC0, 0x0F, 0x84, + 0x42, 0x0C, 0x67, 0x66, 0x8B, 0x00, 0x1E, 0x07, 0x66, 0x8B, 0x3E, 0x3E, + 0x02, 0xE8, 0x3F, 0x06, 0x66, 0xA1, 0x3E, 0x02, 0x66, 0xBB, 0x20, 0x00, + 0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x66, 0xBA, 0x00, 0x00, + 0x00, 0x00, 0xE8, 0xE4, 0x00, 0x66, 0x85, 0xC0, 0x0F, 0x85, 0x23, 0x00, + 0x66, 0xA1, 0x3E, 0x02, 0x66, 0xBB, 0x80, 0x00, 0x00, 0x00, 0x66, 0xB9, + 0x00, 0x00, 0x00, 0x00, 0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xC4, + 0x00, 0x66, 0x0B, 0xC0, 0x0F, 0x85, 0x44, 0x00, 0xE9, 0xF1, 0x0B, 0x66, + 0x33, 0xD2, 0x66, 0xB9, 0x80, 0x00, 0x00, 0x00, 0x66, 0xA1, 0x3E, 0x02, + 0xE8, 0xCA, 0x08, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0xDA, 0x0B, 0x1E, 0x07, + 0x66, 0x8B, 0x3E, 0x3E, 0x02, 0xE8, 0xDB, 0x05, 0x66, 0xA1, 0x3E, 0x02, + 0x66, 0xBB, 0x80, 0x00, 0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00, 0x00, + 0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x80, 0x00, 0x66, 0x0B, 0xC0, + 0x0F, 0x84, 0xB0, 0x0B, 0x67, 0x66, 0x0F, 0xB7, 0x58, 0x0C, 0x66, 0x81, + 0xE3, 0xFF, 0x00, 0x00, 0x00, 0x0F, 0x85, 0xA5, 0x0B, 0x66, 0x8B, 0xD8, + 0x68, 0x00, 0x20, 0x07, 0x66, 0x2B, 0xFF, 0x66, 0xA1, 0x3E, 0x02, 0xE8, + 0x00, 0x01, 0x68, 0x00, 0x20, 0x07, 0x66, 0x2B, 0xFF, 0x66, 0xA1, 0x3E, + 0x02, 0xE8, 0xAC, 0x0A, 0x8A, 0x16, 0x0E, 0x00, 0xB8, 0xE8, 0x03, 0x8E, + 0xC0, 0x8D, 0x36, 0x0B, 0x00, 0x2B, 0xC0, 0x68, 0x00, 0x20, 0x50, 0xCB, + 0x06, 0x1E, 0x66, 0x60, 0x66, 0x8B, 0xDA, 0x66, 0x0F, 0xB6, 0x0E, 0x0D, + 0x00, 0x66, 0xF7, 0xE1, 0x66, 0xA3, 0x11, 0x00, 0x66, 0x8B, 0xC3, 0x66, + 0xF7, 0xE1, 0xA3, 0x16, 0x00, 0x8B, 0xDF, 0x83, 0xE3, 0x0F, 0x8C, 0xC0, + 0x66, 0xC1, 0xEF, 0x04, 0x03, 0xC7, 0x50, 0x07, 0xE8, 0x3E, 0xFC, 0x66, + 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x67, 0x03, 0x40, 0x14, 0x67, 0x66, 0x83, + 0x38, 0xFF, 0x0F, 0x84, 0x4C, 0x00, 0x67, 0x66, 0x39, 0x18, 0x0F, 0x85, + 0x33, 0x00, 0x66, 0x0B, 0xC9, 0x0F, 0x85, 0x0A, 0x00, 0x67, 0x80, 0x78, + 0x09, 0x00, 0x0F, 0x85, 0x23, 0x00, 0xC3, 0x67, 0x3A, 0x48, 0x09, 0x0F, + 0x85, 0x1A, 0x00, 0x66, 0x8B, 0xF0, 0x67, 0x03, 0x70, 0x0A, 0xE8, 0x97, + 0x06, 0x66, 0x51, 0x1E, 0x07, 0x66, 0x8B, 0xFA, 0xF3, 0xA7, 0x66, 0x59, + 0x0F, 0x85, 0x01, 0x00, 0xC3, 0x67, 0x66, 0x83, 0x78, 0x04, 0x00, 0x0F, + 0x84, 0x07, 0x00, 0x67, 0x66, 0x03, 0x40, 0x04, 0xEB, 0xAB, 0x66, 0x2B, + 0xC0, 0xC3, 0x66, 0x8B, 0xF3, 0xE8, 0x6C, 0x06, 0x67, 0x66, 0x03, 0x00, + 0x67, 0xF7, 0x40, 0x0C, 0x02, 0x00, 0x0F, 0x85, 0x34, 0x00, 0x67, 0x66, + 0x8D, 0x50, 0x10, 0x67, 0x3A, 0x4A, 0x40, 0x0F, 0x85, 0x18, 0x00, 0x67, + 0x66, 0x8D, 0x72, 0x42, 0xE8, 0x49, 0x06, 0x66, 0x51, 0x1E, 0x07, 0x66, + 0x8B, 0xFB, 0xF3, 0xA7, 0x66, 0x59, 0x0F, 0x85, 0x01, 0x00, 0xC3, 0x67, + 0x83, 0x78, 0x08, 0x00, 0x0F, 0x84, 0x06, 0x00, 0x67, 0x03, 0x40, 0x08, + 0xEB, 0xC2, 0x66, 0x33, 0xC0, 0xC3, 0x67, 0x80, 0x7B, 0x08, 0x00, 0x0F, + 0x85, 0x1C, 0x00, 0x06, 0x1E, 0x66, 0x60, 0x67, 0x66, 0x8D, 0x53, 0x10, + 0x67, 0x66, 0x8B, 0x0A, 0x66, 0x8B, 0xF3, 0x67, 0x03, 0x72, 0x04, 0xF3, + 0xA4, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x66, 0x50, 0x67, 0x66, 0x8D, + 0x53, 0x10, 0x66, 0x85, 0xC0, 0x0F, 0x85, 0x0A, 0x00, 0x67, 0x66, 0x8B, + 0x4A, 0x08, 0x66, 0x41, 0xEB, 0x11, 0x90, 0x67, 0x66, 0x8B, 0x42, 0x18, + 0x66, 0x33, 0xD2, 0x66, 0xF7, 0x36, 0x52, 0x02, 0x66, 0x8B, 0xC8, 0x66, + 0x2B, 0xC0, 0x66, 0x5E, 0xE8, 0x01, 0x00, 0xC3, 0x06, 0x1E, 0x66, 0x60, + 0x67, 0x80, 0x7B, 0x08, 0x01, 0x0F, 0x84, 0x03, 0x00, 0xE9, 0x76, 0xFB, + 0x66, 0x83, 0xF9, 0x00, 0x0F, 0x85, 0x06, 0x00, 0x66, 0x61, 0x90, 0x1F, + 0x07, 0xC3, 0x66, 0x53, 0x66, 0x50, 0x66, 0x51, 0x66, 0x56, 0x66, 0x57, + 0x06, 0xE8, 0x91, 0x04, 0x66, 0x8B, 0xD1, 0x07, 0x66, 0x5F, 0x66, 0x5E, + 0x66, 0x59, 0x66, 0x85, 0xC0, 0x0F, 0x84, 0x34, 0x00, 0x66, 0x3B, 0xCA, + 0x0F, 0x8D, 0x03, 0x00, 0x66, 0x8B, 0xD1, 0xE8, 0x82, 0xFE, 0x66, 0x2B, + 0xCA, 0x66, 0x8B, 0xDA, 0x66, 0x8B, 0xC2, 0x66, 0x0F, 0xB6, 0x16, 0x0D, + 0x00, 0x66, 0xF7, 0xE2, 0x66, 0x0F, 0xB7, 0x16, 0x0B, 0x00, 0x66, 0xF7, + 0xE2, 0x66, 0x03, 0xF8, 0x66, 0x58, 0x66, 0x03, 0xC3, 0x66, 0x5B, 0xEB, + 0x9F, 0x66, 0x85, 0xF6, 0x0F, 0x84, 0x0E, 0xFB, 0x66, 0x51, 0x66, 0x57, + 0x06, 0x67, 0x66, 0x0F, 0xB6, 0x43, 0x09, 0x66, 0x85, 0xC0, 0x0F, 0x84, + 0x20, 0x00, 0x66, 0xD1, 0xE0, 0x66, 0x2B, 0xE0, 0x66, 0x8B, 0xFC, 0x66, + 0x54, 0x66, 0x56, 0x67, 0x66, 0x0F, 0xB7, 0x73, 0x0A, 0x66, 0x03, 0xF3, + 0x66, 0x8B, 0xC8, 0xF3, 0xA4, 0x66, 0x5E, 0xEB, 0x03, 0x90, 0x66, 0x50, + 0x66, 0x50, 0x67, 0x66, 0x8B, 0x03, 0x66, 0x50, 0x67, 0x66, 0x8B, 0x43, + 0x18, 0x66, 0x50, 0x67, 0x66, 0x8B, 0x56, 0x20, 0x66, 0x85, 0xD2, 0x0F, + 0x84, 0x0B, 0x00, 0x66, 0x8B, 0xFE, 0x1E, 0x07, 0x66, 0x8B, 0xC2, 0xE8, + 0x71, 0x03, 0x66, 0x8B, 0xC6, 0x66, 0x5A, 0x66, 0x59, 0x66, 0x42, 0x66, + 0x51, 0x66, 0x56, 0xE8, 0x3F, 0x06, 0x66, 0x85, 0xC0, 0x0F, 0x84, 0x9D, + 0xFA, 0x66, 0x5E, 0x66, 0x59, 0x66, 0x8B, 0xFE, 0x1E, 0x07, 0xE8, 0x4E, + 0x03, 0x66, 0x8B, 0xC6, 0x66, 0x8B, 0xD9, 0x66, 0x59, 0x66, 0x5A, 0x66, + 0x51, 0x66, 0x56, 0x66, 0xD1, 0xE9, 0xE8, 0xF8, 0xFD, 0x66, 0x85, 0xC0, + 0x0F, 0x84, 0x76, 0xFA, 0x66, 0x5E, 0x66, 0x59, 0x66, 0x03, 0xE1, 0x07, + 0x66, 0x5F, 0x66, 0x59, 0x66, 0x8B, 0xD0, 0x66, 0x58, 0x66, 0x5B, 0x66, + 0x8B, 0xDA, 0xE9, 0xF5, 0xFE, 0x06, 0x1E, 0x66, 0x60, 0x26, 0x67, 0x66, + 0x0F, 0xB7, 0x5F, 0x04, 0x26, 0x67, 0x66, 0x0F, 0xB7, 0x4F, 0x06, 0x66, + 0x0B, 0xC9, 0x0F, 0x84, 0x44, 0xFA, 0x66, 0x03, 0xDF, 0x66, 0x83, 0xC3, + 0x02, 0x66, 0x81, 0xC7, 0xFE, 0x01, 0x00, 0x00, 0x66, 0x49, 0x66, 0x0B, + 0xC9, 0x0F, 0x84, 0x17, 0x00, 0x26, 0x67, 0x8B, 0x03, 0x26, 0x67, 0x89, + 0x07, 0x66, 0x83, 0xC3, 0x02, 0x66, 0x81, 0xC7, 0x00, 0x02, 0x00, 0x00, + 0x66, 0x49, 0xEB, 0xE2, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x06, 0x1E, + 0x66, 0x60, 0x66, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x66, 0xA3, 0x22, 0x02, + 0x66, 0xA1, 0x1E, 0x02, 0x66, 0x03, 0x06, 0x66, 0x02, 0x66, 0xA3, 0x6A, + 0x02, 0x66, 0x03, 0x06, 0x66, 0x02, 0x66, 0xA3, 0x4E, 0x02, 0x66, 0xA1, + 0x30, 0x00, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66, 0xF7, 0xE3, 0x66, + 0x8B, 0x1E, 0x4E, 0x02, 0x66, 0x89, 0x07, 0x66, 0xA3, 0x11, 0x00, 0x83, + 0xC3, 0x04, 0x66, 0xA1, 0x56, 0x02, 0x66, 0x89, 0x07, 0xA3, 0x16, 0x00, + 0x83, 0xC3, 0x04, 0x66, 0x89, 0x1E, 0x4E, 0x02, 0x66, 0x8B, 0x1E, 0x1E, + 0x02, 0x1E, 0x07, 0xE8, 0x67, 0xF9, 0x66, 0x8B, 0xFB, 0xE8, 0x51, 0xFF, + 0x66, 0xA1, 0x1E, 0x02, 0x66, 0xBB, 0x20, 0x00, 0x00, 0x00, 0x66, 0xB9, + 0x00, 0x00, 0x00, 0x00, 0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x10, + 0xFD, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0x19, 0x01, 0x66, 0x8B, 0xD8, 0x1E, + 0x07, 0x66, 0x8B, 0x3E, 0x1A, 0x02, 0x66, 0x33, 0xC0, 0xE8, 0xA2, 0xFD, + 0x66, 0x8B, 0x1E, 0x1A, 0x02, 0x66, 0x81, 0x3F, 0x80, 0x00, 0x00, 0x00, + 0x0F, 0x84, 0xEB, 0x00, 0x03, 0x5F, 0x04, 0xEB, 0xF0, 0x66, 0x53, 0x66, + 0x8B, 0x47, 0x10, 0x66, 0xF7, 0x26, 0x56, 0x02, 0x66, 0x50, 0x66, 0x33, + 0xD2, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66, 0xF7, 0xF3, 0x66, 0x52, + 0xE8, 0xDC, 0x00, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0x44, 0xF9, 0x66, 0x8B, + 0x0E, 0x56, 0x02, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66, 0xF7, 0xE3, + 0x66, 0x5A, 0x66, 0x03, 0xC2, 0x66, 0x8B, 0x1E, 0x4E, 0x02, 0x66, 0x89, + 0x07, 0x83, 0xC3, 0x04, 0x66, 0x0F, 0xB6, 0x06, 0x0D, 0x00, 0x66, 0x2B, + 0xC2, 0x66, 0x3B, 0xC1, 0x0F, 0x86, 0x03, 0x00, 0x66, 0x8B, 0xC1, 0x66, + 0x89, 0x07, 0x66, 0x2B, 0xC8, 0x66, 0x5A, 0x0F, 0x84, 0x75, 0x00, 0x66, + 0x03, 0xC2, 0x66, 0x50, 0x66, 0x33, 0xD2, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, + 0x00, 0x66, 0xF7, 0xF3, 0x66, 0x51, 0xE8, 0x82, 0x00, 0x66, 0x59, 0x66, + 0x0B, 0xC0, 0x0F, 0x84, 0xE8, 0xF8, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, + 0x66, 0xF7, 0xE3, 0x66, 0x8B, 0x1E, 0x4E, 0x02, 0x66, 0x8B, 0x17, 0x83, + 0xC3, 0x04, 0x66, 0x03, 0x17, 0x66, 0x3B, 0xD0, 0x0F, 0x85, 0x15, 0x00, + 0x66, 0x0F, 0xB6, 0x06, 0x0D, 0x00, 0x66, 0x3B, 0xC1, 0x0F, 0x86, 0x03, + 0x00, 0x66, 0x8B, 0xC1, 0x66, 0x01, 0x07, 0xEB, 0xA5, 0x83, 0xC3, 0x04, + 0x66, 0x89, 0x1E, 0x4E, 0x02, 0x66, 0x89, 0x07, 0x83, 0xC3, 0x04, 0x66, + 0x0F, 0xB6, 0x06, 0x0D, 0x00, 0x66, 0x3B, 0xC1, 0x0F, 0x86, 0x03, 0x00, + 0x66, 0x8B, 0xC1, 0x66, 0x89, 0x07, 0xEB, 0x82, 0x83, 0xC3, 0x04, 0x66, + 0xFF, 0x06, 0x22, 0x02, 0x66, 0x89, 0x1E, 0x4E, 0x02, 0x66, 0x5B, 0x03, + 0x5F, 0x04, 0x66, 0x81, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x0F, 0x84, 0x0C, + 0xFF, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x66, 0x8B, 0xD0, 0x66, 0x8B, + 0x0E, 0x22, 0x02, 0x66, 0x8B, 0x36, 0x6A, 0x02, 0x66, 0x03, 0x36, 0x66, + 0x02, 0x66, 0x52, 0x66, 0x51, 0x66, 0x52, 0x66, 0x8B, 0x1E, 0x6A, 0x02, + 0x66, 0x8B, 0x3E, 0x56, 0x02, 0x66, 0x8B, 0x04, 0x66, 0xA3, 0x11, 0x00, + 0x83, 0xC6, 0x04, 0x66, 0x8B, 0x04, 0xA3, 0x16, 0x00, 0x83, 0xC6, 0x04, + 0x1E, 0x07, 0xE8, 0xE8, 0xF7, 0x66, 0x2B, 0xF8, 0x0F, 0x84, 0x08, 0x00, + 0xF7, 0x26, 0x0B, 0x00, 0x03, 0xD8, 0xEB, 0xD9, 0x66, 0x8B, 0x3E, 0x6A, + 0x02, 0x1E, 0x07, 0xE8, 0xBF, 0xFD, 0x66, 0xA1, 0x6A, 0x02, 0x66, 0xBB, + 0x80, 0x00, 0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x66, 0x8B, + 0xD1, 0xE8, 0x81, 0xFB, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0xFF, 0xF7, 0x66, + 0x8B, 0xD8, 0x66, 0x58, 0x66, 0x56, 0xE8, 0x2C, 0x01, 0x66, 0x5E, 0x66, + 0x0B, 0xC0, 0x0F, 0x84, 0x05, 0x00, 0x66, 0x5B, 0x66, 0x5B, 0xC3, 0x66, + 0x59, 0x66, 0x5A, 0xE2, 0x84, 0x66, 0x33, 0xC0, 0xC3, 0x06, 0x1E, 0x66, + 0x60, 0x66, 0x50, 0x66, 0x51, 0x66, 0x33, 0xD2, 0x66, 0x0F, 0xB6, 0x1E, + 0x0D, 0x00, 0x66, 0xF7, 0xF3, 0x66, 0x52, 0x66, 0x57, 0xE8, 0x53, 0xFF, + 0x66, 0x5F, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0xB9, 0xF7, 0x66, 0x0F, 0xB6, + 0x1E, 0x0D, 0x00, 0x66, 0xF7, 0xE3, 0x66, 0x5A, 0x66, 0x03, 0xC2, 0x66, + 0xA3, 0x11, 0x00, 0x66, 0x59, 0x66, 0x0F, 0xB6, 0x1E, 0x0D, 0x00, 0x66, + 0x3B, 0xCB, 0x0F, 0x8E, 0x13, 0x00, 0x89, 0x1E, 0x16, 0x00, 0x66, 0x2B, + 0xCB, 0x66, 0x58, 0x66, 0x03, 0xC3, 0x66, 0x50, 0x66, 0x51, 0xEB, 0x14, + 0x90, 0x66, 0x58, 0x66, 0x03, 0xC1, 0x66, 0x50, 0x89, 0x0E, 0x16, 0x00, + 0x66, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x66, 0x51, 0x06, 0x66, 0x57, 0x8B, + 0xDF, 0x83, 0xE3, 0x0F, 0x8C, 0xC0, 0x66, 0xC1, 0xEF, 0x04, 0x03, 0xC7, + 0x50, 0x07, 0xE8, 0x10, 0xF7, 0x66, 0x5F, 0x07, 0x66, 0x03, 0x3E, 0x52, + 0x02, 0x66, 0x59, 0x66, 0x58, 0x66, 0x83, 0xF9, 0x00, 0x0F, 0x8F, 0x70, + 0xFF, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x06, 0x1E, 0x66, 0x60, 0x66, + 0xF7, 0x26, 0x56, 0x02, 0x66, 0x8B, 0x0E, 0x56, 0x02, 0xE8, 0x55, 0xFF, + 0xE8, 0xD2, 0xFC, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0x06, 0x1E, 0x66, + 0x60, 0x66, 0xF7, 0x26, 0x72, 0x02, 0x66, 0x8B, 0x1E, 0x36, 0x02, 0x66, + 0x8B, 0x0E, 0x72, 0x02, 0x66, 0x8B, 0x36, 0x2A, 0x02, 0x1E, 0x07, 0x66, + 0x8B, 0x3E, 0x46, 0x02, 0xE8, 0x81, 0xFB, 0xE8, 0xA7, 0xFC, 0x66, 0x61, + 0x90, 0x1F, 0x07, 0xC3, 0x66, 0x50, 0x66, 0x53, 0x66, 0x51, 0x66, 0x8B, + 0x1E, 0x4A, 0x02, 0x66, 0x8B, 0xC8, 0x66, 0xC1, 0xE8, 0x03, 0x66, 0x83, + 0xE1, 0x07, 0x66, 0x03, 0xD8, 0x66, 0xB8, 0x01, 0x00, 0x00, 0x00, 0x66, + 0xD3, 0xE0, 0x67, 0x84, 0x03, 0x0F, 0x84, 0x04, 0x00, 0xF8, 0xEB, 0x02, + 0x90, 0xF9, 0x66, 0x59, 0x66, 0x5B, 0x66, 0x58, 0xC3, 0x67, 0x80, 0x7B, + 0x08, 0x01, 0x0F, 0x84, 0x04, 0x00, 0x66, 0x2B, 0xC0, 0xC3, 0x67, 0x66, + 0x8D, 0x73, 0x10, 0x67, 0x66, 0x8B, 0x56, 0x08, 0x66, 0x3B, 0xC2, 0x0F, + 0x87, 0x0B, 0x00, 0x67, 0x66, 0x8B, 0x16, 0x66, 0x3B, 0xC2, 0x0F, 0x83, + 0x04, 0x00, 0x66, 0x2B, 0xC0, 0xC3, 0x67, 0x03, 0x5E, 0x10, 0x66, 0x2B, + 0xF6, 0x67, 0x80, 0x3B, 0x00, 0x0F, 0x84, 0x3E, 0x00, 0xE8, 0x81, 0x00, + 0x66, 0x03, 0xF1, 0xE8, 0x39, 0x00, 0x66, 0x03, 0xCA, 0x66, 0x3B, 0xC1, + 0x0F, 0x8C, 0x21, 0x00, 0x66, 0x8B, 0xD1, 0x66, 0x50, 0x67, 0x66, 0x0F, + 0xB6, 0x0B, 0x66, 0x8B, 0xC1, 0x66, 0x83, 0xE0, 0x0F, 0x66, 0xC1, 0xE9, + 0x04, 0x66, 0x03, 0xD9, 0x66, 0x03, 0xD8, 0x66, 0x43, 0x66, 0x58, 0xEB, + 0xC4, 0x66, 0x2B, 0xC8, 0x66, 0x2B, 0xC2, 0x66, 0x03, 0xC6, 0xC3, 0x66, + 0x2B, 0xC0, 0xC3, 0x66, 0x2B, 0xC9, 0x67, 0x8A, 0x0B, 0x80, 0xE1, 0x0F, + 0x66, 0x83, 0xF9, 0x00, 0x0F, 0x85, 0x04, 0x00, 0x66, 0x2B, 0xC9, 0xC3, + 0x66, 0x53, 0x66, 0x52, 0x66, 0x03, 0xD9, 0x67, 0x66, 0x0F, 0xBE, 0x13, + 0x66, 0x49, 0x66, 0x4B, 0x66, 0x83, 0xF9, 0x00, 0x0F, 0x84, 0x0D, 0x00, + 0x66, 0xC1, 0xE2, 0x08, 0x67, 0x8A, 0x13, 0x66, 0x4B, 0x66, 0x49, 0xEB, + 0xEB, 0x66, 0x8B, 0xCA, 0x66, 0x5A, 0x66, 0x5B, 0xC3, 0x66, 0x53, 0x66, + 0x52, 0x66, 0x2B, 0xD2, 0x67, 0x8A, 0x13, 0x66, 0x83, 0xE2, 0x0F, 0x66, + 0x2B, 0xC9, 0x67, 0x8A, 0x0B, 0xC0, 0xE9, 0x04, 0x66, 0x83, 0xF9, 0x00, + 0x0F, 0x85, 0x08, 0x00, 0x66, 0x2B, 0xC9, 0x66, 0x5A, 0x66, 0x5B, 0xC3, + 0x66, 0x03, 0xDA, 0x66, 0x03, 0xD9, 0x67, 0x66, 0x0F, 0xBE, 0x13, 0x66, + 0x49, 0x66, 0x4B, 0x66, 0x83, 0xF9, 0x00, 0x0F, 0x84, 0x0D, 0x00, 0x66, + 0xC1, 0xE2, 0x08, 0x67, 0x8A, 0x13, 0x66, 0x4B, 0x66, 0x49, 0xEB, 0xEB, + 0x66, 0x8B, 0xCA, 0x66, 0x5A, 0x66, 0x5B, 0xC3, 0x66, 0x0B, 0xC9, 0x0F, + 0x85, 0x01, 0x00, 0xC3, 0x66, 0x51, 0x66, 0x56, 0x67, 0x83, 0x3E, 0x61, + 0x0F, 0x8C, 0x0C, 0x00, 0x67, 0x83, 0x3E, 0x7A, 0x0F, 0x8F, 0x04, 0x00, + 0x67, 0x83, 0x2E, 0x20, 0x66, 0x83, 0xC6, 0x02, 0xE2, 0xE6, 0x66, 0x5E, + 0x66, 0x59, 0xC3, 0x66, 0x50, 0x66, 0x51, 0x66, 0x8B, 0xD0, 0x66, 0xA1, + 0x32, 0x02, 0x67, 0x66, 0x8D, 0x58, 0x10, 0x67, 0x03, 0x43, 0x04, 0x67, + 0x66, 0x8D, 0x40, 0x10, 0x66, 0x8B, 0xDA, 0xE8, 0x44, 0xF9, 0x66, 0x0B, + 0xC0, 0x0F, 0x84, 0x05, 0x00, 0x66, 0x59, 0x66, 0x59, 0xC3, 0x66, 0xA1, + 0x36, 0x02, 0x66, 0x0B, 0xC0, 0x0F, 0x85, 0x08, 0x00, 0x66, 0x59, 0x66, + 0x59, 0x66, 0x33, 0xC0, 0xC3, 0x66, 0x8B, 0x16, 0x36, 0x02, 0x67, 0x66, + 0x8D, 0x52, 0x10, 0x67, 0x66, 0x8B, 0x42, 0x18, 0x66, 0x33, 0xD2, 0x66, + 0xF7, 0x36, 0x6E, 0x02, 0x66, 0x33, 0xF6, 0x66, 0x50, 0x66, 0x56, 0x66, + 0x58, 0x66, 0x5E, 0x66, 0x3B, 0xC6, 0x0F, 0x84, 0x3A, 0x00, 0x66, 0x56, + 0x66, 0x40, 0x66, 0x50, 0x66, 0x48, 0xE8, 0x1B, 0xFE, 0x72, 0xE8, 0xE8, + 0xEB, 0xFD, 0x66, 0x5A, 0x66, 0x5E, 0x66, 0x59, 0x66, 0x5B, 0x66, 0x53, + 0x66, 0x51, 0x66, 0x56, 0x66, 0x52, 0x66, 0xA1, 0x46, 0x02, 0x67, 0x66, + 0x8D, 0x40, 0x18, 0xE8, 0xD0, 0xF8, 0x66, 0x0B, 0xC0, 0x74, 0xC4, 0x66, + 0x59, 0x66, 0x59, 0x66, 0x59, 0x66, 0x59, 0xC3, 0x66, 0x59, 0x66, 0x59, + 0x66, 0x33, 0xC0, 0xC3, 0x66, 0x51, 0x66, 0x50, 0x66, 0xB8, 0x05, 0x00, + 0x00, 0x00, 0x1E, 0x07, 0x66, 0x8B, 0xF9, 0xE8, 0x8D, 0xFD, 0x66, 0x8B, + 0xC1, 0x66, 0xBB, 0x20, 0x00, 0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00, + 0x00, 0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x33, 0xF8, 0x66, 0x5B, + 0x66, 0x59, 0x66, 0x85, 0xC0, 0x0F, 0x85, 0x15, 0x00, 0x66, 0x8B, 0xC1, + 0x66, 0x0F, 0xB7, 0x0E, 0x10, 0x02, 0x66, 0xBA, 0x12, 0x02, 0x00, 0x00, + 0xE8, 0x16, 0xF8, 0xEB, 0x33, 0x90, 0x66, 0x33, 0xD2, 0x66, 0x8B, 0xC1, + 0x66, 0x8B, 0xCB, 0x66, 0x50, 0x66, 0x53, 0xE8, 0x23, 0x00, 0x66, 0x5B, + 0x66, 0x5F, 0x66, 0x0B, 0xC0, 0x0F, 0x84, 0x17, 0x00, 0x1E, 0x07, 0xE8, + 0x35, 0xFD, 0x66, 0x8B, 0xC7, 0x66, 0x0F, 0xB7, 0x0E, 0x10, 0x02, 0x66, + 0xBA, 0x12, 0x02, 0x00, 0x00, 0xE8, 0xE1, 0xF7, 0xC3, 0x66, 0x52, 0x66, + 0x51, 0x66, 0xBB, 0x20, 0x00, 0x00, 0x00, 0x66, 0xB9, 0x00, 0x00, 0x00, + 0x00, 0x66, 0xBA, 0x00, 0x00, 0x00, 0x00, 0xE8, 0xC7, 0xF7, 0x66, 0x0B, + 0xC0, 0x0F, 0x84, 0x63, 0x00, 0x66, 0x8B, 0xD8, 0x1E, 0x07, 0x66, 0x8B, + 0x3E, 0x1A, 0x02, 0x66, 0x33, 0xC0, 0xE8, 0x59, 0xF8, 0x1E, 0x07, 0x66, + 0x8B, 0x1E, 0x1A, 0x02, 0x66, 0x59, 0x66, 0x5A, 0x26, 0x66, 0x39, 0x0F, + 0x0F, 0x85, 0x0C, 0x00, 0x26, 0x66, 0x39, 0x57, 0x08, 0x0F, 0x84, 0x31, + 0x00, 0xEB, 0x13, 0x90, 0x26, 0x66, 0x83, 0x3F, 0xFF, 0x0F, 0x84, 0x2F, + 0x00, 0x26, 0x83, 0x7F, 0x04, 0x00, 0x0F, 0x84, 0x26, 0x00, 0x26, 0x66, + 0x0F, 0xB7, 0x47, 0x04, 0x03, 0xD8, 0x8B, 0xC3, 0x25, 0x00, 0x80, 0x74, + 0xCB, 0x8C, 0xC0, 0x05, 0x00, 0x08, 0x8E, 0xC0, 0x81, 0xE3, 0xFF, 0x7F, + 0xEB, 0xBE, 0x26, 0x66, 0x8B, 0x47, 0x10, 0xC3, 0x66, 0x59, 0x66, 0x5A, + 0x66, 0x33, 0xC0, 0xC3, 0x66, 0x50, 0x66, 0x51, 0x66, 0x8B, 0xC7, 0x66, + 0xC1, 0xE8, 0x04, 0x06, 0x59, 0x03, 0xC8, 0x51, 0x07, 0x66, 0x83, 0xE7, + 0x0F, 0x66, 0x59, 0x66, 0x58, 0xC3, 0x60, 0x06, 0xBE, 0xBD, 0x0D, 0xBF, + 0x00, 0x20, 0x1E, 0x07, 0xB9, 0x0D, 0x00, 0x90, 0xF3, 0xA5, 0x07, 0x61, + 0xC3, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, + 0x98, 0x76, 0x54, 0x32, 0x10, 0xF0, 0xE1, 0xD2, 0xC3, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x20, 0x60, 0x8B, 0x36, 0x18, 0x20, 0x26, 0x8A, 0x05, 0x88, + 0x04, 0x47, 0x46, 0x66, 0xFF, 0x06, 0x14, 0x20, 0x81, 0xFE, 0x60, 0x20, + 0x75, 0x06, 0xE8, 0x5B, 0x00, 0xBE, 0x20, 0x20, 0xE2, 0xE6, 0x89, 0x36, + 0x18, 0x20, 0x61, 0xC3, 0x66, 0x60, 0x8B, 0x36, 0x18, 0x20, 0xB0, 0x80, + 0x88, 0x04, 0x46, 0x32, 0xC0, 0x81, 0xFE, 0x60, 0x20, 0x75, 0x06, 0xE8, + 0x3A, 0x00, 0xBE, 0x20, 0x20, 0x81, 0xFE, 0x58, 0x20, 0x75, 0xE9, 0x66, + 0x33, 0xC0, 0x66, 0xA3, 0x58, 0x20, 0x66, 0xA1, 0x14, 0x20, 0x66, 0xC1, + 0xE0, 0x03, 0x66, 0x0F, 0xC8, 0x66, 0xA3, 0x5C, 0x20, 0xE8, 0x18, 0x00, + 0xBB, 0x00, 0x20, 0x66, 0x8B, 0x07, 0x66, 0x0F, 0xC8, 0x66, 0x89, 0x07, + 0x83, 0xC3, 0x04, 0x81, 0xFB, 0x34, 0x20, 0x75, 0xEE, 0x66, 0x61, 0xC3, + 0x66, 0x60, 0xBB, 0x20, 0x20, 0x66, 0x8B, 0x07, 0x66, 0x0F, 0xC8, 0x66, + 0x89, 0x07, 0x83, 0xC3, 0x04, 0x81, 0xFB, 0x60, 0x20, 0x75, 0xEE, 0xBB, + 0x00, 0x20, 0x66, 0x8B, 0x0F, 0x66, 0x8B, 0x57, 0x04, 0x66, 0x8B, 0x77, + 0x08, 0x66, 0x8B, 0x7F, 0x0C, 0x66, 0x8B, 0x6F, 0x10, 0xBB, 0x20, 0x20, + 0xC7, 0x06, 0x1A, 0x20, 0x30, 0x0F, 0xC6, 0x06, 0x1C, 0x20, 0x14, 0x90, + 0x53, 0x8B, 0x1E, 0x1A, 0x20, 0xFF, 0x17, 0x66, 0x03, 0x47, 0x02, 0x5B, + 0x66, 0x03, 0xE8, 0x66, 0x03, 0x2F, 0x66, 0x8B, 0xC1, 0x66, 0xC1, 0xC0, + 0x05, 0x66, 0x03, 0xC5, 0x66, 0x8B, 0xEF, 0x66, 0x8B, 0xFE, 0x66, 0x8B, + 0xF2, 0x66, 0xC1, 0xC6, 0x1E, 0x66, 0x8B, 0xD1, 0x66, 0x8B, 0xC8, 0x66, + 0x8B, 0x07, 0x66, 0x33, 0x47, 0x08, 0x66, 0x33, 0x47, 0x20, 0x66, 0x33, + 0x47, 0x34, 0x66, 0xD1, 0xC0, 0x66, 0x89, 0x47, 0x40, 0x83, 0xC3, 0x04, + 0xFE, 0x0E, 0x1C, 0x20, 0x75, 0xB2, 0x83, 0x06, 0x1A, 0x20, 0x06, 0x81, + 0x3E, 0x1A, 0x20, 0x48, 0x0F, 0x75, 0x9F, 0xBB, 0x00, 0x20, 0x66, 0x01, + 0x0F, 0x66, 0x01, 0x57, 0x04, 0x66, 0x01, 0x77, 0x08, 0x66, 0x01, 0x7F, + 0x0C, 0x66, 0x01, 0x6F, 0x10, 0x66, 0x61, 0xC3, 0x66, 0x8B, 0xC6, 0x66, + 0x33, 0xC7, 0x66, 0x23, 0xC2, 0x66, 0x33, 0xC7, 0xC3, 0x66, 0x8B, 0xC2, + 0x66, 0x33, 0xC6, 0x66, 0x33, 0xC7, 0xC3, 0x66, 0x53, 0x66, 0x8B, 0xC2, + 0x66, 0x23, 0xC6, 0x66, 0x8B, 0xDA, 0x66, 0x23, 0xDF, 0x66, 0x0B, 0xC3, + 0x66, 0x8B, 0xDE, 0x66, 0x23, 0xDF, 0x66, 0x0B, 0xC3, 0x66, 0x5B, 0xC3, + 0xFC, 0x0E, 0x99, 0x79, 0x82, 0x5A, 0x09, 0x0F, 0xA1, 0xEB, 0xD9, 0x6E, + 0x13, 0x0F, 0xDC, 0xBC, 0x1B, 0x8F, 0x09, 0x0F, 0xD6, 0xC1, 0x62, 0xCA, + 0x06, 0x1E, 0x66, 0x60, 0x66, 0x33, 0xDB, 0xB8, 0x00, 0xBB, 0xCD, 0x1A, + 0x66, 0x23, 0xC0, 0x0F, 0x85, 0xBB, 0x00, 0x66, 0x81, 0xFB, 0x54, 0x43, + 0x50, 0x41, 0x0F, 0x85, 0xB0, 0x00, 0x81, 0xF9, 0x02, 0x01, 0x0F, 0x82, + 0xA8, 0x00, 0x66, 0x61, 0x90, 0x1F, 0x07, 0x06, 0x1E, 0x66, 0x60, 0x67, + 0x80, 0x7B, 0x08, 0x00, 0x0F, 0x85, 0x0C, 0x00, 0x67, 0x66, 0x8D, 0x53, + 0x10, 0x67, 0x66, 0x8B, 0x0A, 0xEB, 0x25, 0x90, 0x67, 0x66, 0x8D, 0x53, + 0x10, 0x67, 0x66, 0x8B, 0x4A, 0x28, 0x66, 0x81, 0xF9, 0x00, 0x00, 0x08, + 0x00, 0x0F, 0x83, 0x0C, 0x00, 0x67, 0x66, 0x8B, 0x42, 0x2C, 0x66, 0x23, + 0xC0, 0x0F, 0x84, 0x03, 0x00, 0x66, 0x33, 0xC9, 0x0E, 0x1F, 0xE8, 0xF5, + 0xFD, 0x66, 0x23, 0xC9, 0x0F, 0x84, 0x32, 0x00, 0x66, 0xBA, 0x00, 0x80, + 0x00, 0x00, 0x66, 0x3B, 0xCA, 0x0F, 0x86, 0x1F, 0x00, 0x66, 0x2B, 0xCA, + 0x06, 0x66, 0x51, 0x66, 0x57, 0x66, 0x52, 0x66, 0x8B, 0xCA, 0xE8, 0xB7, + 0xFD, 0xE8, 0xFB, 0xFD, 0x66, 0x5A, 0x66, 0x5F, 0x66, 0x59, 0x07, 0x66, + 0x03, 0xFA, 0xEB, 0xDA, 0xE8, 0xA5, 0xFD, 0xE8, 0xE9, 0xFD, 0xE8, 0x0B, + 0xFE, 0x0E, 0x07, 0x66, 0xBB, 0x54, 0x43, 0x50, 0x41, 0x66, 0xBF, 0x00, + 0x20, 0x00, 0x00, 0x66, 0xB9, 0x14, 0x00, 0x00, 0x00, 0x66, 0xB8, 0x07, + 0xBB, 0x00, 0x00, 0x66, 0xBA, 0x0A, 0x00, 0x00, 0x00, 0x66, 0x33, 0xF6, + 0xCD, 0x1A, 0x66, 0x61, 0x90, 0x1F, 0x07, 0xC3, 0xA0, 0xF9, 0x01, 0xE9, + 0x4B, 0xF1, 0xA0, 0xFA, 0x01, 0xE9, 0x45, 0xF1 +}; diff -Nru ms-sys-2.1.0/inc/fat16fd.h ms-sys-2.3.0/inc/fat16fd.h --- ms-sys-2.1.0/inc/fat16fd.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/fat16fd.h 2005-11-13 17:26:16.000000000 +0000 @@ -0,0 +1,15 @@ +#ifndef FAT16FD_H +#define FAT16FD_H + +#include + +/* returns TRUE if the file has an exact match ot the FAT16 boot record this + program would create for FreeDOS, otherwise FALSE. + The file position will change when this function is called! */ +int entire_fat_16_fd_br_matches(FILE *fp); + +/* Writes a FAT16 FreeDOS boot record to a file, returns TRUE on success, + otherwise FALSE */ +int write_fat_16_fd_br(FILE *fp, int bKeepLabel); + +#endif diff -Nru ms-sys-2.1.0/inc/fat32fd.h ms-sys-2.3.0/inc/fat32fd.h --- ms-sys-2.1.0/inc/fat32fd.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/fat32fd.h 2005-11-13 17:26:16.000000000 +0000 @@ -0,0 +1,15 @@ +#ifndef FAT32FD_H +#define FAT32FD_H + +#include + +/* returns TRUE if the file has an exact match ot the FAT32 boot record this + program would create for FreeDOS, otherwise FALSE. + The file position will change when this function is called! */ +int entire_fat_32_fd_br_matches(FILE *fp); + +/* Writes a FAT32 FreeDOS boot record to a file, returns TRUE on success, + otherwise FALSE */ +int write_fat_32_fd_br(FILE *fp, int bKeepLabel); + +#endif diff -Nru ms-sys-2.1.0/inc/file.h ms-sys-2.3.0/inc/file.h --- ms-sys-2.1.0/inc/file.h 2002-08-02 18:07:11.000000000 +0000 +++ ms-sys-2.3.0/inc/file.h 2012-02-26 16:31:32.000000000 +0000 @@ -2,7 +2,7 @@ #define FILE_H /* Max valid value of uiLen for contains_data */ -#define MAX_DATA_LEN 2048 +#define MAX_DATA_LEN 10240 /* Checks if a file contains a data pattern of length uiLen at position ulPositoin. The file pointer will change when calling this function! */ diff -Nru ms-sys-2.1.0/inc/identify.h ms-sys-2.3.0/inc/identify.h --- ms-sys-2.1.0/inc/identify.h 2004-02-28 18:56:02.000000000 +0000 +++ ms-sys-2.3.0/inc/identify.h 2012-02-26 16:31:32.000000000 +0000 @@ -1,5 +1,5 @@ -#ifndef SANITY_H -#define SANITY_H +#ifndef IDENTIFY_H +#define IDENTIFY_H #include @@ -12,12 +12,19 @@ #define FAT32NT_BR 6 #define MBR_95B 7 #define MBR_2000 8 -#define MBR_SYSLINUX 9 -#define MBR_ZERO 10 -#define NUMBER_OF_RECORD_TYPES 11 +#define MBR_VISTA 9 +#define MBR_WIN7 10 +#define MBR_SYSLINUX 11 +#define MBR_ZERO 12 +#define FAT16FD_BR 13 +#define FAT32FD_BR 14 +#define NTFS_BR 15 +#define NUMBER_OF_RECORD_TYPES 16 /* Returns the number of sectors on disk before partition */ unsigned long partition_start_sector(FILE *fp); +/* Returns the number of heads for the drive of a partition */ +unsigned short partition_number_of_heads(FILE *fp); /* Returns TRUE if writing a boot record of type iBr seems like a good idea, otherwise FALSE */ diff -Nru ms-sys-2.1.0/inc/mbr_vista.h ms-sys-2.3.0/inc/mbr_vista.h --- ms-sys-2.1.0/inc/mbr_vista.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/mbr_vista.h 2009-09-23 18:29:44.000000000 +0000 @@ -0,0 +1,50 @@ +/* First 446 bytes of MBR from Windows Vista */ +/* This is English version. Bytes 0x12c onwards vary with language. */ +/* Last two bytes 1b6 and 1b7 point to language-specific messages. */ +/* Support of other languages is an exercise for the reader! */ +unsigned char mbr_vista_0x0[] = { +0x33, 0xc0, 0x8e, 0xd0, 0xbc, 0x00, 0x7c, 0x8e, 0xc0, 0x8e, 0xd8, 0xbe, +0x00, 0x7c, 0xbf, 0x00, 0x06, 0xb9, 0x00, 0x02, 0xfc, 0xf3, 0xa4, 0x50, +0x68, 0x1c, 0x06, 0xcb, 0xfb, 0xb9, 0x04, 0x00, 0xbd, 0xbe, 0x07, 0x80, +0x7e, 0x00, 0x00, 0x7c, 0x0b, 0x0f, 0x85, 0x10, 0x01, 0x83, 0xc5, 0x10, +0xe2, 0xf1, 0xcd, 0x18, 0x88, 0x56, 0x00, 0x55, 0xc6, 0x46, 0x11, 0x05, +0xc6, 0x46, 0x10, 0x00, 0xb4, 0x41, 0xbb, 0xaa, 0x55, 0xcd, 0x13, 0x5d, +0x72, 0x0f, 0x81, 0xfb, 0x55, 0xaa, 0x75, 0x09, 0xf7, 0xc1, 0x01, 0x00, +0x74, 0x03, 0xfe, 0x46, 0x10, 0x66, 0x60, 0x80, 0x7e, 0x10, 0x00, 0x74, +0x26, 0x66, 0x68, 0x00, 0x00, 0x00, 0x00, 0x66, 0xff, 0x76, 0x08, 0x68, +0x00, 0x00, 0x68, 0x00, 0x7c, 0x68, 0x01, 0x00, 0x68, 0x10, 0x00, 0xb4, +0x42, 0x8a, 0x56, 0x00, 0x8b, 0xf4, 0xcd, 0x13, 0x9f, 0x83, 0xc4, 0x10, +0x9e, 0xeb, 0x14, 0xb8, 0x01, 0x02, 0xbb, 0x00, 0x7c, 0x8a, 0x56, 0x00, +0x8a, 0x76, 0x01, 0x8a, 0x4e, 0x02, 0x8a, 0x6e, 0x03, 0xcd, 0x13, 0x66, +0x61, 0x73, 0x1e, 0xfe, 0x4e, 0x11, 0x0f, 0x85, 0x0c, 0x00, 0x80, 0x7e, +0x00, 0x80, 0x0f, 0x84, 0x8a, 0x00, 0xb2, 0x80, 0xeb, 0x82, 0x55, 0x32, +0xe4, 0x8a, 0x56, 0x00, 0xcd, 0x13, 0x5d, 0xeb, 0x9c, 0x81, 0x3e, 0xfe, +0x7d, 0x55, 0xaa, 0x75, 0x6e, 0xff, 0x76, 0x00, 0xe8, 0x8a, 0x00, 0x0f, +0x85, 0x15, 0x00, 0xb0, 0xd1, 0xe6, 0x64, 0xe8, 0x7f, 0x00, 0xb0, 0xdf, +0xe6, 0x60, 0xe8, 0x78, 0x00, 0xb0, 0xff, 0xe6, 0x64, 0xe8, 0x71, 0x00, +0xb8, 0x00, 0xbb, 0xcd, 0x1a, 0x66, 0x23, 0xc0, 0x75, 0x3b, 0x66, 0x81, +0xfb, 0x54, 0x43, 0x50, 0x41, 0x75, 0x32, 0x81, 0xf9, 0x02, 0x01, 0x72, +0x2c, 0x66, 0x68, 0x07, 0xbb, 0x00, 0x00, 0x66, 0x68, 0x00, 0x02, 0x00, +0x00, 0x66, 0x68, 0x08, 0x00, 0x00, 0x00, 0x66, 0x53, 0x66, 0x53, 0x66, +0x55, 0x66, 0x68, 0x00, 0x00, 0x00, 0x00, 0x66, 0x68, 0x00, 0x7c, 0x00, +0x00, 0x66, 0x61, 0x68, 0x00, 0x00, 0x07, 0xcd, 0x1a, 0x5a, 0x32, 0xf6, +0xea, 0x00, 0x7c, 0x00, 0x00, 0xcd, 0x18, 0xa0, 0xb7, 0x07, 0xeb, 0x08, +0xa0, 0xb6, 0x07, 0xeb, 0x03, 0xa0, 0xb5, 0x07, 0x32, 0xe4, 0x05, 0x00, +0x07, 0x8b, 0xf0, 0xac, 0x3c, 0x00, 0x74, 0xfc, 0xbb, 0x07, 0x00, 0xb4, +0x0e, 0xcd, 0x10, 0xeb, 0xf2, 0x2b, 0xc9, 0xe4, 0x64, 0xeb, 0x00, 0x24, +0x02, 0xe0, 0xf8, 0x24, 0x02, 0xc3, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, +0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, +0x74, 0x61, 0x62, 0x6c, 0x65, 0x00, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x20, +0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x70, 0x65, 0x72, +0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, +0x00, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x70, 0x65, +0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, +0x6d, 0x00, 0x00, 0x00, 0x00, 0x62, 0x7a, 0x99 +}; +/* Next four bytes used for Windows Disk Signature / Drive serial number */ +/* +unsigned char mbr_vista_0x1b8[] = { + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 +}; +*/ diff -Nru ms-sys-2.1.0/inc/mbr_win7.h ms-sys-2.3.0/inc/mbr_win7.h --- ms-sys-2.1.0/inc/mbr_win7.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/mbr_win7.h 2009-09-23 18:29:44.000000000 +0000 @@ -0,0 +1,50 @@ +/* First 446 bytes of MBR from Windows 7 */ +/* This is English version. Bytes 0x12c onwards vary with language. */ +/* Last two bytes 1b6 and 1b7 point to language-specific messages. */ +/* Support of other languages is an exercise for the reader! */ +unsigned char mbr_win7_0x0[] = { + 0x33, 0xc0, 0x8e, 0xd0, 0xbc, 0x00, 0x7c, 0x8e, 0xc0, 0x8e, 0xd8, 0xbe, + 0x00, 0x7c, 0xbf, 0x00, 0x06, 0xb9, 0x00, 0x02, 0xfc, 0xf3, 0xa4, 0x50, + 0x68, 0x1c, 0x06, 0xcb, 0xfb, 0xb9, 0x04, 0x00, 0xbd, 0xbe, 0x07, 0x80, + 0x7e, 0x00, 0x00, 0x7c, 0x0b, 0x0f, 0x85, 0x0e, 0x01, 0x83, 0xc5, 0x10, + 0xe2, 0xf1, 0xcd, 0x18, 0x88, 0x56, 0x00, 0x55, 0xc6, 0x46, 0x11, 0x05, + 0xc6, 0x46, 0x10, 0x00, 0xb4, 0x41, 0xbb, 0xaa, 0x55, 0xcd, 0x13, 0x5d, + 0x72, 0x0f, 0x81, 0xfb, 0x55, 0xaa, 0x75, 0x09, 0xf7, 0xc1, 0x01, 0x00, + 0x74, 0x03, 0xfe, 0x46, 0x10, 0x66, 0x60, 0x80, 0x7e, 0x10, 0x00, 0x74, + 0x26, 0x66, 0x68, 0x00, 0x00, 0x00, 0x00, 0x66, 0xff, 0x76, 0x08, 0x68, + 0x00, 0x00, 0x68, 0x00, 0x7c, 0x68, 0x01, 0x00, 0x68, 0x10, 0x00, 0xb4, + 0x42, 0x8a, 0x56, 0x00, 0x8b, 0xf4, 0xcd, 0x13, 0x9f, 0x83, 0xc4, 0x10, + 0x9e, 0xeb, 0x14, 0xb8, 0x01, 0x02, 0xbb, 0x00, 0x7c, 0x8a, 0x56, 0x00, + 0x8a, 0x76, 0x01, 0x8a, 0x4e, 0x02, 0x8a, 0x6e, 0x03, 0xcd, 0x13, 0x66, + 0x61, 0x73, 0x1c, 0xfe, 0x4e, 0x11, 0x75, 0x0c, 0x80, 0x7e, 0x00, 0x80, + 0x0f, 0x84, 0x8a, 0x00, 0xb2, 0x80, 0xeb, 0x84, 0x55, 0x32, 0xe4, 0x8a, + 0x56, 0x00, 0xcd, 0x13, 0x5d, 0xeb, 0x9e, 0x81, 0x3e, 0xfe, 0x7d, 0x55, + 0xaa, 0x75, 0x6e, 0xff, 0x76, 0x00, 0xe8, 0x8d, 0x00, 0x75, 0x17, 0xfa, + 0xb0, 0xd1, 0xe6, 0x64, 0xe8, 0x83, 0x00, 0xb0, 0xdf, 0xe6, 0x60, 0xe8, + 0x7c, 0x00, 0xb0, 0xff, 0xe6, 0x64, 0xe8, 0x75, 0x00, 0xfb, 0xb8, 0x00, + 0xbb, 0xcd, 0x1a, 0x66, 0x23, 0xc0, 0x75, 0x3b, 0x66, 0x81, 0xfb, 0x54, + 0x43, 0x50, 0x41, 0x75, 0x32, 0x81, 0xf9, 0x02, 0x01, 0x72, 0x2c, 0x66, + 0x68, 0x07, 0xbb, 0x00, 0x00, 0x66, 0x68, 0x00, 0x02, 0x00, 0x00, 0x66, + 0x68, 0x08, 0x00, 0x00, 0x00, 0x66, 0x53, 0x66, 0x53, 0x66, 0x55, 0x66, + 0x68, 0x00, 0x00, 0x00, 0x00, 0x66, 0x68, 0x00, 0x7c, 0x00, 0x00, 0x66, + 0x61, 0x68, 0x00, 0x00, 0x07, 0xcd, 0x1a, 0x5a, 0x32, 0xf6, 0xea, 0x00, + 0x7c, 0x00, 0x00, 0xcd, 0x18, 0xa0, 0xb7, 0x07, 0xeb, 0x08, 0xa0, 0xb6, + 0x07, 0xeb, 0x03, 0xa0, 0xb5, 0x07, 0x32, 0xe4, 0x05, 0x00, 0x07, 0x8b, + 0xf0, 0xac, 0x3c, 0x00, 0x74, 0x09, 0xbb, 0x07, 0x00, 0xb4, 0x0e, 0xcd, + 0x10, 0xeb, 0xf2, 0xf4, 0xeb, 0xfd, 0x2b, 0xc9, 0xe4, 0x64, 0xeb, 0x00, + 0x24, 0x02, 0xe0, 0xf8, 0x24, 0x02, 0xc3, 0x49, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x00, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x00, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x00, 0x00, 0x00, 0x63, 0x7b, 0x9a +}; +/* Next four bytes used for Windows Disk Signature / Drive serial number */ +/* +unsigned char mbr_win7_0x1b8[] = { + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00 +}; +*/ diff -Nru ms-sys-2.1.0/inc/ntfs.h ms-sys-2.3.0/inc/ntfs.h --- ms-sys-2.1.0/inc/ntfs.h 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/inc/ntfs.h 2012-02-26 16:31:32.000000000 +0000 @@ -0,0 +1,23 @@ +#ifndef NTFS_H +#define NTFS_H + +#include + +/* returns TRUE if the file has an NFTS file system, otherwise FALSE. + The file position will change when this function is called! */ +int is_ntfs_fs(FILE *fp); + +/* returns TRUE if the file has a NTFS boot record, otherwise FALSE. + The file position will change when this function is called! */ +int is_ntfs_br(FILE *fp); + +/* returns TRUE if the file has an exact match of the NTFS boot record + this program would create, otherwise FALSE. + The file position will change when this function is called! */ +int entire_ntfs_br_matches(FILE *fp); + +/* Writes a NTFS boot record to a file, returns TRUE on success, otherwise + FALSE */ +int write_ntfs_br(FILE *fp); + +#endif diff -Nru ms-sys-2.1.0/inc/partition_info.h ms-sys-2.3.0/inc/partition_info.h --- ms-sys-2.1.0/inc/partition_info.h 2004-03-03 17:56:54.000000000 +0000 +++ ms-sys-2.3.0/inc/partition_info.h 2010-02-28 17:35:12.000000000 +0000 @@ -1,6 +1,11 @@ #ifndef PARTITION_INFO_H #define PARTITION_INFO_H +/* Writes the number of heads to a partition, if iHeads == -1 an attempt is made + to find out the correct value, + returns TRUE on success, otherwise FALSE */ +int write_partition_number_of_heads(FILE *fp, int iHeads); + /* Writes the start sector number to a partition (also known as "number of hidden sectors"), returns TRUE on success, otherwise FALSE */ int write_partition_start_sector_number(FILE *fp); diff -Nru ms-sys-2.1.0/man/ms-sys.1 ms-sys-2.3.0/man/ms-sys.1 --- ms-sys-2.1.0/man/ms-sys.1 2012-12-30 20:00:41.000000000 +0000 +++ ms-sys-2.3.0/man/ms-sys.1 2012-04-01 13:26:09.000000000 +0000 @@ -1,4 +1,20 @@ -.TH MS-SYS 1 "February 16, 2004" +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH MS-SYS 1 "September 25, 2005" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) .SH NAME ms-sys \- write Microsoft boot block .SH SYNOPSIS @@ -18,17 +34,43 @@ .B \-3, \-\-fat32 Write a FAT32 partition DOS (Win9x) boot record to device. .TP +.B \-4, \-\-fat32free +Write a FAT32 partition FreeDOS boot record to device. +.TP +.B \-5, \-\-fat16free +Write a FAT16 partition FreeDOS boot record to device. +.TP .B \-6, \-\-fat16 Write a FAT16 partition DOS (Win9x) boot record to device. .TP +.B \-n, \-\-ntfs +Write a NTFS partition Windows 7 boot record to device. This +functionality should be considered experimental and probably +is of no practical use. +.TP .B \-l, \-\-wipelabel Reset partition disk label in boot record. .TP .B \-p, \-\-partition -Write partition info (hidden sectors and drive id) to boot +Write partition info (hidden sectors, heads and drive id) to boot record. This might be needed on some partitions depending on which program was used to create the file system. .TP +.B \-H , \-\-heads +Set number of heads written with -p switch. +.TP +.B \-7, \-\-mbr7 +Write a Windows 7 master boot record to device. +Does not change Windows Disk Signature (bytes 01b8-01bd). +This MBR will boot certain partition types beyond cylinder +1024 using LBA addressing. +.TP +.B \-i, \-\-mbrvista +Write a Windows Vista master boot record to device. +Does not change Windows Disk Signature (bytes 01b8-01bd). +This MBR will boot certain partition types beyond cylinder +1024 using LBA addressing. +.TP .B \-m, \-\-mbr Write a Windows 2000/XP/2003 master boot record to device. Does not change Windows Disk Signature (bytes 01b8-01bd). @@ -153,14 +195,22 @@ .br .SH BUGS There have been reports about unbootable FAT32 partitions created with -"mformat -F c:". One workaround is to use gnu parted to create the -partition instead. Since version 1.1.3 ms-sys has the switch \-p which -is supposed to fix this problem. The problem has also been reported on -partitions formatted with mkdosfs and mkfs.vfat. +"mformat -F c:". The problem has also been reported on partitions +formatted with mkdosfs and mkfs.vfat. One workaround is to use gnu parted +to create the partition instead. Since version 1.1.3 ms-sys has the switch +\-p which is supposed to fix this problem. Unfortunately, when using ms-sys +with Linux kernel 2.6 nor the \-p switch or gnu parted might work. A simple +workaround is to use ms-sys with Linux kernel 2.4. Another possible workaround +is to manually set the number of heads with the switch -H. If the system has +been booted by LILO, the correct number of heads can be given by "lilo -T geom". +.P +The writing of NTFS partition boot records in ms-sys probably has no practical use. +For Windows 7 it has been reported that doing "sysprep" before making an image of +an NTFS partition will make the partition restored from the image bootable. .SH AUTHOR -This manual page was originally written by G\[:u]rkan Seng\[:u]n and since edited by -Henrik Carlqvist. The program ms-sys is mostly written by Henrik Carlqvist, -the file CONTRIBUTORS in the source archive contains a complete list of -contributors. +This manual page was originally written by G\[:u]rkan Seng\[:u]n and since +edited by Henrik Carlqvist. The program ms-sys is mostly written by +Henrik Carlqvist, the file CONTRIBUTORS in the source archive contains a +complete list of contributors. .SH SEE ALSO -mformat(1) fdformat(8) mkdosfs(8) mkisofs(8) +mformat(1) fdformat(8) mkdosfs(8) mkisofs(8) parted(8) diff -Nru ms-sys-2.1.0/po/sv.po ms-sys-2.3.0/po/sv.po --- ms-sys-2.1.0/po/sv.po 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/po/sv.po 2010-02-28 17:35:12.000000000 +0000 @@ -0,0 +1,634 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-02-28 18:16+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Henrik Carlqvist \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/file.c:31 +#, c-format +msgid "Error: contains_data called with uiLen > %d,\n" +msgstr "Fel: contains_data anropad med uiLen > %d,\n" + +#: src/file.c:33 +#, c-format +msgid "please increase MAX_DATA_LEN in file.h\n" +msgstr "Öka MAX_DATA_LEN i file.h\n" + +#: src/identify.c:154 +#, c-format +msgid "%s does not seem to be a disk device,\n" +msgstr "%s tycks inte vara en diskenhet,\n" + +#: src/identify.c:156 src/identify.c:166 src/identify.c:176 +#, c-format +msgid "use the switch -f to force writing of a master boot record\n" +msgstr "använd flaggan -f för att tvinga fram skrivandet av en master boot record\n" + +#: src/identify.c:164 +#, c-format +msgid "%s seems to be a floppy disk device,\n" +msgstr "%s tycks vara en diskettenhet,\n" + +#: src/identify.c:174 +#, c-format +msgid "%s seems to be a disk partition device,\n" +msgstr "%s tycks vara en diskpartitionsenhet,\n" + +#: src/identify.c:188 +#, c-format +msgid "%s does not seem to be a floppy disk device,\n" +msgstr "%s tycks inte vara någon diskettenhet,\n" + +#: src/identify.c:191 src/identify.c:202 +#, c-format +msgid "use the switch -f to force writing of a FAT12 boot record\n" +msgstr "använd flaggan -f för att tvinga fram skrivandet av en FAT12 boot record\n" + +#: src/identify.c:199 +#, c-format +msgid "%s does not seem to have a FAT12 file system,\n" +msgstr "%s tycks inte ha något FAT12 filsystem,\n" + +#: src/identify.c:215 src/identify.c:243 +#, c-format +msgid "%s does not seem to be a disk partition device,\n" +msgstr "%s tycks inte vara någon diskpartitionsenhet,\n" + +#: src/identify.c:218 src/identify.c:229 +#, c-format +msgid "use the switch -f to force writing of a FAT16 boot record\n" +msgstr "använd flaggan -f för att tvinga fram skrivandet av en FAT16 DOS boot record\n" + +#: src/identify.c:226 +#, c-format +msgid "%s does not seem to have a FAT16 file system,\n" +msgstr "%s tycks inte ha något FAT16 filsystem,\n" + +#: src/identify.c:246 src/identify.c:257 +#, c-format +msgid "use the switch -f to force writing of a FAT32 boot record\n" +msgstr "använd flaggan -f för att tvinga fram skrivandet av en FAT32 boot record\n" + +#: src/identify.c:254 +#, c-format +msgid "%s does not seem to have a FAT32 file system,\n" +msgstr "%s tycks inte ha något FAT32 filsystem,\n" + +#: src/identify.c:267 src/main.c:306 +#, c-format +msgid "Whoops, internal error, unknown boot record\n" +msgstr "Hoppsan, internt fel, okänd boot record\n" + +#: src/identify.c:279 +#, c-format +msgid "%s has a FAT12 file system.\n" +msgstr "%s har ett FAT12 filsystem.\n" + +#: src/identify.c:281 +#, c-format +msgid "%s has a FAT16 file system.\n" +msgstr "%s har ett FAT16 filsystem.\n" + +#: src/identify.c:283 +#, c-format +msgid "%s has a FAT32 file system.\n" +msgstr "%s har ett FAT32 filsystem.\n" + +#: src/identify.c:285 +#, c-format +msgid "%s has an x86 boot sector,\n" +msgstr "%s har en x86 boot sector,\n" + +#: src/identify.c:288 +#, c-format +msgid "%s has no x86 boot sector\n" +msgstr "%s har ingen x86 boot sector,\n" + +#: src/identify.c:294 +#, c-format +msgid "it is exactly the kind of FAT12 boot record this program\n" +msgstr "det är precis en likadan FAT12 boot record som detta program\n" + + +#: src/identify.c:296 +#, c-format +msgid "would create with the switch -1 on a floppy.\n" +msgstr "skulle skriva med flaggan -1 på en diskett.\n" + + +#: src/identify.c:303 +#, c-format +msgid "it is exactly the kind of FAT16 DOS boot record this program\n" +msgstr "det är precis en likadan FAT16 DOS boot record som detta program\n" + +#: src/identify.c:305 +#, c-format +msgid "would create with the switch -6 on a FAT16 partition.\n" +msgstr "skulle skriva med flaggan -6 på en FAT16 partition.\n" + +#: src/identify.c:310 +#, c-format +msgid "it is exactly the kind of FAT16 FreeDOS boot record this program\n" +msgstr "det är precis en likadan FAT16 FreeDOS boot record som detta program\n" + +#: src/identify.c:312 +#, c-format +msgid "would create with the switch -5 on a FAT16 partition.\n" +msgstr "skulle skriva med flaggan -5 på en FAT16 partition.\n" + +#: src/identify.c:317 +#, c-format +msgid "it is exactly the kind of FAT32 DOS boot record this program\n" +msgstr "det är precis en likadan FAT32 DOS boot record som detta program\n" + +#: src/identify.c:319 +#, c-format +msgid "would create with the switch -3 on a FAT32 partition.\n" +msgstr "skulle skriva med flaggan -3 på en FAT32 partition.\n" + +#: src/identify.c:324 +#, c-format +msgid "it is exactly the kind of FAT32 NT boot record this program\n" +msgstr "det är precis en likadan FAT32 NT boot record som detta program\n" + +#: src/identify.c:326 +#, c-format +msgid "would create with the switch -2 on a FAT32 partition.\n" +msgstr "skulle skriva med flaggan -2 på en FAT32 partition.\n" + +#: src/identify.c:331 +#, c-format +msgid "it is exactly the kind of FAT32 FreeDOS boot record this program\n" +msgstr "det är precis en likadan FAT32 FreeDOS boot record som detta program\n" + +#: src/identify.c:333 +#, c-format +msgid "would create with the switch -4 on a FAT32 partition.\n" +msgstr "skulle skriva med flaggan -4 på en FAT32 partition.\n" + +#: src/identify.c:338 +#, c-format +msgid "it seems to be a FAT16 or FAT32 boot record, but it\n" +msgstr "det tycks vara en FAT16 eller FAT32 boot record, men\n" + +#: src/identify.c:340 +#, c-format +msgid "differs from what this program would create with the\n" +msgstr "skiljer sig från vad detta program skulle skriva med\n" + +#: src/identify.c:341 +#, c-format +msgid "switch -6, -2 or -3 on a FAT16 or FAT32 partition.\n" +msgstr "flaggan -6, -2 eller -3 på en FAT16 eller FAT32 partition.\n" + +#: src/identify.c:346 +#, c-format +msgid "it seems to be a LILO boot record, please use lilo to\n" +msgstr "det tycks vara en LILO boot record, använd lilo för att\n" + +#: src/identify.c:347 +#, c-format +msgid "create such boot records.\n" +msgstr "skapa en sådan boot record.\n" + +#: src/identify.c:352 +#, c-format +msgid "it is a Microsoft DOS/NT/95A master boot record, like the one this\n" +msgstr "det är en Microsoft DOS/NT/95A master boot record, en sådan skapas\n" + +#: src/identify.c:354 src/identify.c:363 +#, c-format +msgid "program creates with the switch -d on a hard disk device.\n" +msgstr "av detta program med flaggan -d på en hårddiskenhet.\n" + +#: src/identify.c:359 +#, c-format +msgid "it is a Microsoft DOS/NT/95A master boot record with the undocumented\n" +msgstr "det är en Microsoft DOS/NT/95A master boot record med den odokumenterade\n" + +#: src/identify.c:361 +#, c-format +msgid "F2 instruction. You will get equal functionality with the MBR this\n" +msgstr "F2 instruktionen. Du får motsvarande funktionalitet\n" + +#: src/identify.c:368 +#, c-format +msgid "" +"it is a Microsoft 95B/98/98SE/ME master boot record, like the one this\n" +msgstr "det är en Microsoft 95B/98/98SE/ME master boot record, en sådan skapas\n" + +#: src/identify.c:370 +#, c-format +msgid "program creates with the switch -9 on a hard disk device.\n" +msgstr "av detta program med flaggan -9 på en hårddiskenhet.\n" + +#: src/identify.c:375 +#, c-format +msgid "it is a Microsoft 2000/XP/2003 master boot record, like the one this\n" +msgstr "det är en Microsoft 2000/XP/2003 master boot record, en sådan skapas\n" + +#: src/identify.c:377 +#, c-format +msgid "program creates with the switch -m on a hard disk device.\n" +msgstr "av detta program med flaggan -m på en hårddiskenhet.\n" + +#: src/identify.c:382 +#, c-format +msgid "it is a Microsoft Vista master boot record, like the one this\n" +msgstr "det är en Microsoft Vista master boot record, en sådan skapas\n" + +#: src/identify.c:384 +#, c-format +msgid "program creates with the switch -i on a hard disk device.\n" +msgstr "av detta program med flaggan -i på en hårddiskenhet.\n" + +#: src/identify.c:389 +#, c-format +msgid "it is a Microsoft 7 master boot record, like the one this\n" +msgstr "det är en Microsoft Windows 7 master boot record, en sådan skapas\n" + +#: src/identify.c:391 +#, c-format +msgid "program creates with the switch -7 on a hard disk device.\n" +msgstr "av detta program med flaggan -7 på en hårddiskenhet.\n" + +#: src/identify.c:396 +#, c-format +msgid "it is a public domain syslinux master boot record, like the one this\n" +msgstr "det är en fri syslinux master boot record, en sådan skapas\n" + +#: src/identify.c:398 +#, c-format +msgid "program creates with the switch -s on a hard disk device.\n" +msgstr "av detta program med flaggan -s på en hårddiskenhet.\n" + +#: src/identify.c:403 +#, c-format +msgid "it is a zeroed non-bootable master boot record, like the one this\n" +msgstr "det är en nollställd, icke-bootbar master boot record, en sådan skapas\n" + +#: src/identify.c:405 +#, c-format +msgid "program creates with the switch -z on a hard disk device.\n" +msgstr "av detta program med flaggan -z på en hårddiskenhet.\n" + +#: src/identify.c:408 +#, c-format +msgid "it is an unknown boot record\n" +msgstr "det är en okänd boot record\n" + +#: src/main.c:70 +#, c-format +msgid "Unable to open %s, %s\n" +msgstr "Kunde inte öppna %s, %s\n" + +#: src/main.c:77 +#, c-format +msgid "Unable to automaticly select boot record for %s\n" +msgstr "Kunde inte automatiskt välja typ av boot record till %s\n" + +#: src/main.c:92 +#, c-format +msgid "Start sector %ld (nr of hidden sectors) successfully written to %s\n" +msgstr "Startsektor %ld (antal dolda sektorer) skrevs till %s\n" + +#: src/main.c:97 +#, c-format +msgid "Physical disk drive id 0x80 (C:) successfully written to %s\n" +msgstr "Fysisk disk id 0x80 (C:) skrevs till %s\n" + +#: src/main.c:101 +#, c-format +msgid "Number of heads (%d) successfully written to %s\n" +msgstr "Antal huvud (%d) skrevs till %s\n" + +#: src/main.c:107 +#, c-format +msgid "Failed writing number of heads to %s\n" +msgstr "Misslyckades med att skriva antal huvud till %s\n" + +#: src/main.c:113 +#, c-format +msgid "Failed writing physical disk drive id to %s\n" +msgstr "Misslyckades med att skriva fysisk disk id till %s\n" + +#: src/main.c:119 +#, c-format +msgid "Failed writing start sector to %s, this is only possible to do with\n" +msgstr "Misslyckades med att skriva startsektor till %s, det är bara möjligt med\n" + +#: src/main.c:121 +#, c-format +msgid "real partitions!\n" +msgstr "riktiga partitioner!\n" + +#: src/main.c:138 +#, c-format +msgid "Windows 7 master boot record successfully written to %s\n" +msgstr "Windows 7 master boot record skrevs till %s\n" + +#: src/main.c:142 +#, c-format +msgid "Windows 2000/XP/2003 master boot record successfully written to %s\n" +msgstr "Windows 2000/XP/2003 master boot record skrevs till %s\n" + +#: src/main.c:120 +#, c-format +msgid "Failed writing Windows 7 master boot record to %s\n" +msgstr "Misslyckades med att skriva Windows 7 master boot record till %s\n" + +#: src/main.c:120 +#, c-format +msgid "Failed writing Windows 2000/XP/2003 master boot record to %s\n" +msgstr "Misslyckades med att skriva Win 2000/XP/2003 master boot record till %s\n" + +#: src/main.c:129 +#, c-format +msgid "Windows Vista master boot record successfully written to %s\n" +msgstr "Windows Vista master boot record skrevs till %s\n" + +#: src/main.c:133 +#, c-format +msgid "Failed writing Windows Vista master boot record to %s\n" +msgstr "Misslyckades med att skriva Windows Vista master boot record till %s\n" +#: src/main.c:129 +#, c-format +msgid "Windows 95B/98/98SE/ME master boot record successfully written to %s\n" +msgstr "Windows 95B/98/98SE/ME master boot record skrevs till %s\n" + +#: src/main.c:181 +#, c-format +msgid "Failed writing Windows 95B/98/98SE/ME master boot record to %s\n" +msgstr "Misslyckades med att skriva Win 95B/98/98SE/ME master boot record till %s\n" + +#: src/main.c:190 +#, c-format +msgid "DOS/Windows NT master boot record successfully written to %s\n" +msgstr "DOS/Windows NT master boot record skrevs till %s\n" + +#: src/main.c:194 +#, c-format +msgid "Failed writing DOS/Windows NT master boot record to %s\n" +msgstr "Misslyckades med att skriva DOS/Windows NT boot record till %s\n" + +#: src/main.c:203 +#, c-format +msgid "Public domain syslinux master boot record successfully written to %s\n" +msgstr "Fri syslinux master boot record skrevs till %s\n" + +#: src/main.c:207 +#, c-format +msgid "Failed writing public domain syslinux master boot record to %s\n" +msgstr "Misslyckades med att skriva fri syslinux boot record till %s\n" + +#: src/main.c:216 +#, c-format +msgid "Empty (zeroed) master boot record successfully written to %s\n" +msgstr "Tom (nollställd) master boot record skrevs till %s\n" + +#: src/main.c:220 +#, c-format +msgid "Failed writing empty (zeroed) master boot record to %s\n" +msgstr "Misslyckades med att skriva tom (nollställd) boot record till %s\n" + +#: src/main.c:229 +#, c-format +msgid "FAT12 boot record successfully written to %s\n" +msgstr "FAT12 boot record skrevs till %s\n" + +#: src/main.c:233 +#, c-format +msgid "Failed writing FAT12 boot record to %s\n" +msgstr "Misslyckades med att skriva FAT12 boot record till %s\n" + +#: src/main.c:242 +#, c-format +msgid "FAT16 boot record successfully written to %s\n" +msgstr "FAT16 DOS boot record skrevs till %s\n" + +#: src/main.c:246 +#, c-format +msgid "Failed writing FAT16 boot record to %s\n" +msgstr "Misslyckades med att skriva FAT16 DOS boot record till %s\n" + +#: src/main.c:255 +#, c-format +msgid "FAT16 FreeDOS boot record successfully written to %s\n" +msgstr "FAT16 FreeDOS boot record skrevs till %s\n" + +#: src/main.c:259 +#, c-format +msgid "Failed writing FAT16 FreeDOS boot record to %s\n" +msgstr "Misslyckades med att skriva FAT16 FreeDOS boot record till %s\n" + +#: src/main.c:268 +#, c-format +msgid "FAT32 NT boot record successfully written to %s\n" +msgstr "FAT32 NT boot record skrevs till %s\n" + +#: src/main.c:272 +#, c-format +msgid "Failed writing FAT32 NT boot record to %s\n" +msgstr "Misslyckades med att skriva FAT32 NT boot record till %s\n" + +#: src/main.c:281 +#, c-format +msgid "FAT32 FreeDOS boot record successfully written to %s\n" +msgstr "FAT32 FreeDOS boot record skrevs till %s\n" + +#: src/main.c:285 +#, c-format +msgid "Failed writing FAT32 FreeDOS boot record to %s\n" +msgstr "Misslyckades med att skriva FAT32 FreeDOS boot record till %s\n" + +#: src/main.c:294 +#, c-format +msgid "FAT32 DOS boot record successfully written to %s\n" +msgstr "FAT32 DOS boot record skrevs till %s\n" + +#: src/main.c:298 +#, c-format +msgid "Failed writing FAT32 DOS boot record to %s\n" +msgstr "Misslyckades med att skriva FAT32 DOS boot record till %s\n" + +#: src/main.c:316 +#, c-format +msgid "" +"Usage:\n" +"\t%s [options] [device]\n" +"Options:\n" +msgstr "" +"Användning:\n" +"\t%s [flaggor] [enhet]\n" +"Flaggor:\n" + +#: src/main.c:318 +#, c-format +msgid " -1, --fat12 Write a FAT12 floppy boot record to device\n" +msgstr " -1, --fat12 Skriv en FAT12 diskett boot record till enheten\n" + +#: src/main.c:320 +#, c-format +msgid " -2, --fat32nt Write a FAT32 partition NT boot record to device\n" +msgstr " -2, --fat32nt Skriv en FAT32 partition NT boot record till enheten\n" + +#: src/main.c:322 +#, c-format +msgid " -3, --fat32 Write a FAT32 partition DOS boot record to device\n" +msgstr " -3, --fat32 Skriv en FAT32 partition DOS boot record till enheten\n" + +#: src/main.c:324 +#, c-format +msgid "" +" -4, --fat32free Write a FAT32 partition FreeDOS boot record to device\n" +msgstr " -4, --fat32free Skriv en FAT32 partition FreeDOS boot record till enheten\n" + +#: src/main.c:326 +#, c-format +msgid "" +" -5, --fat16free Write a FAT16 partition FreeDOS boot record to device\n" +msgstr " -5, --fat16free Skriv en FAT16 partition FreeDOS boot record till enheten\n" + +#: src/main.c:328 +#, c-format +msgid " -6, --fat16 Write a FAT16 partition DOS boot record to device\n" +msgstr " -6, --fat16 Skriv en FAT16 partition DOS boot record till enheten\n" + +#: src/main.c:330 +#, c-format +msgid " -l, --wipelabel Reset partition disk label in boot record\n" +msgstr " -l, --wipelabel Nollställ volymens etikett i boot record\n" + +#: src/main.c:332 +#, c-format +msgid "" +" -p, --partition Write partition info (hidden sectors, heads and drive " +"id)\n" +msgstr " -p, --partition Skriv partitionsdata (dolda sektorer, antal huvud " +"och\n" + +#: src/main.c:334 +#, c-format +msgid "" +" -H, --heads Manually set number of heads if partition info is " +"written\n" +msgstr " -H, --heads Sätt manuellt antal huvud om partitionsdata skrivs\n" + +#: src/main.c:336 +#, c-format +msgid " to boot record\n" +msgstr " drive id) till partitionens boot record\n" + +#: src/main.c:288 +msgid " -m, --mbr Write a Windows 2000/XP/2003 MBR to device\n" +msgstr " -m, --mbr Skriv en Windows 2000/XP/2003 MBR till enheten\n" + +#: src/main.c:320 +msgid " -9, --mbr95b Write a Windows 95B/98/98SE/ME MBR to device\n" +msgstr " -9, --mbr95b Skriv en Windows 95B/98/98SE/ME MBR till enheten\n" + +#: src/main.c:346 +#, c-format +msgid " -d, --mbrdos Write a DOS/Windows NT MBR to device\n" +msgstr " -d, --mbrdos Skriv en DOS/Windows NT MBR till enheten\n" + +#: src/main.c:348 +#, c-format +msgid " -s, --mbrsyslinux Write a public domain syslinux MBR to device\n" +msgstr " -s, --mbrsyslinux Skriv en public domain syslinux MBR till enheten\n" + +#: src/main.c:350 +#, c-format +msgid " -z, --mbrzero Write an empty (zeroed) MBR to device\n" +msgstr " -z, --mbrzero Skriv en empty (zeroed) MBR till enheten\n" + +#: src/main.c:352 +#, c-format +msgid " -f, --force Force writing of boot record\n" +msgstr " -f, --force Tvinga skrivande av boot record\n" + +#: src/main.c:354 +#, c-format +msgid " -h, --help Display this help and exit\n" +msgstr " -h, --help Visa denna hjälp och avsluta\n" + +#: src/main.c:356 +#, c-format +msgid " -v, --version Show program version\n" +msgstr " -v, --version Visa versionsinformation\n" + +#: src/main.c:358 +#, c-format +msgid "" +" -w, --write Write automatically selected boot record to device\n" +"\n" +msgstr "" +" -w, --write Skriv automatiskt vald boot record till enheten\n" +"\n" + +#: src/main.c:359 +#, c-format +msgid "" +" Default Inspect current boot record\n" +"\n" +msgstr " Om inga flaggor ges görs en enkel diagnos av boot record\n\n" + +#: src/main.c:361 +#, c-format +msgid "Warning: Writing the wrong kind of boot record to a device might\n" +msgstr "Varning: Skrivande av fel typ av boot record till en enhet kan\n" + +#: src/main.c:363 +#, c-format +msgid "" +"destroy partition information or file system!\n" +"\n" +msgstr "" +"förstöra partitionsinformation eller filsystem!\n" +"\n" + +#: src/main.c:368 +#, c-format +#msgid "ms-sys version %s\n" +#msgstr "" + +#: src/main.c:369 +#, c-format +msgid "" +"Written by Henrik Carlqvist (henca@users.SourceForge.net)\n" +"\n" +msgstr "" +"Skriven av Henrik Carlqvist (henca@users.SourceForge.net)\n" +"\n" + +#: src/main.c:370 +#, c-format +msgid "Copyright (C) 2009 Free Software Foundation, Inc.\n" +msgstr "" + +#: src/main.c:371 +#, c-format +msgid "" +"This is free software; see the source for copying conditions. There is NO\n" +msgstr "" +"Detta är fri programvara, se kopieringsvillkoren i källkoden.\n" + +#: src/main.c:372 +#, c-format +msgid "" +"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" +"\n" +msgstr "" +"Denna programvara har inga garantier.\n" +"\n" + diff -Nru ms-sys-2.1.0/po/sv_SE.po ms-sys-2.3.0/po/sv_SE.po --- ms-sys-2.1.0/po/sv_SE.po 2004-10-05 10:20:34.000000000 +0000 +++ ms-sys-2.3.0/po/sv_SE.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,473 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2004-10-05 12:08+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Henrik Carlqvist \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: src/file.c:14 -#, c-format -msgid "Error: contains_data called with uiLen > %d,\n" -msgstr "Fel: contains_data anropad med uiLen > %d,\n" - -#: src/file.c:16 -msgid "please increase MAX_DATA_LEN in file.h\n" -msgstr "Öka MAX_DATA_LEN i file.h\n" - -#: src/identify.c:113 -#, c-format -msgid "%s does not seem to be a disk device,\n" -msgstr "%s tycks inte vara en diskenhet,\n" - -#: src/identify.c:115 src/identify.c:125 src/identify.c:135 -msgid "use the switch -f to force writing of a master boot record\n" -msgstr "använd flaggan -f för att tvinga fram skrivandet av en master boot record\n" - -#: src/identify.c:123 -#, c-format -msgid "%s seems to be a floppy disk device,\n" -msgstr "%s tycks vara en diskettenhet,\n" - -#: src/identify.c:133 -#, c-format -msgid "%s seems to be a disk partition device,\n" -msgstr "%s tycks vara en diskpartitionsenhet,\n" - -#: src/identify.c:147 -#, c-format -msgid "%s does not seem to be a floppy disk device,\n" -msgstr "%s tycks inte vara någon diskettenhet,\n" - -#: src/identify.c:150 src/identify.c:161 -msgid "use the switch -f to force writing of a FAT12 boot record\n" -msgstr "använd flaggan -f för att tvinga fram skrivandet av en FAT12 boot record\n" - -#: src/identify.c:158 -#, c-format -msgid "%s does not seem to have a FAT12 file system,\n" -msgstr "%s tycks inte ha något FAT12 filsystem,\n" - -#: src/identify.c:173 src/identify.c:199 src/identify.c:225 -#, c-format -msgid "%s does not seem to be a disk partition device,\n" -msgstr "%s tycks inte vara någon diskpartitionsenhet,\n" - -#: src/identify.c:176 src/identify.c:187 -msgid "use the switch -f to force writing of a FAT16 boot record\n" -msgstr "använd flaggan -f för att tvinga fram skrivandet av en FAT16 DOS boot record\n" - -#: src/identify.c:184 -#, c-format -msgid "%s does not seem to have a FAT16 file system,\n" -msgstr "%s tycks inte ha något FAT16 filsystem,\n" - -#: src/identify.c:202 src/identify.c:213 -msgid "use the switch -f to force writing of a FAT32 DOS boot record\n" -msgstr "använd flaggan -f för att tvinga fram skrivandet av en FAT32 DOS boot record\n" - -#: src/identify.c:210 src/identify.c:236 -#, c-format -msgid "%s does not seem to have a FAT32 file system,\n" -msgstr "%s tycks inte ha något FAT32 filsystem,\n" - -#: src/identify.c:228 src/identify.c:239 -msgid "use the switch -f to force writing of a FAT32 NT boot record\n" -msgstr "använd flaggan -f för att tvinga fram skrivandet av en FAT32 NT boot record\n" - -#: src/identify.c:249 src/main.c:220 -msgid "Whoops, internal error, unknown boot record\n" -msgstr "Hoppsan, internt fel, okänd boot record\n" - -#: src/identify.c:256 -#, c-format -msgid "%s has a FAT12 file system.\n" -msgstr "%s har ett FAT12 filsystem.\n" - -#: src/identify.c:263 -#, c-format -msgid "%s has a FAT16 file system.\n" -msgstr "%s har ett FAT16 filsystem.\n" - -#: src/identify.c:265 -#, c-format -msgid "%s has a FAT32 file system.\n" -msgstr "%s har ett FAT32 filsystem.\n" - -#: src/identify.c:267 -#, c-format -msgid "%s has an x86 boot sector,\n" -msgstr "%s har en x86 boot sector,\n" - -#: src/identify.c:270 -#, c-format -msgid "%s has no x86 boot sector\n" -msgstr "%s har ingen x86 boot sector,\n" - -#: src/identify.c:276 -msgid "it is exactly the kind of FAT12 boot record this program\n" -msgstr "det är precis en likadan FAT12 boot record som detta program\n" - - -#: src/identify.c:278 -msgid "would create with the switch -1 on a floppy.\n" -msgstr "skulle skriva med flaggan -1 på en diskett.\n" - - -#: src/identify.c:285 -msgid "it is exactly the kind of FAT16 boot record this program\n" -msgstr "det är precis en likadan FAT16 DOS boot record som detta program\n" - -#: src/identify.c:287 -msgid "would create with the switch -6 on a FAT16 partition.\n" -msgstr "skulle skriva med flaggan -6 på en FAT16 partition.\n" - -#: src/identify.c:292 -msgid "it is exactly the kind of FAT32 DOS boot record this program\n" -msgstr "det är precis en likadan FAT32 DOS boot record som detta program\n" - -#: src/identify.c:294 -msgid "would create with the switch -3 on a FAT32 partition.\n" -msgstr "skulle skriva med flaggan -3 på en FAT32 partition.\n" - -#: src/identify.c:299 -msgid "it is exactly the kind of FAT32 NT boot record this program\n" -msgstr "det är precis en likadan FAT32 NT boot record som detta program\n" - -#: src/identify.c:301 -msgid "would create with the switch -2 on a FAT32 partition.\n" -msgstr "skulle skriva med flaggan -2 på en FAT32 partition.\n" - -#: src/identify.c:306 -msgid "it seems to be a FAT16 or FAT32 boot record, but it\n" -msgstr "det tycks vara en FAT16 eller FAT32 boot record, men\n" - -#: src/identify.c:308 -msgid "differs from what this program would create with the\n" -msgstr "skiljer sig från vad detta program skulle skriva med\n" - -#: src/identify.c:309 -msgid "switch -6, -2 or -3 on a FAT16 or FAT32 partition.\n" -msgstr "flaggan -6, -2 eller -3 på en FAT16 eller FAT32 partition.\n" - -#: src/identify.c:314 -msgid "it seems to be a LILO boot record, please use lilo to\n" -msgstr "det tycks vara en LILO boot record, använd lilo för att\n" - -#: src/identify.c:315 -msgid "create such boot records.\n" -msgstr "skapa en sådan boot record.\n" - -#: src/identify.c:320 -msgid "it is a Microsoft DOS/NT/95A master boot record, like the one this\n" -msgstr "det är en Microsoft DOS/NT/95A master boot record, en sådan skapas\n" - -#: src/identify.c:322 src/identify.c:331 -msgid "program creates with the switch -d on a hard disk device.\n" -msgstr "av detta program med flaggan -d på en hårddiskenhet.\n" - -#: src/identify.c:327 -msgid "it is a Microsoft DOS/NT/95A master boot record with the undocumented\n" -msgstr "det är en Microsoft DOS/NT/95A master boot record med den odokumenterade\n" - -#: src/identify.c:329 -msgid "F2 instruction. You will get equal functionality with the MBR this\n" -msgstr "F2 instruktionen. Du får motsvarande funktionalitet\n" - -#: src/identify.c:336 -msgid "" -"it is a Microsoft 95B/98/98SE/ME master boot record, like the one this\n" -msgstr "det är en Microsoft 95B/98/98SE/ME master boot record, en sådan skapas\n" - -#: src/identify.c:338 -msgid "program creates with the switch -9 on a hard disk device.\n" -msgstr "av detta program med flaggan -9 på en hårddiskenhet.\n" - -#: src/identify.c:343 -msgid "it is a Microsoft 2000/XP/2003 master boot record, like the one this\n" -msgstr "det är en Microsoft 2000/XP/2003 master boot record, en sådan skapas\n" - -#: src/identify.c:345 -msgid "program creates with the switch -m on a hard disk device.\n" -msgstr "av detta program med flaggan -m på en hårddiskenhet.\n" - -#: src/identify.c:350 -msgid "it is a public domain syslinux master boot record, like the one this\n" -msgstr "det är en fri syslinux master boot record, en sådan skapas\n" - -#: src/identify.c:352 -msgid "program creates with the switch -s on a hard disk device.\n" -msgstr "av detta program med flaggan -s på en hårddiskenhet.\n" - -#: src/identify.c:357 -msgid "it is a zeroed non-bootable master boot record, like the one this\n" -msgstr "det är en nollställd, icke-bootbar master boot record, en sådan skapas\n" - -#: src/identify.c:359 -msgid "program creates with the switch -z on a hard disk device.\n" -msgstr "av detta program med flaggan -z på en hårddiskenhet.\n" - -#: src/identify.c:362 -msgid "it is an unknown boot record\n" -msgstr "det är en okänd boot record\n" - -#: src/main.c:48 -#, c-format -msgid "Unable to open %s, %s\n" -msgstr "Kunde inte öppna %s, %s\n" - -#: src/main.c:55 -#, c-format -msgid "Unable to automaticly select boot record for %s\n" -msgstr "Kunde inte automatiskt välja typ av boot record till %s\n" - -#: src/main.c:70 -#, c-format -msgid "Start sector (nr of hidden sectors) successfully written to %s\n" -msgstr "Startsektor (antal dolda sektorer) skrevs till %s\n" - -#: src/main.c:74 -#, c-format -msgid "Physical disk drive id 0x80 (C:) successfully written to %s\n" -msgstr "Fysisk disk id 0x80 (C:) skrevs till %s\n" - -#: src/main.c:79 -#, c-format -msgid "Failed writing physical disk drive id to %s\n" -msgstr "Misslyckades med att skriva fysisk disk id till %s\n" - -#: src/main.c:85 -#, c-format -msgid "Failed writing start sector to %s, this is only possible to do with\n" -msgstr "Misslyckades med att skriva startsektor till %s, det är bara möjligt med\n" - -#: src/main.c:87 -msgid "real partitions!\n" -msgstr "riktiga partitioner!\n" - -#: src/main.c:104 -#, c-format -msgid "Windows 2000/XP/2003 master boot record successfully written to %s\n" -msgstr "Windows 2000/XP/2003 master boot record skrevs till %s\n" - -#: src/main.c:108 -#, c-format -msgid "Failed writing Windows 2000/XP/2003 master boot record to %s\n" -msgstr "Misslyckades med att skriva Win 2000/XP/2003 master boot record till %s\n" - -#: src/main.c:117 -#, c-format -msgid "Windows 95B/98/98SE/ME master boot record successfully written to %s\n" -msgstr "Windows 95B/98/98SE/ME master boot record skrevs till %s\n" - -#: src/main.c:121 -#, c-format -msgid "Failed writing Windows 95B/98/98SE/ME master boot record to %s\n" -msgstr "Misslyckades med att skriva Win 95B/98/98SE/ME master boot record till %s\n" - -#: src/main.c:130 -#, c-format -msgid "DOS/Windows NT master boot record successfully written to %s\n" -msgstr "DOS/Windows NT master boot record skrevs till %s\n" - -#: src/main.c:134 -#, c-format -msgid "Failed writing DOS/Windows NT master boot record to %s\n" -msgstr "Misslyckades med att skriva DOS/Windows NT boot record till %s\n" - -#: src/main.c:143 -#, c-format -msgid "Public domain syslinux master boot record successfully written to %s\n" -msgstr "Fri syslinux master boot record skrevs till %s\n" - -#: src/main.c:147 -#, c-format -msgid "Failed writing public domain syslinux master boot record to %s\n" -msgstr "Misslyckades med att skriva fri syslinux boot record till %s\n" - -#: src/main.c:156 -#, c-format -msgid "Empty (zeroed) master boot record successfully written to %s\n" -msgstr "Tom (nollställd) master boot record skrevs till %s\n" - -#: src/main.c:160 -#, c-format -msgid "Failed writing empty (zeroed) master boot record to %s\n" -msgstr "Misslyckades med att skriva tom (nollställd) boot record till %s\n" - -#: src/main.c:169 -#, c-format -msgid "FAT12 boot record successfully written to %s\n" -msgstr "FAT12 boot record skrevs till %s\n" - -#: src/main.c:173 -#, c-format -msgid "Failed writing FAT12 boot record to %s\n" -msgstr "Misslyckades med att skriva FAT12 boot record till %s\n" - -#: src/main.c:182 -#, c-format -msgid "FAT16 boot record successfully written to %s\n" -msgstr "FAT16 DOS boot record skrevs till %s\n" - -#: src/main.c:186 -#, c-format -msgid "Failed writing FAT16 boot record to %s\n" -msgstr "Misslyckades med att skriva FAT16 DOS boot record till %s\n" - -#: src/main.c:195 -#, c-format -msgid "FAT32 NT boot record successfully written to %s\n" -msgstr "FAT32 NT boot record skrevs till %s\n" - -#: src/main.c:199 -#, c-format -msgid "Failed writing FAT32 NT boot record to %s\n" -msgstr "Misslyckades med att skriva FAT32 NT boot record till %s\n" - -#: src/main.c:208 -#, c-format -msgid "FAT32 DOS boot record successfully written to %s\n" -msgstr "FAT32 DOS boot record skrevs till %s\n" - -#: src/main.c:212 -#, c-format -msgid "Failed writing FAT32 DOS boot record to %s\n" -msgstr "Misslyckades med att skriva FAT32 DOS boot record till %s\n" - -#: src/main.c:230 -#, c-format -msgid "" -"Usage:\n" -"\t%s [options] [device]\n" -"Options:\n" -msgstr "" -"Användning:\n" -"\t%s [flaggor] [enhet]\n" -"Flaggor:\n" - -#: src/main.c:232 -msgid " -1, --fat12 Write a FAT12 floppy boot record to device\n" -msgstr " -1, --fat12 Skriv en FAT12 diskett boot record till enheten\n" - -#: src/main.c:234 -msgid " -2, --fat32nt Write a FAT32 partition NT boot record to device\n" -msgstr " -2, --fat32nt Skriv en FAT32 partition NT boot record till enheten\n" - -#: src/main.c:236 -msgid " -3, --fat32 Write a FAT32 partition DOS boot record to device\n" -msgstr " -3, --fat32 Skriv en FAT32 partition DOS boot record till enheten\n" - -#: src/main.c:238 -msgid " -6, --fat16 Write a FAT16 partition DOS boot record to device\n" -msgstr " -6, --fat16 Skriv en FAT16 partition DOS boot record till enheten\n" - -#: src/main.c:240 -msgid " -l, --wipelabel Reset partition disk label in boot record\n" -msgstr " -l, --wipelabel Nollställ volymens etikett i boot record\n" - -#: src/main.c:242 -msgid "" -" -p, --partition Write partition info (hidden sectors and drive id)\n" -msgstr " -p, --partition Skriv partitionsdata (dolda sektorer och drive id)\n" - -#: src/main.c:244 -msgid " to boot record\n" -msgstr " till partitionens boot record\n" - -#: src/main.c:246 -msgid " -m, --mbr Write a Windows 2000/XP/2003 MBR to device\n" -msgstr " -m, --mbr Skriv en Windows 2000/XP/2003 MBR till enheten\n" - -#: src/main.c:248 -msgid " -9, --mbr95b Write a Windows 95B/98/98SE/ME MBR to device\n" -msgstr " -9, --mbr95b Skriv en Windows 95B/98/98SE/ME MBR till enheten\n" - -#: src/main.c:250 -msgid " -d, --mbrdos Write a DOS/Windows NT MBR to device\n" -msgstr " -d, --mbrdos Skriv en DOS/Windows NT MBR till enheten\n" - -#: src/main.c:252 -msgid " -s, --mbrsyslinux Write a public domain syslinux MBR to device\n" -msgstr " -s, --mbrsyslinux Skriv en public domain syslinux MBR till enheten\n" - -#: src/main.c:254 -msgid " -z, --mbrzero Write an empty (zeroed) MBR to device\n" -msgstr " -z, --mbrzero Skriv en empty (zeroed) MBR till enheten\n" - -#: src/main.c:256 -msgid " -f, --force Force writing of boot record\n" -msgstr " -f, --force Tvinga skrivande av boot record\n" - -#: src/main.c:258 -msgid " -h, --help Display this help and exit\n" -msgstr " -h, --help Visa denna hjälp och avsluta\n" - -#: src/main.c:260 -msgid " -v, --version Show program version\n" -msgstr " -v, --version Visa versionsinformation\n" - -#: src/main.c:262 -msgid "" -" -w, --write Write automatically selected boot record to device\n" -"\n" -msgstr "" -" -w, --write Skriv automatiskt vald boot record till enheten\n" -"\n" - -#: src/main.c:263 -msgid "" -" Default Inspect current boot record\n" -"\n" -msgstr " Om inga flaggor ges görs en enkel diagnos av boot record\n" - -#: src/main.c:265 -msgid "Warning: Writing the wrong kind of boot record to a device might\n" -msgstr "Varning: Skrivande av fel typ av boot record till en enhet kan\n" - -#: src/main.c:267 -msgid "" -"destroy partition information or file system!\n" -"\n" -msgstr "" -"förstöra partitionsinformation eller filsystem!\n" -"\n" - -#: src/main.c:272 -#, c-format -#msgid "ms-sys version %s\n" -#msgstr "" - -#: src/main.c:273 -msgid "" -"Written by Henrik Carlqvist (henca@users.SourceForge.net)\n" -"\n" -msgstr "" -"Skriven av Henrik Carlqvist (henca@users.SourceForge.net)\n" -"\n" - -#: src/main.c:274 -msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n" -msgstr "" - -#: src/main.c:275 -msgid "" -"This is free software; see the source for copying conditions. There is NO\n" -msgstr "" -"Detta är fri programvara, se kopieringsvillkoren i källkoden.\n" - -#: src/main.c:276 -msgid "" -"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" -"\n" -msgstr "" -"Denna programvara har inga garantier.\n" -"\n" - diff -Nru ms-sys-2.1.0/src/br.c ms-sys-2.3.0/src/br.c --- ms-sys-2.1.0/src/br.c 2004-10-05 10:20:34.000000000 +0000 +++ ms-sys-2.3.0/src/br.c 2009-09-26 20:53:23.000000000 +0000 @@ -1,3 +1,20 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include #include "file.h" @@ -63,6 +80,26 @@ contains_data(fp, 0x1FE, aucRef, sizeof(aucRef)); } /* is_2000_mbr */ +int is_vista_mbr(FILE *fp) +{ + #include "mbr_vista.h" + unsigned char aucRef[] = {0x55, 0xAA}; + + return + contains_data(fp, 0x0, mbr_vista_0x0, sizeof(mbr_vista_0x0)) && + contains_data(fp, 0x1FE, aucRef, sizeof(aucRef)); +} /* is_vista_mbr */ + +int is_win7_mbr(FILE *fp) +{ + #include "mbr_win7.h" + unsigned char aucRef[] = {0x55, 0xAA}; + + return + contains_data(fp, 0x0, mbr_win7_0x0, sizeof(mbr_win7_0x0)) && + contains_data(fp, 0x1FE, aucRef, sizeof(aucRef)); +} /* is_win7_mbr */ + int is_syslinux_mbr(FILE *fp) { #include "mbr_syslinux.h" @@ -113,6 +150,26 @@ write_data(fp, 0x1FE, aucRef, sizeof(aucRef)); } /* write_2000_mbr */ +int write_vista_mbr(FILE *fp) +{ + #include "mbr_vista.h" + unsigned char aucRef[] = {0x55, 0xAA}; + + return + write_data(fp, 0x0, mbr_vista_0x0, sizeof(mbr_vista_0x0)) && + write_data(fp, 0x1FE, aucRef, sizeof(aucRef)); +} /* write_vista_mbr */ + +int write_win7_mbr(FILE *fp) +{ + #include "mbr_win7.h" + unsigned char aucRef[] = {0x55, 0xAA}; + + return + write_data(fp, 0x0, mbr_win7_0x0, sizeof(mbr_win7_0x0)) && + write_data(fp, 0x1FE, aucRef, sizeof(aucRef)); +} /* write_win7_mbr */ + int write_syslinux_mbr(FILE *fp) { #include "mbr_syslinux.h" diff -Nru ms-sys-2.1.0/src/fat12.c ms-sys-2.3.0/src/fat12.c --- ms-sys-2.1.0/src/fat12.c 2004-06-05 19:22:37.000000000 +0000 +++ ms-sys-2.3.0/src/fat12.c 2009-09-26 20:53:23.000000000 +0000 @@ -1,3 +1,20 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include #include diff -Nru ms-sys-2.1.0/src/fat16.c ms-sys-2.3.0/src/fat16.c --- ms-sys-2.1.0/src/fat16.c 2004-06-05 19:22:37.000000000 +0000 +++ ms-sys-2.3.0/src/fat16.c 2009-09-26 20:53:23.000000000 +0000 @@ -1,3 +1,20 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include #include diff -Nru ms-sys-2.1.0/src/fat16fd.c ms-sys-2.3.0/src/fat16fd.c --- ms-sys-2.1.0/src/fat16fd.c 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/src/fat16fd.c 2009-09-26 20:53:23.000000000 +0000 @@ -0,0 +1,51 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ +#include + +#include "file.h" +#include "fat16fd.h" + +int entire_fat_16_fd_br_matches(FILE *fp) +{ + #include "br_fat16_0x0.h" + #include "br_fat16fd_0x3e.h" + + return + ( contains_data(fp, 0x0, br_fat16_0x0, sizeof(br_fat16_0x0)) && + /* BIOS Parameter Block might differ between systems */ + contains_data(fp, 0x3e, br_fat16_0x3e, sizeof(br_fat16_0x3e)) ); +} /* entire_fat_16_fd_br_matches */ + +int write_fat_16_fd_br(FILE *fp, int bKeepLabel) +{ + #include "label_11_char.h" + #include "br_fat16_0x0.h" + #include "br_fat16fd_0x3e.h" + + if(bKeepLabel) + return + ( write_data(fp, 0x0, br_fat16_0x0, sizeof(br_fat16_0x0)) && + /* BIOS Parameter Block should not be overwritten */ + write_data(fp, 0x3e, br_fat16_0x3e, sizeof(br_fat16_0x3e)) ); + else + return + ( write_data(fp, 0x0, br_fat16_0x0, sizeof(br_fat16_0x0)) && + /* BIOS Parameter Block should not be overwritten */ + write_data(fp, 0x2b, label_11_char, sizeof(label_11_char)) && + write_data(fp, 0x3e, br_fat16_0x3e, sizeof(br_fat16_0x3e)) ); +} /* write_fat_16_fd_br */ diff -Nru ms-sys-2.1.0/src/fat32.c ms-sys-2.3.0/src/fat32.c --- ms-sys-2.1.0/src/fat32.c 2004-06-05 19:22:37.000000000 +0000 +++ ms-sys-2.3.0/src/fat32.c 2009-09-26 20:53:23.000000000 +0000 @@ -1,3 +1,20 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include #include diff -Nru ms-sys-2.1.0/src/fat32fd.c ms-sys-2.3.0/src/fat32fd.c --- ms-sys-2.1.0/src/fat32fd.c 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/src/fat32fd.c 2009-09-26 20:53:23.000000000 +0000 @@ -0,0 +1,61 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ +#include + +#include "file.h" +#include "fat32fd.h" + +int entire_fat_32_fd_br_matches(FILE *fp) +{ + #include "br_fat32_0x0.h" + #include "br_fat32fd_0x52.h" + #include "br_fat32fd_0x3f0.h" + + return + ( contains_data(fp, 0x0, br_fat32_0x0, sizeof(br_fat32_0x0)) && + /* BIOS Parameter Block might differ between systems */ + contains_data(fp, 0x52, br_fat32_0x52, sizeof(br_fat32_0x52)) && + /* Cluster information might differ between systems */ + contains_data(fp, 0x3f0, br_fat32_0x3f0, sizeof(br_fat32_0x3f0)) ); +} /* entire_fat_32_fd_br_matches */ + +int write_fat_32_fd_br(FILE *fp, int bKeepLabel) +{ + #include "label_11_char.h" + #include "br_fat32_0x0.h" + #include "br_fat32fd_0x52.h" + #include "br_fat32fd_0x3f0.h" + + if(bKeepLabel) + return + ( write_data(fp, 0x0, br_fat32_0x0, sizeof(br_fat32_0x0)) && + /* BIOS Parameter Block should not be overwritten */ + write_data(fp, 0x52, br_fat32_0x52, sizeof(br_fat32_0x52)) && + /* Cluster information is not overwritten, however, it would bo OK + to write 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff here. */ + write_data(fp, 0x3f0, br_fat32_0x3f0, sizeof(br_fat32_0x3f0)) ); + else + return + ( write_data(fp, 0x0, br_fat32_0x0, sizeof(br_fat32_0x0)) && + /* BIOS Parameter Block should not be overwritten */ + write_data(fp, 0x47, label_11_char, sizeof(label_11_char)) && + write_data(fp, 0x52, br_fat32_0x52, sizeof(br_fat32_0x52)) && + /* Cluster information is not overwritten, however, it would bo OK + to write 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff here. */ + write_data(fp, 0x3f0, br_fat32_0x3f0, sizeof(br_fat32_0x3f0)) ); +} /* write_fat_32_nt_br */ diff -Nru ms-sys-2.1.0/src/fat32nt.c ms-sys-2.3.0/src/fat32nt.c --- ms-sys-2.1.0/src/fat32nt.c 2004-01-01 19:57:39.000000000 +0000 +++ ms-sys-2.3.0/src/fat32nt.c 2009-09-26 20:53:23.000000000 +0000 @@ -1,3 +1,20 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include #include "file.h" @@ -18,7 +35,7 @@ contains_data(fp, 0x3f0, br_fat32nt_0x3f0, sizeof(br_fat32nt_0x3f0)) && contains_data(fp, 0x1800, br_fat32nt_0x1800, sizeof(br_fat32nt_0x1800)) ); -} /* entire_fat_32_br_matches */ +} /* entire_fat_32_nt_br_matches */ int write_fat_32_nt_br(FILE *fp, int bKeepLabel) { diff -Nru ms-sys-2.1.0/src/file.c ms-sys-2.3.0/src/file.c --- ms-sys-2.1.0/src/file.c 2002-08-02 18:07:11.000000000 +0000 +++ ms-sys-2.3.0/src/file.c 2009-09-26 20:53:23.000000000 +0000 @@ -1,3 +1,20 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include #include diff -Nru ms-sys-2.1.0/src/identify.c ms-sys-2.3.0/src/identify.c --- ms-sys-2.1.0/src/identify.c 2004-10-05 10:20:34.000000000 +0000 +++ ms-sys-2.3.0/src/identify.c 2012-02-26 16:31:32.000000000 +0000 @@ -1,3 +1,20 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include #include /* Ugly fix for compability with both older libc and newer kernels */ @@ -11,8 +28,11 @@ #include "br.h" #include "fat12.h" #include "fat16.h" +#include "fat16fd.h" #include "fat32.h" #include "fat32nt.h" +#include "fat32fd.h" +#include "ntfs.h" #include "nls.h" #include "identify.h" @@ -93,6 +113,26 @@ return 0L; } /* partition_start_sector */ +unsigned short partition_number_of_heads(FILE *fp) +{ + int iRes1; + int iRes2; + long lSectors; + struct hd_geometry sGeometry; + int iFd = fileno(fp); + + iRes1 = ioctl(iFd, BLKGETSIZE, &lSectors); +#ifdef HDIO_REQ + iRes2 = ioctl(iFd, HDIO_REQ, &sGeometry); +#else + iRes2 = ioctl(iFd, HDIO_GETGEO, &sGeometry); +#endif + if(! (iRes1 && iRes2) ) + return (unsigned short) sGeometry.heads; + else + return 0; +} /* partition_number_of_heads */ + int sanity_check(FILE *fp, const char *szPath, int iBr, int bPrintMessages) { int bIsDiskDevice = is_disk_device(fp); @@ -100,6 +140,8 @@ int bIsPartition = is_partition(fp); switch(iBr) { + case MBR_WIN7: + case MBR_VISTA: case MBR_2000: case MBR_95B: case MBR_DOS: @@ -165,6 +207,7 @@ } break; case FAT16_BR: + case FAT16FD_BR: { if( ! bIsPartition ) { @@ -191,6 +234,8 @@ } break; case FAT32_BR: + case FAT32NT_BR: + case FAT32FD_BR: { if( ! bIsPartition ) { @@ -199,7 +244,7 @@ printf(_("%s does not seem to be a disk partition device,\n"), szPath); printf( - _("use the switch -f to force writing of a FAT32 DOS boot record\n")); + _("use the switch -f to force writing of a FAT32 boot record\n")); } return 0; } @@ -210,13 +255,13 @@ printf(_("%s does not seem to have a FAT32 file system,\n"), szPath); printf( - _("use the switch -f to force writing of a FAT32 DOS boot record\n")); + _("use the switch -f to force writing of a FAT32 boot record\n")); } return 0; } } break; - case FAT32NT_BR: + case NTFS_BR: { if( ! bIsPartition ) { @@ -225,21 +270,21 @@ printf(_("%s does not seem to be a disk partition device,\n"), szPath); printf( - _("use the switch -f to force writing of a FAT32 NT boot record\n")); + _("use the switch -f to force writing of a NTFS boot record\n")); } return 0; } - if( ! is_fat_32_fs(fp)) + if( ! is_ntfs_fs(fp)) { if(bPrintMessages) { - printf(_("%s does not seem to have a FAT32 file system,\n"), + printf(_("%s does not seem to have a NTFS file system,\n"), szPath); printf( - _("use the switch -f to force writing of a FAT32 NT boot record\n")); + _("use the switch -f to force writing of a NTFS boot record\n")); } return 0; - } + } } break; default: @@ -263,6 +308,8 @@ printf(_("%s has a FAT16 file system.\n"), szPath); if(is_fat_32_fs(fp)) printf(_("%s has a FAT32 file system.\n"), szPath); + if(is_ntfs_fs(fp)) + printf(_("%s has a NTFS file system.\n"), szPath); if(is_br(fp)) printf(_("%s has an x86 boot sector,\n"), szPath); else @@ -270,7 +317,14 @@ printf(_("%s has no x86 boot sector\n"), szPath); return; } - if(entire_fat_12_br_matches(fp)) + if(entire_ntfs_br_matches(fp)) + { + printf( + _("it is exactly the kind of NTFS boot record this program\n")); + printf( + _("would create with the switch -n on a NTFS partition.\n")); + } + else if(entire_fat_12_br_matches(fp)) { printf( _("it is exactly the kind of FAT12 boot record this program\n")); @@ -282,10 +336,17 @@ if(entire_fat_16_br_matches(fp)) { printf( - _("it is exactly the kind of FAT16 boot record this program\n")); + _("it is exactly the kind of FAT16 DOS boot record this program\n")); printf( _("would create with the switch -6 on a FAT16 partition.\n")); } + else if(entire_fat_16_fd_br_matches(fp)) + { + printf( + _("it is exactly the kind of FAT16 FreeDOS boot record this program\n")); + printf( + _("would create with the switch -5 on a FAT16 partition.\n")); + } else if(entire_fat_32_br_matches(fp)) { printf( @@ -300,6 +361,13 @@ printf( _("would create with the switch -2 on a FAT32 partition.\n")); } + else if(entire_fat_32_fd_br_matches(fp)) + { + printf( + _("it is exactly the kind of FAT32 FreeDOS boot record this program\n")); + printf( + _("would create with the switch -4 on a FAT32 partition.\n")); + } else { printf( @@ -344,6 +412,20 @@ printf( _("program creates with the switch -m on a hard disk device.\n")); } + else if(is_vista_mbr(fp)) + { + printf( + _("it is a Microsoft Vista master boot record, like the one this\n")); + printf( + _("program creates with the switch -i on a hard disk device.\n")); + } + else if(is_win7_mbr(fp)) + { + printf( + _("it is a Microsoft 7 master boot record, like the one this\n")); + printf( + _("program creates with the switch -7 on a hard disk device.\n")); + } else if(is_syslinux_mbr(fp)) { printf( diff -Nru ms-sys-2.1.0/src/main.c ms-sys-2.3.0/src/main.c --- ms-sys-2.1.0/src/main.c 2004-10-05 10:20:34.000000000 +0000 +++ ms-sys-2.3.0/src/main.c 2012-02-26 16:31:32.000000000 +0000 @@ -1,23 +1,45 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include +#include #include #include #include "fat12.h" #include "fat16.h" +#include "fat16fd.h" #include "fat32.h" +#include "fat32fd.h" #include "fat32nt.h" +#include "ntfs.h" #include "br.h" #include "identify.h" #include "nls.h" #include "partition_info.h" -#define VERSION "2.1.0" +#define VERSION "2.3.0" void print_help(const char *szCommand); void print_version(void); int parse_switches(int argc, char **argv, int *piBr, int *pbForce, int *pbPrintVersion, - int *pbKeepLabel, int *pbWritePartitionInfo); + int *pbKeepLabel, int *pbWritePartitionInfo, int *piHeads); +int isnumber(const char *szString); int main(int argc, char **argv) { @@ -27,11 +49,12 @@ int bPrintVersion = 0; int bKeepLabel = 1; int bWritePartitionInfo = 0; + int iHeads = -1; int iRet = 0; nls_init(); if(parse_switches(argc, argv, &iBr, &bForce, &bPrintVersion, - &bKeepLabel, &bWritePartitionInfo)) + &bKeepLabel, &bWritePartitionInfo, &iHeads)) { print_help(argv[0]); return 0; @@ -65,14 +88,34 @@ } if( bWritePartitionInfo ) { + if( !iBr && !bForce) + { + if( ! sanity_check(fp, argv[argc-1], FAT32_BR, 1) ) + { + fclose(fp); + return 1; + } + } if( write_partition_start_sector_number(fp) ) { - printf(_("Start sector (nr of hidden sectors) successfully written to %s\n"), + printf(_("Start sector %ld (nr of hidden sectors) successfully written to %s\n"), + partition_start_sector(fp), argv[argc-1]); if( write_partition_physical_disk_drive_id(fp) ) { printf(_("Physical disk drive id 0x80 (C:) successfully written to %s\n"), argv[argc-1]); + if( write_partition_number_of_heads(fp, iHeads)) + { + printf(_("Number of heads (%d) successfully written to %s\n"), + iHeads != -1 ? iHeads : partition_number_of_heads(fp), + argv[argc-1]); + } + else + { + printf(_("Failed writing number of heads to %s\n"), + argv[argc-1]); + } } else { @@ -98,6 +141,32 @@ } break; } + case MBR_WIN7: + { + if(write_win7_mbr(fp)) + printf(_("Windows 7 master boot record successfully written to %s\n"), + argv[argc-1]); + else + { + printf(_("Failed writing Windows 7 master boot record to %s\n"), + argv[argc-1]); + iRet = 1; + } + } + break; + case MBR_VISTA: + { + if(write_vista_mbr(fp)) + printf(_("Windows Vista master boot record successfully written to %s\n"), + argv[argc-1]); + else + { + printf(_("Failed writing Windows Vista master boot record to %s\n"), + argv[argc-1]); + iRet = 1; + } + } + break; case MBR_2000: { if(write_2000_mbr(fp)) @@ -189,6 +258,19 @@ } } break; + case FAT16FD_BR: + { + if(write_fat_16_fd_br(fp, bKeepLabel)) + printf(_("FAT16 FreeDOS boot record successfully written to %s\n"), + argv[argc-1]); + else + { + printf(_("Failed writing FAT16 FreeDOS boot record to %s\n"), + argv[argc-1]); + iRet = 1; + } + } + break; case FAT32NT_BR: { if(write_fat_32_nt_br(fp, bKeepLabel)) @@ -202,6 +284,19 @@ } } break; + case FAT32FD_BR: + { + if(write_fat_32_fd_br(fp, bKeepLabel)) + printf(_("FAT32 FreeDOS boot record successfully written to %s\n"), + argv[argc-1]); + else + { + printf(_("Failed writing FAT32 FreeDOS boot record to %s\n"), + argv[argc-1]); + iRet = 1; + } + } + break; case FAT32_BR: { if(write_fat_32_br(fp, bKeepLabel)) @@ -215,6 +310,19 @@ } } break; + case NTFS_BR: + { + if(write_ntfs_br(fp)) + printf(_("NTFS Windows 7 boot record successfully written to %s\n"), + argv[argc-1]); + else + { + printf(_("Failed writing NTFS Windows 7 boot record to %s\n"), + argv[argc-1]); + iRet = 1; + } + } + break; default: { printf(_("Whoops, internal error, unknown boot record\n")); @@ -235,14 +343,26 @@ printf( _(" -3, --fat32 Write a FAT32 partition DOS boot record to device\n")); printf( + _(" -4, --fat32free Write a FAT32 partition FreeDOS boot record to device\n")); + printf( + _(" -5, --fat16free Write a FAT16 partition FreeDOS boot record to device\n")); + printf( _(" -6, --fat16 Write a FAT16 partition DOS boot record to device\n")); printf( + _(" -n, --ntfs Write a NTFS partition Windows 7 boot record to device\n")); + printf( _(" -l, --wipelabel Reset partition disk label in boot record\n")); printf( - _(" -p, --partition Write partition info (hidden sectors and drive id)\n")); + _(" -p, --partition Write partition info (hidden sectors, heads and drive id)\n")); printf( _(" to boot record\n")); printf( + _(" -H, --heads Manually set number of heads if partition info is written\n")); + printf( + _(" -7, --mbr7 Write a Windows 7 MBR to device\n")); + printf( + _(" -i, --mbrvista Write a Windows Vista MBR to device\n")); + printf( _(" -m, --mbr Write a Windows 2000/XP/2003 MBR to device\n")); printf( _(" -9, --mbr95b Write a Windows 95B/98/98SE/ME MBR to device\n")); @@ -271,14 +391,15 @@ { printf(_("ms-sys version %s\n"), VERSION); printf(_("Written by Henrik Carlqvist (henca@users.SourceForge.net)\n\n")); - printf(_("Copyright (C) 2002 Free Software Foundation, Inc.\n")); + printf(_("Copyright (C) 2009 Free Software Foundation, Inc.\n")); printf(_("This is free software; see the source for copying conditions. There is NO\n")); printf(_("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n")); } /* print_version */ int parse_switches(int argc, char **argv, int *piBr, int *pbForce, int *pbPrintVersion, - int *pbKeepLabel, int *pbWritePartitionInfo) + int *pbKeepLabel, int *pbWritePartitionInfo, + int *piHeads) { int bHelp = 0; int i; @@ -288,6 +409,8 @@ *pbPrintVersion = 0; *pbKeepLabel = 1; *pbWritePartitionInfo = 0; + *piHeads = -1; + if(argc < 2) return 1; @@ -308,14 +431,24 @@ *piBr = FAT32NT_BR; else if( ! strcmp("--fat32", argv[argc])) *piBr = FAT32_BR; + else if( ! strcmp("--fat32free", argv[argc])) + *piBr = FAT32FD_BR; + else if( ! strcmp("--fat16free", argv[argc])) + *piBr = FAT16FD_BR; else if( ! strcmp("--fat16", argv[argc])) *piBr = FAT16_BR; + else if( ! strcmp("--ntfs", argv[argc])) + *piBr = NTFS_BR; else if( ! strcmp("--force", argv[argc])) *pbForce = 1; else if( ! strcmp("--wipelabel", argv[argc])) *pbKeepLabel = 0; else if( ! strcmp("--partition", argv[argc])) *pbWritePartitionInfo = 1; + else if( ! strcmp("--mbr7", argv[argc])) + *piBr = MBR_WIN7; + else if( ! strcmp("--mbrvista", argv[argc])) + *piBr = MBR_VISTA; else if( ! strcmp("--mbr", argv[argc])) *piBr = MBR_2000; else if( ! strcmp("--mbr95b", argv[argc])) @@ -330,7 +463,7 @@ *piBr = AUTO_BR; else if( ! strcmp("--version", argv[argc])) *pbPrintVersion = 1; - else if( (argv[argc][0] == '-') && (argv[argc][1] != '-') ) + else if( (argv[argc][0] == '-') && (argv[argc][1] != '-') && !argv[argc][2]) { for(i=1; argv[argc][i]; i++) { @@ -345,9 +478,18 @@ case '3': *piBr = FAT32_BR; break; + case '4': + *piBr = FAT32FD_BR; + break; + case '5': + *piBr = FAT16FD_BR; + break; case '6': *piBr = FAT16_BR; break; + case 'n': + *piBr = NTFS_BR; + break; case 'f': *pbForce = 1; break; @@ -357,6 +499,12 @@ case 'p': *pbWritePartitionInfo = 1; break; + case '7': + *piBr = MBR_WIN7; + break; + case 'i': + *piBr = MBR_VISTA; + break; case 'm': *piBr = MBR_2000; break; @@ -384,9 +532,23 @@ } } } + else if((!strcmp("--heads", argv[argc-1]) || !strcmp("-H", argv[argc-1])) && + isnumber(argv[argc])) + *piHeads = atoi(argv[argc--]); else bHelp = 1; } return bHelp; } /* parse_switches */ +int isnumber(const char *szString) +{ + int bRet = (szString && *szString); + while(bRet && *szString) + { + if((*szString < '0') || (*szString > '9')) + bRet = 0; + szString++; + } + return bRet; +} /* isnumber */ diff -Nru ms-sys-2.1.0/src/nls.c ms-sys-2.3.0/src/nls.c --- ms-sys-2.1.0/src/nls.c 2003-12-26 19:08:40.000000000 +0000 +++ ms-sys-2.3.0/src/nls.c 2009-09-26 20:53:23.000000000 +0000 @@ -1,3 +1,20 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include #include "nls.h" diff -Nru ms-sys-2.1.0/src/ntfs.c ms-sys-2.3.0/src/ntfs.c --- ms-sys-2.1.0/src/ntfs.c 1970-01-01 00:00:00.000000000 +0000 +++ ms-sys-2.3.0/src/ntfs.c 2012-02-26 16:31:32.000000000 +0000 @@ -0,0 +1,67 @@ +/****************************************************************** + Copyright (C) 2012 Pete Batard + Based on fat16.c Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ + +#include +#include + +#include "file.h" +#include "ntfs.h" + +int is_ntfs_fs(FILE *fp) +{ + unsigned char aucMagic[] = {'N','T','F','S',' ',' ',' ',' '}; + + return contains_data(fp, 0x03, aucMagic, sizeof(aucMagic)); +} /* is_ntfs_fs */ + +int is_ntfs_br(FILE *fp) +{ + /* A "file" is probably some kind of NTFS boot record if it contains the + magic chars 0x55, 0xAA at positions 0x1FE */ + unsigned char aucRef[] = {0x55, 0xAA}; + unsigned char aucMagic[] = {'N','T','F','S',' ',' ',' ',' '}; + + if( ! contains_data(fp, 0x1FE, aucRef, sizeof(aucRef))) + return 0; + if( ! contains_data(fp, 0x03, aucMagic, sizeof(aucMagic))) + return 0; + return 1; +} /* is_ntfs_br */ + +int entire_ntfs_br_matches(FILE *fp) +{ + #include "br_ntfs_0x0.h" + #include "br_ntfs_0x54.h" + + return + ( contains_data(fp, 0x0, br_ntfs_0x0, sizeof(br_ntfs_0x0)) && + /* BIOS Parameter Block might differ between systems */ + contains_data(fp, 0x54, br_ntfs_0x54, sizeof(br_ntfs_0x54)) ); +} /* entire_ntfs_br_matches */ + +int write_ntfs_br(FILE *fp) +{ + #include "br_ntfs_0x0.h" + #include "br_ntfs_0x54.h" + + return + ( write_data(fp, 0x0, br_ntfs_0x0, sizeof(br_ntfs_0x0)) && + /* BIOS Parameter Block should not be overwritten */ + write_data(fp, 0x54, br_ntfs_0x54, sizeof(br_ntfs_0x54)) ); +} /* write_ntsf_br */ diff -Nru ms-sys-2.1.0/src/partition_info.c ms-sys-2.3.0/src/partition_info.c --- ms-sys-2.1.0/src/partition_info.c 2004-03-03 17:56:54.000000000 +0000 +++ ms-sys-2.3.0/src/partition_info.c 2010-02-28 17:35:12.000000000 +0000 @@ -1,9 +1,41 @@ +/****************************************************************** + Copyright (C) 2009 Henrik Carlqvist + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +******************************************************************/ #include #include "file.h" #include "identify.h" #include "partition_info.h" +int write_partition_number_of_heads(FILE *fp, int iHeads) +{ + unsigned char aucBuf[2]; + unsigned short s = iHeads < 0 ? partition_number_of_heads(fp) : iHeads; + + if(!s) + return 0; + /* Converting a number like this is not necessary as long as we are on + i386 compatible CPUs, however, the following code might make the program + more portable... */ + aucBuf[0] = s & 0xff; + aucBuf[1] = (s & 0xff00) >> 8; + return write_data(fp, 0x1a, aucBuf, 2); +} /* write_partition_number_of_heads */ + int write_partition_start_sector_number(FILE *fp) { unsigned char aucBuf[4]; @@ -19,7 +51,7 @@ aucBuf[2] = (l & 0xff0000) >> 16; aucBuf[3] = (l & 0xff000000) >> 24; return write_data(fp, 0x1c, aucBuf, 4); -} /* write_start_sector */ +} /* write_partition_start_sector_number */ int write_partition_physical_disk_drive_id(FILE *fp) {