--- grub2-1.99.orig/debian/grub-emu.postinst +++ grub2-1.99/debian/grub-emu.postinst @@ -0,0 +1,19 @@ +#! /bin/sh +set -e + +case "$1" in + configure) + if dpkg --compare-versions "$2" lt-nl 1.99-1; then + # Force dpkg to replace this directory with a symlink. + if [ ! -L /usr/share/doc/@PACKAGE@ ] && [ -d /usr/share/doc/@PACKAGE@ ]; then + if rmdir /usr/share/doc/@PACKAGE@ 2>/dev/null; then + ln -sf grub-common /usr/share/doc/@PACKAGE@ + fi + fi + fi + ;; +esac + +#DEBHELPER# + +exit 0 --- grub2-1.99.orig/debian/changelog +++ grub2-1.99/debian/changelog @@ -0,0 +1,3194 @@ +grub2 (1.99-8) unstable; urgency=low + + [ Robert Millan ] + * Avoid buggy versions of libgeom-dev (see #630107). Closes: #630197 + * Fix grub-probe detection for ATA devices using `ata' driver on kFreeBSD 9. + - kfreebsd-9_ada_devices.patch + + [ Colin Watson ] + * Update ntldr-img from grub-extras: + - Handle ext3 inode sizes other than 128. + + [ Debconf translations ] + * Kazakh (Baurzhan Muftakhidinov). Closes: #630915 + + -- Colin Watson Tue, 21 Jun 2011 02:10:10 +0100 + +grub2 (1.99-7) unstable; urgency=low + + [ Debconf translations ] + * Basque (Iñaki Larrañaga Murgoitio). Closes: #628716 + * Swedish (Martin Bagge / brother). Closes: #628866 + * Czech (Miroslav Kure). Closes: #628978 + * Brazilian Portuguese (Flamarion Jorge). Closes: #629135 + * Spanish (Francisco Javier Cuadrado). Closes: #629633 + + [ Colin Watson ] + * Cope with btrfs / inside an encrypted block device (thanks, alexeagar; + LP: #757631). + * Merge from Ubuntu: + - Give up scanning partitions after ten consecutive open failures + (LP: #787461). + + -- Colin Watson Thu, 16 Jun 2011 00:13:14 +0100 + +grub2 (1.99-6) unstable; urgency=low + + [ Colin Watson ] + * Update Vcs-* fields for Alioth changes. + * Backport from upstream, removing the need for Breaks: udev (<< 168-1): + - Don't stat devices unless we have to. + + [ Debconf translations ] + * Catalan (Jordi Mallach). + * Farsi (Behrad Eslamifar). Closes: #628648 + + -- Colin Watson Tue, 31 May 2011 09:20:54 +0100 + +grub2 (1.99-5) unstable; urgency=low + + [ Colin Watson ] + * Change grub2/linux_cmdline and grub2/kfreebsd_cmdline descriptions to + indicate that the command line is allowed to be empty, since this is a + common source of confusion (thanks, Jordan Uggla). + * On non-Ubuntu-derived systems, add Breaks: udev (<< 168-1) to + grub-common, for the sake of (some?) users without initrds (closes: + #627587). + + [ Debconf translations ] + * French (Christian Perrier) + * Russian (Yuri Kozlov). Closes: #628196 + * Simplified Chinese (YunQiang Su). Closes: #628210 + * Japanese (Hideki Yamane). Closes: #628382 + * Danish (Joe Hansen). Closes: #628427 + + -- Colin Watson Sun, 29 May 2011 21:58:55 +0100 + +grub2 (1.99-4) unstable; urgency=low + + * Make grub--bin packages depend on grub-common rather than + grub2-common, and add grub2-common dependencies to grub-. + This ensures that grub--bin packages are coinstallable with + grub-legacy, making it easier to use them as build-dependencies. + * Stop trying to install the non-existent grub-ofpathname(8) on sparc for + now. It will exist in the next upstream snapshot. + + -- Colin Watson Thu, 19 May 2011 12:38:45 +0100 + +grub2 (1.99-3) unstable; urgency=low + + * Ship grub-mkrescue on non-Linux amd64/i386 architectures. + * Don't try to ship grub-mkrescue on sparc. + * Drop boot_blocklist_hack.patch, fixed differently upstream some time ago + by being smarter about filesystem-root-relative path conversion. + + -- Colin Watson Wed, 18 May 2011 14:06:51 +0100 + +grub2 (1.99-2) unstable; urgency=low + + * Include both old and new Lintian override styles for + statically-linked-binary tag, since ftp-master has not yet been updated + to 2.5.0~rc1. + + -- Colin Watson Tue, 17 May 2011 01:36:10 +0100 + +grub2 (1.99-1) unstable; urgency=low + + * New upstream release. + - Ensure uniqueness of RAID array numbers even if some elements have a + name (closes: #609804). + - Remove unnecessary brackets from tr arguments (closes: #612564). + - Add grub-mkrescue info documentation (closes: #612585). + - Avoid generating invalid configuration when something that looks like + a Xen hypervisor is present without any Xen kernels (closes: #612898). + - Fix memory alignment when calling 'linux' multiple times on EFI + (closes: #616638). + - Fix grub-install on amd64 EFI systems (closes: #617388). + - Automatically export pager variable (closes: #612995). + - Fix parser error with "time" (closes: #612991). + - Ignore case of bitmap extensions (closes: #611123). + - Skip vmlinux-* on x86 platforms (closes: #536846, #546008). + - Accept old-style Xen kernels (closes: #610428). + - Skip damaged LVM volumes (closes: #544731). + - Handle LVM mirroring (closes: #598441). + - Detect spares and report them as not RAID members (closes: #611561). + - Don't enable localisation unless gfxterm is available (closes: + #604609). + - Fix partitioned RAID support (closes: #595071, #613444). + - Dynamically count the number of lines for the lower banner (closes: + #606494). + - Improve quoting in grub-mkconfig, to support background image file + names containing spaces (closes: #612417). + - Flush BIOS disk devices more accurately (closes: #623124). + - Identify RAID devices by their UUID rather than by their guessed name + (closes: #624232). + - Add "SEE ALSO" sections to most man pages (closes: #551428). + + [ Christian Perrier ] + * Drop extra word in French debconf translation. Thanks to David + Prévôt. + * Fix spelling error in French debconf translation. Thanks to David + Prévôt. + + [ Colin Watson ] + * Set PACKAGE_VERSION and PACKAGE_STRING using configure arguments rather + than sedding configure.ac in debian/rules (which sometimes has annoying + interactions with quilt, etc.). + * Update branch_embed-sectors.patch: + - Detect sector used by HighPoint RAID controller (closes: #394868). + * Add debian/README.source (from quilt). + * Make debian/rules more explicit about when autogen.sh is run. We need + to be careful that all full builds run it, since we use GRUB extras. + * Merge from Ubuntu: + - Handle filesystems loop-mounted on file images. + - On Wubi, don't ask for an install device, but just update wubildr + using the diverted grub-install. + - Add grub-mount-udeb, containing just grub-mount. This can be used by + os-prober and other parts of d-i. + - Artificially bump Replaces: grub-common versioning to account for + grub-reboot/grub-set-default movement in Ubuntu. + * Don't do a separate build pass for grub-common. It will be identical to + the build for the default platform for the CPU architecture anyway, so + reuse that. + * Build with GCC 4.5 on all architectures. + * Update Lintian overrides for changes in Lintian 2.5.0~rc1. + * Invert how files are split among binary packages: rather than code in + debian/rules to remove files we don't want, add dh_install configuration + to declare the files we do want. This means a little more repetition + for platform-specific programs, but it seems less confusing and easier + to extend. + * Drop versioned dependencies on base-files. GPL-3 has been there for two + Debian releases now, and the dependency was never upgrade-critical + anyway. + * Create grub2-common package containing files that are common among GRUB + platform packages but that would break GRUB Legacy, or that are too + confusing when coinstalled with GRUB Legacy (closes: #564167). + * Drop conflict on an ancient (pre-lenny/hardy) version of desktop-base. + * Move /etc/grub.d/05_debian_theme to grub-common, to go with the other + /etc/grub.d/* files. + * Drop redundant Suggests: os-prober from several platform packages, as + grub-common already Recommends: os-prober. + * Create grub--bin packages corresponding to all grub- + packages (except for grub-emu). These do not automatically install the + boot loader or update grub.cfg, and they install their binaries to + /usr/lib/grub/-/; this means that they can be installed + in parallel, making it easier to use them to build GRUB-based disk + images (e.g. d-i). The grub- packages now depend on these and + include symlinks, so their behaviour will remain as before. + * Make grub-emu depend on grub-common. + * Make the documentation directory in most binary packages be a symlink to + that in grub-common. + * Drop lenny compatibility from grub2-common's dpkg/install-info + dependency, since it produces a Lintian warning and using the current + packaging on lenny is probably rather a stretch anyway. + + [ Updated translations ] + * Belarusian (Viktar Siarheichyk). Closes: #606864 + * Danish (Joe Hansen). Closes: #606879 + * Romanian (Andrei POPESCU). Closes: #606888 + * Italian (Luca Monducci). Closes: #606891 + * Brazilian Portuguese (Flamarion Jorge). Closes: #610613 + * Greek (Emmanuel Galatoulas). Closes: #604847 + + -- Colin Watson Mon, 16 May 2011 17:42:07 +0100 + +grub2 (1.99~rc1-13) unstable; urgency=low + + * Cherry-pick from upstream: + - Use correct limits for mips initrd. + * Run grub-install on install or upgrade of grub-yeeloong. + * Update branch_fuse.patch: + - Tell FUSE to run single-threaded, since GRUB code is not thread-safe + (LP: #756297). + + -- Colin Watson Fri, 15 Apr 2011 12:11:21 +0100 + +grub2 (1.99~rc1-12) unstable; urgency=low + + * Update branch_butter.patch: + - Fix filename comparison. + - Take extent offset in account on uncompressed extents. + - Use filled extent size if available. + * Allow use of first sector on btrfs (LP: #757446). + * Merge from Ubuntu: + - Build part_msdos and vfat into EFI boot images (LP: #677758). + + -- Colin Watson Mon, 11 Apr 2011 16:22:08 +0100 + +grub2 (1.99~rc1-11) unstable; urgency=low + + * Update branch_fuse.patch: + - Make grub-mount exit non-zero if opening the device or filesystem + fails. + - Translate GRUB error codes into OS error codes for FUSE (LP: #756456). + * Merge from Ubuntu: + - Fix use of freed memory when replacing existing loopback device + (LP: #742967). + + -- Colin Watson Sun, 10 Apr 2011 21:52:26 +0100 + +grub2 (1.99~rc1-10) unstable; urgency=low + + * Update branch_butter.patch, fixing RAID1/duplicated chunk size + calculation (thanks, Vladimir Serbinenko; LP: #732149). + + -- Colin Watson Sat, 09 Apr 2011 21:22:15 +0100 + +grub2 (1.99~rc1-9) unstable; urgency=low + + * Update branch_parse-color.patch, to blend text when any background is + set as opposed to only when a stretched background is set (closes: + #613120). + * Make update-grub2 a symlink to update-grub, rather than bothering with a + wrapper script. + * Cherry-pick from upstream: + - Check RAID superblock offset (closes: #610184). + - Flush buffer cache on close and not on open (closes: #620663). + - Handle special naming of yeeloong directory (closes: #620420). + * Add grub-mount utility, from the upstream 'fuse' branch. + * efibootmgr is only available on Linux architectures, so only make + grub-efi-ia32 and grub-efi-amd64 depend on it on Linux. + + -- Colin Watson Sat, 09 Apr 2011 03:39:56 +0100 + +grub2 (1.99~rc1-8) unstable; urgency=low + + * Cherry-pick from upstream: + - Fix FreeBSD compilation problem. + + -- Colin Watson Tue, 29 Mar 2011 15:13:51 +0100 + +grub2 (1.99~rc1-7) unstable; urgency=low + + * Add /proc/mdstat, LVM information, and listings of /dev/disk/by-id/ and + /dev/disk/by-uuid/ to bug reports, by request of upstream. + * Cherry-pick from upstream: + - Use libgeom on FreeBSD to detect partitions (closes: #612128). + - Copy the partition table zone if floppy support is disabled, even if + no partition table is found (LP: #741867). + - Fix an ext2 overflow affecting inodes past 2TiB. + - Fix RAID-0 disk size calculation for metadata 1.x (LP: #743136). + * Merge from Ubuntu: + - Build with gcc-4.5 on ppc64. + - Add apport hook for ProblemType = 'Package', thanks to Jean-Baptiste + Lallement (LP: #591753). + + -- Colin Watson Tue, 29 Mar 2011 12:30:36 +0100 + +grub2 (1.99~rc1-6) unstable; urgency=low + + * Cherry-pick from upstream: + - Fix crash when extending menu entry line beyond 79 characters (closes: + #615893). + - Account for FreeBSD module headers when calculating allocation size. + - Switch back to framebuffer page zero before loading the kernel + (thanks, Felix Kuehling). + * Merge from Ubuntu: + - If we're upgrading and /boot/grub/core.img doesn't exist, then don't + ask where to install GRUB, since it probably means we're in some kind + of specialised environment such as a live USB stick (LP: #591202). + - Drop the default priority of grub2/linux_cmdline to medium. We only + need to ask it if we're upgrading from GRUB Legacy and found an empty + kopt in menu.lst (LP: #591202). + * Update branch_embed-sectors.patch, avoiding consuming lots of space and + time if the first partition is not near the start of the disk (closes: + #619458, LP: #691569). + + -- Colin Watson Fri, 25 Mar 2011 19:23:04 +0000 + +grub2 (1.99~rc1-5) unstable; urgency=low + + * Update debian/legacy/update-grub to the version from grub 0.97-65. + * Mark binary packages as Multi-Arch: foreign (for example, an amd64 + kernel installed on an i386 system could use the native architecture's + GRUB). + * Rewrite find_root_device_from_mountinfo to cope with move-mounts + (LP: #738345). + + [ Updated translations ] + * Esperanto (Felipe Castro). Closes: #606524 + * Thai (Theppitak Karoonboonyanan). Closes: #607706 + + -- Colin Watson Wed, 23 Mar 2011 15:51:47 +0000 + +grub2 (1.99~rc1-4) unstable; urgency=low + + * Don't touch /boot/grub/grub2-installed if using the --root-directory + option to grub-install (thanks, Nicolas George; closes: #614927). + * Update branch_devmapper.patch, adding partitioned MD RAID support + (untested) and support for probing multipath disks. + * Update ntldr-img from grub-extras: + - Only call ntfs_fix_mmft if the attribute to find is AT_DATA. This + matches GRUB's NTFS module. + - Install grubinst as grub-ntldr-img. + * Fix loading GRUB from lnxboot (LP: #693671). + * Update branch_embed-sectors.patch to avoid straying into first partition + when embedding-area sectors are in use (closes: #613409, LP: #730225). + + -- Colin Watson Tue, 15 Mar 2011 11:01:48 +0000 + +grub2 (1.99~rc1-3) unstable; urgency=low + + * Build for ppc64 (except for grub-emu, which doesn't build cleanly yet). + * Suppress output from debconf-communicate in upgrade-from-grub-legacy. + * Refer to the info documentation at the top of /etc/default/grub (closes: + #612538). + * We need at least freebsd-utils (>= 8.0-4) on kFreeBSD architectures for + camcontrol, so depend on it. + * Tolerate camcontrol failing to read capacity of IDE devices, until such + time as we know how to do this properly (see #612128). + * Adjust /etc/default/grub for rename of GRUB_DISABLE_LINUX_RECOVERY to + GRUB_DISABLE_RECOVERY (closes: #612777). + * Update ntldr-img from grub-extras: + - Install g2hdr.bin and g2ldr.mbr (closes: #613245). + + -- Colin Watson Wed, 16 Feb 2011 13:11:11 +0000 + +grub2 (1.99~rc1-2) unstable; urgency=low + + * Merge 1.98+20100804-13 and 1.98+20100804-14, updating translations: + - Kazakh (Baurzhan Muftakhidinov / Timur Birsh). + * mkconfig_skip_dmcrypt.patch: Refer to GRUB_PRELOAD_MODULES rather than + suggesting people write a /etc/grub.d/01_modules script (thanks, Jordan + Uggla). + * Handle empty dir passed to grub_find_root_device_from_mountinfo; fixes + grub-mkrelpath on btrfs subvolumes (LP: #712029). + * Add rootflags=subvol= if / is on a btrfs subvolume (LP: #712029). + * Upload to unstable. + + -- Colin Watson Tue, 08 Feb 2011 11:39:26 +0000 + +grub2 (1.99~rc1-1) experimental; urgency=low + + [ Colin Watson ] + * New upstream release candidate. + + [ Alexander Kurtz ] + * 05_debian_theme: + - If we find a background image and no colours were specified, use + upstream defaults for color_normal and color_highlight rather than + setting color_normal to black/black. + - Make the code more readable by replacing code for handling + alternatives. + - Make the code for searching for pictures in /boot/grub more readable + and robust (for example against newlines in the filename). + - Don't try the other alternatives when $GRUB_BACKGROUND is set; you can + now add GRUB_BACKGROUND= to /etc/default/grub to force no background + image (closes: #608263). + + -- Colin Watson Mon, 17 Jan 2011 13:43:06 +0000 + +grub2 (1.99~20110112-1) experimental; urgency=low + + * New Bazaar snapshot. + - Disable ieee1275_fb on sparc (closes: #560823). + - Fix pf2 font generation on big-endian platforms (closes: #609818). + * branch_butter.patch: Resolve the device returned by + grub_find_root_device_from_mountinfo or find_root_device_from_libzfs + using grub_find_device (closes: #609590, #609814, LP: #700147). + + -- Colin Watson Thu, 13 Jan 2011 00:12:41 +0000 + +grub2 (1.99~20110111-1) experimental; urgency=low + + * New Bazaar snapshot. + - Don't check amount of low memory, as reportedly INT 12h can be broken + and if low memory is too low we wouldn't have gotten into + grub_machine_init anyway (closes: #588293, LP: #513528). + - Submenu default support (LP: #691878). + - Fix optimisation-dependent grub-mklayout crash (closes: #609584). + * branch_butter.patch: Don't free an uninitialised pointer if /proc is + unmounted (LP: #697493). + * Add a po/LINGUAS file listing the translations we've synced from the TP + (closes: #609671). + + -- Colin Watson Tue, 11 Jan 2011 17:11:44 +0000 + +grub2 (1.99~20110106-1) experimental; urgency=low + + * New Bazaar snapshot. + - Check that named RAID array devices exist before using them (closes: + #606035). + - Clear terminfo output on initialisation (closes: #569678). + - Fix grub-probe when btrfs is on / without a separate /boot. + + -- Colin Watson Thu, 06 Jan 2011 13:38:57 +0000 + +grub2 (1.99~20110104-2) experimental; urgency=low + + * Support long command lines as per the 2.06 Linux boot protocol, from the + upstream 'longlinuxcmd' branch. + * Add a background_color command, from the upstream 'parse-color' branch. + * Update branch_devmapper.patch, adding a #include to fix a build failure + on Ubuntu amd64. + * When embedding the core image in a post-MBR gap, check for and avoid + sectors matching any of a number of known signatures, from the upstream + 'embed-sectors' branch. + + -- Colin Watson Wed, 05 Jan 2011 13:31:05 +0000 + +grub2 (1.99~20110104-1) experimental; urgency=low + + * New Bazaar snapshot. + - Don't emit drivemap directive for Windows Server 2008 (closes: + #607687). + - Don't add spurious RAID array members (closes: #605357). + - Improve presentation of Xen menu entries (closes: #607867). + - Fix PCI probing hangs by skipping remaining functions on devices that + do not implement function 0 (closes: #594967). + - Fix typo in descriptions of extract_legacy_entries_source and + extract_legacy_entries_configfile (LP: #696721). + * Merge 1.98+20100804-12: + - Use semicolons rather than commas to separate size from model in + debconf disk and partition descriptions. + * Add full btrfs support, from the upstream 'butter' branch. + * Support partitioned loop devices and improve devmapper support, from the + upstream 'devmapper' branch. + * Add squashfs 4 support, from the upstream 'squash' branch. + + -- Colin Watson Tue, 04 Jan 2011 16:12:45 +0000 + +grub2 (1.99~20101221-1) experimental; urgency=low + + * New Bazaar snapshot. + - Initialise next pointer when creating multiboot module (closes: + #605567). + - Fix gettext quoting to work with bash as /bin/sh, and make echo + UTF-8-clean so that (at least) Catalan boot messages are displayed + properly (closes: #605615). + - Fix use of uninitialised memory in Reed-Solomon recovery code + (LP: #686705). + + -- Colin Watson Tue, 21 Dec 2010 17:43:52 +0000 + +grub2 (1.99~20101210-2) experimental; urgency=low + + * Automatically remove MD devices from device.map on upgrade, since the + BIOS cannot read from these and including them in device.map will break + GRUB's ability to read from such devices (LP: #690030). + * Merge 1.98+20100804-9, 1.98+20100804-10, and 1.98+20100804-11: + - Apply debconf template review by debian-l10n-english and mark several + more strings for translation, thanks to David Prévot and Justin B Rye. + - Incorporate rewritten 05_debian_theme by Alexander Kurtz, which works + when /usr is inaccessible by GRUB. + + -- Colin Watson Sun, 19 Dec 2010 13:25:14 +0000 + +grub2 (1.99~20101210-1) experimental; urgency=low + + * New Bazaar snapshot. + - ZFS moved into grub-core. + - Extend gettext to fall back from ll_CC to ll, and set lang to include + country part by default so that Chinese works (LP: #686788). + * Remove grub-mknetdir from grub-emu. + * Exit silently from zz-update-grub kernel hook if update-grub does not + exist (e.g. if grub-pc has been removed but not purged; closes: + #606184). + + -- Colin Watson Sat, 11 Dec 2010 01:22:26 +0000 + +grub2 (1.99~20101126-1) experimental; urgency=low + + * New Bazaar snapshot (mipsel build fix, LVM-on-RAID probing fix). + * Fix comma-separation in handling of grub-pc/install_devices. + + -- Colin Watson Fri, 26 Nov 2010 13:08:52 +0000 + +grub2 (1.99~20101124-1) experimental; urgency=low + + * New Bazaar snapshot (command priorities, build fixes, grub-mkdevicemap + segfault). + * Don't try to build grub-efi-amd64 on kfreebsd-i386 or hurd-i386 + (requires gcc-4.4-multilib). + + -- Colin Watson Wed, 24 Nov 2010 12:12:33 +0000 + +grub2 (1.99~20101123-1) experimental; urgency=low + + * New Bazaar snapshot (build fixes). + * Build-depend on qemu-utils and parted on non-Hurd architectures. + * qemu_img_exists.patch: Skip partmap test if qemu-img doesn't exist (as + is the case on the Hurd). + * Make grub-efi-ia32 and grub-efi-amd64 depend on efibootmgr so that + grub-install works properly. + * Upgrade the installed core image when upgrading grub-efi-ia32 or + grub-efi-amd64, although only if /boot/efi/EFI/ (where is an + identifier based on GRUB_DISTRIBUTOR, e.g. 'debian') already exists. + * Re-expand a couple of dpkg architecture wildcards to exclude certain + special cases: gcc-4.4-multilib is not available on kfreebsd-i386 or + hurd-i386, and qemu-system is not available on hurd-i386. + + -- Colin Watson Tue, 23 Nov 2010 10:51:23 +0000 + +grub2 (1.99~20101122-1) experimental; urgency=low + + [ Colin Watson ] + * New Bazaar snapshot. Too many changes to list in full, but some of the + more user-visible ones are as follows: + - GRUB script: + + Function parameters, "break", "continue", "shift", "setparams", + "return", and "!". + + "export" command supports multiple variable names. + + Multi-line quoted strings support. + + Wildcard expansion. + - sendkey support. + - USB hotunplugging and USB serial support. + - Rename CD-ROM to cd on BIOS. + - Add new --boot-directory option to grub-install, grub-reboot, and + grub-set-default; the old --root-directory option is still accepted + but was often confusing. + - Basic btrfs detection/UUID support (but no file reading yet). + - bash-completion for utilities. + - If a device is listed in device.map, always assume that it is + BIOS-visible rather than using extra layers such as LVM or RAID. + - Add grub-mknetdir script (closes: #550658). + - Remove deprecated "root" command. + - Handle RAID devices containing virtio components. + - GRUB Legacy configuration file support (via grub-menulst2cfg). + - Keyboard layout support (via grub-mklayout and grub-kbdcomp). + - Check generated grub.cfg for syntax errors before saving. + - Pause execution for at most ten seconds if any errors are displayed, + so that the user has a chance to see them. + - Support submenus. + - Write embedding zone using Reed-Solomon, so that it's robust against + being partially overwritten (closes: #550702, #591416, #593347). + - GRUB_DISABLE_LINUX_RECOVERY and GRUB_DISABLE_NETBSD_RECOVERY merged + into a single GRUB_DISABLE_RECOVERY variable. + - Fix loader memory allocation failure (closes: #551627). + - Don't call savedefault on recovery entries (closes: #589325). + - Support triple-indirect blocks on ext2 (closes: #543924). + - Recognise DDF1 fake RAID (closes: #603354). + + [ Robert Millan ] + * Use dpkg architecture wildcards. + + [ Updated translations ] + * Slovenian (Vanja Cvelbar). Closes: #604003 + * Dzongkha (dawa pemo via Tenzin Dendup). Closes: #604102 + + -- Colin Watson Mon, 22 Nov 2010 12:24:56 +0000 + +grub2 (1.98+20100804-14) unstable; urgency=low + + [ Updated translations ] + * Kazakh (Baurzhan Muftakhidinov / Timur Birsh). Closes: #609187 + + [ Alexander Kurtz ] + * 05_debian_theme: + - If we find a background image and no colours were specified, use + upstream defaults for color_normal and color_highlight rather than + setting color_normal to black/black. + - Don't try the other alternatives when $GRUB_BACKGROUND is set; you can + now add GRUB_BACKGROUND= to /etc/default/grub to force no background + image (closes: #608263). + + -- Colin Watson Mon, 17 Jan 2011 23:19:38 +0000 + +grub2 (1.98+20100804-13) unstable; urgency=low + + * Backport from upstream: + - Don't add spurious RAID array members (closes: #605357). + + -- Colin Watson Tue, 04 Jan 2011 14:07:14 +0000 + +grub2 (1.98+20100804-12) unstable; urgency=low + + * Backport from upstream: + - Support big ext2 files (closes: #543924). + - Fix gettext quoting to work with bash as /bin/sh, and make echo + UTF-8-clean so that (at least) Catalan boot messages are displayed + properly (closes: #605615). + - Initialise next pointer when creating multiboot module (closes: + #605567). + - Fix PCI probing hangs by skipping remaining functions on devices that + do not implement function 0 (closes: #594967). + * Use semicolons rather than commas to separate size from model in debconf + disk and partition descriptions; commas are too easily confused with the + multiselect choice separator, and in particular make it impossible to + answer questions properly in the editor frontend (closes: #608449). + Unfuzzy all translations where possible. + + -- Colin Watson Tue, 04 Jan 2011 00:42:29 +0000 + +grub2 (1.98+20100804-11) unstable; urgency=low + + * Exit silently from zz-update-grub kernel hook if update-grub does not + exist (e.g. if grub-pc has been removed but not purged; closes: + #606184). + * Apply debconf template review by debian-l10n-english and mark several + more strings for translation, thanks to David Prévot and Justin B Rye + (closes: #605748). + * Unfuzzy some translations that were not updated in this round (thanks, + David Prévot; closes: #606921). + * Incorporate rewritten 05_debian_theme by Alexander Kurtz, which works + when /usr is inaccessible by GRUB (closes: #605705). + * Backport from upstream: + - Recognise DDF1 DM-RAID (closes: #603354). + + [ Updated translations ] + * Chinese (YunQiang Su). Closes: #606426 + * Indonesian (Arief S Fitrianto). Closes: #606431 + * Slovenian (Vanja Cvelbar). Closes: #606445 + * Swedish (Martin Bagge / brother). Closes: #606455 + * Ukrainian (Yatsenko Alexandr). Closes: #606538 + * Basque (Iñaki Larrañaga Murgoitio). Closes: #606644 + * Slovak (Slavko). Closes: #606663 + * Catalan (Jordi Mallach). + * Bulgarian (Damyan Ivanov). Closes: #606452 + * Persian (Morteza Fakhraee). Closes: #606672 + * Russian (Yuri Kozlov). Closes: #606753 + * Dutch (Paul Gevers). Closes: #606807 + * Japanese (Hideki Yamane). Closes: #606836 + * French (Christian Perrier). Closes: #606842 + * Czech (Miroslav Kure). Closes: #606854 + * Spanish (Francisco Javier Cuadrado). Closes: #606903 + * Portuguese (Tiago Fernandes / Miguel Figueiredo). Closes: #606908 + * German (Martin Eberhard Schauer). Closes: #606896 + + -- Colin Watson Sat, 18 Dec 2010 17:20:09 +0000 + +grub2 (1.98+20100804-10) unstable; urgency=low + + * fix_crash_condition_in_kfreebsd_loader.patch: Import from upstream. + Fixes crash condition in case kfreebsd_* commands are used after + kfreebsd has (gracefully) failed. + + -- Robert Millan Tue, 30 Nov 2010 19:40:11 +0100 + +grub2 (1.98+20100804-9) unstable; urgency=low + + [ Robert Millan ] + * Import from upstream: + - refuse_embedingless_cross_disk.patch: Refuse to do a cross-disk + embeddingless install rather than creating a broken install. + - fix_grub_install_error_msg.patch: Replace useless recomendation to + pass --modules with a recomendation to report a bug. + - message_refresh.patch: Make error messages visible again. (Closes: #605485) + + [ Jordi Mallach ] + * Update Catalan translation with latest file from the Translation Project. + + [ Updated translations ] + * Slovenian (Vanja Cvelbar). Closes: #604003 + * Dzongkha (dawa pemo via Tenzin Dendup). Closes: #604102 + + -- Robert Millan Tue, 30 Nov 2010 15:44:02 +0100 + +grub2 (1.98+20100804-8) unstable; urgency=low + + [ Robert Millan ] + * increase_disk_limit.patch: Increase SCSI/IDE disk limits to cope with + Sun Fire X4500. + * linux_mdraid_1x.patch: Support for Linux MD RAID v1.x. (Closes: #593652) + * yeeloong_boot_info.patch: On Yeeloong, pass machine type information + to Linux. + + [ Updated translations ] + * Portuguese fixed by Christian Perrier (variable names + were translated) + + -- Robert Millan Fri, 05 Nov 2010 23:43:15 +0100 + +grub2 (1.98+20100804-7) unstable; urgency=low + + [ Robert Millan ] + * zfs_fix_mkrelpath.patch: Replace with proper fix from upstream Bazaar. + (Closes: #601087) + + [ Updated translations ] + * Vietnamese (Clytie Siddall). Closes: #598327 + * Icelandic (Sveinn í Felli). Closes: #600126 + + -- Robert Millan Sun, 24 Oct 2010 16:35:37 +0200 + +grub2 (1.98+20100804-6) unstable; urgency=low + + [ Robert Millan ] + * zfs_v23.patch: Accept ZFS up to v23 (no changes required). + * fix_usb_boot.patch: Fix boot on USB devices, for BIOSes that + expose them as floppies. (Closes: #600580) + * zfs_fix_mkrelpath.patch: Fix grub-mkrelpath for non-root ZFS. + (Closes: #600578) + + [ Updated translations ] + * Kazakh (kk.po) by Baurzhan Muftakhidinov via Timur Birsh (closes: + #598188). + * Portuguese (pt.po) by Tiago Fernandes via Rui Branco (closes: #599767). + * Catalan (ca.po) by Jordi Mallach. + + -- Robert Millan Thu, 21 Oct 2010 23:45:23 +0200 + +grub2 (1.98+20100804-5) unstable; urgency=low + + [ Updated translations ] + * Hebrew (he.po) by Omer Zak and Lior Kaplan (closes: #593855). + * Romanian (ro.po) by ioan-eugen STAN (closes: #595727). + * Esperanto (eo.po) by Felipe Castro (closes: #596171). + + [ Colin Watson ] + * Make grub-efi-amd64 conflict with grub-pc as well as the other way + round. + * Backport upstream patches to fix DM-RAID support (closes: #594221, + LP: #634840). + + [ Robert Millan ] + * enable_zfs.patch: Fix grub-fstest build problem. + * zfs_fix_label_arg.patch: Fix kfreebsd_device initialization on ZFS + for non-main filesystems. + + -- Colin Watson Fri, 17 Sep 2010 23:45:10 +0100 + +grub2 (1.98+20100804-4) unstable; urgency=low + + [ Updated translations ] + * Italian (it.po) by Luca Monducci (closes: #593685). + * Finnish (fi.po) by Esko Arajärvi (closes: #593921). + + [ Colin Watson ] + * Run update-grub from kernel hooks if DEB_MAINT_PARAMS is unset, for + compatibility with old kernel packages. This may produce duplicate runs + of update-grub, but that's better than not running it at all (closes: + #594037). + + -- Colin Watson Mon, 23 Aug 2010 12:11:55 +0100 + +grub2 (1.98+20100804-3) unstable; urgency=low + + [ Updated translations ] + * Brazilian Portuguese (pt_BR.po) by Flamarion Jorge (closes: #592156). + * Asturian (ast.po) by Maacub (closes: #592313). + * Galician (gl.po) by Jorge Barreiro (closes: #592816). + + [ Robert Millan ] + * Backport ZFS bugfixes from upstream Bazaar: + - zfs_fix_chroot.patch: Fix breakage when running grub-probe inside chroot. + - zfs_fix_label_arg.patch: Fix grub-probe fs_label argument. + - zfs_fix_pathname.patch: Fix pathname for non-root ZFS filesystems. + - zfs_fix_segfault.patch: Fix segfault when /dev is not mounted. + + [ Colin Watson ] + * Escape single quotes when removing them from $mode in zz-update-grub, so + that this works when /bin/sh is bash (thanks, Will Dyson; closes: + #593242). + * Add support for ext2 root on GNU/kFreeBSD (thanks, Aurelien Jarno; + closes: #593467). + + -- Colin Watson Thu, 19 Aug 2010 18:21:45 +0100 + +grub2 (1.98+20100804-2) unstable; urgency=low + + [ Colin Watson ] + * Make /etc/kernel/postrm.d/zz-update-grub a real file rather than a + symlink (closes: #592076). + + [ Updated translations ] + * Norwegian Bokmål (nb.po) by Hans Nordhaug (closes: #591569). + + -- Colin Watson Sat, 07 Aug 2010 17:53:34 +0100 + +grub2 (1.98+20100804-1) unstable; urgency=low + + * New Bazaar snapshot. + - Fix grub-emu build on GNU/kFreeBSD (closes: #591490). + + [ Colin Watson ] + * Add kernel hook scripts and remove any uses of update-grub as a + postinst_hook or postrm_hook in /etc/kernel-img.conf (closes: #554175). + Thanks to Ben Hutchings for advice and to Harald Braumann for an early + implementation. + * Extend the existing GRUB_LEGACY_0_BASED_PARTITIONS handling to avoid + new-style partition naming when generating output for GRUB Legacy + (closes: #590554). + + [ Updated translations ] + * Slovak (sk.po) by Slavko (closes: #591458). + + -- Colin Watson Wed, 04 Aug 2010 04:48:11 +0100 + +grub2 (1.98+20100802-1) unstable; urgency=low + + * New Bazaar snapshot. + - Remove compatibility with terminal.mod prior to + terminal_input/terminal_output separation (LP: #519358). + - Enable `grub-probe -t device' resolution on ZFS. + - Don't use UUID for LVM root when generating Xen entries (closes: + #591093). + - Restore missing whitespace to commands' --help output (closes: + #590874). + - Select unique numbers for named RAID arrays, for use as keys in the + disk cache. + + [ Updated translations ] + * German (Martin Eberhard Schauer). Closes: #590108 + * Spanish (Francisco Javier Cuadrado). Closes: #590448 + * Traditional Chinese (Tetralet). Closes: #591191 + * Danish (Joe Hansen). Closes: #591223 + * Dutch (Paul Gevers). Closes: #590864 + * Japanese (Hideki Yamane). Closes: #591058 + + [ Robert Millan ] + * postinst.in: Fill in device size and model information on GNU/kFreeBSD, + using camcontrol. + * patches/enable_zfs.patch: New patch. Link ZFS from grub-extras into + grub-probe and grub-setup. + * control: Build-Depend on libzfs-dev and libnvpair-dev on kfreebsd-*. + + [ Colin Watson ] + * Offer RAID devices as GRUB installation targets if they contain /, + /boot, or /boot/grub. + + -- Colin Watson Tue, 03 Aug 2010 02:13:07 +0100 + +grub2 (1.98+20100722-1) unstable; urgency=low + + * New Bazaar snapshot. + - Don't count named RAID arrays when looking for unused array numbers. + + [ Colin Watson ] + * Merge from Ubuntu: + - grub-common Breaks: lupin-support (<< 0.30) due to a grub-mkimage + syntax change (lupin-support isn't in Debian, but this is harmless + anyway). + + -- Colin Watson Thu, 22 Jul 2010 14:33:34 +0100 + +grub2 (1.98+20100720-1) unstable; urgency=low + + * New Bazaar snapshot. + - Link to Info documentation on changes from GRUB Legacy in README + (closes: #502623). + - Add support for mdadm metadata formats 1.x (closes: #492897). + + [ Aaron M. Ucko ] + * Compare -trunk kernels earlier than numeric ABIs (closes: #568160). + + [ Colin Watson ] + * Remove /boot/grub/device.map, /boot/grub/grubenv, + /boot/grub/installed-version, and /boot/grub/locale/ on purge, if + permitted (closes: #547679). + * Convert from CDBS to dh. + * Use exact-version dependencies in grub2 and grub-efi, to reduce + potential confusion. + * Raise priority of grub-common and grub-pc to optional (also done in + archive overrides). + * Copy-edit debian/presubj. + * Use 'mktemp -t' rather than hardcoding /tmp (closes: #589537). + + [ Mario 'BitKoenig' Holbe ] + * Update /etc/grub.d/05_debian_theme to handle multiple entries in + GRUB_TERMINAL_OUTPUT (closes: #589322). + + [ Updated translations ] + * Simplified Chinese (zh_CN.po) by YunQiang Su (closes: #589013). + * Russian (ru.po) by Yuri Kozlov (closes: #589244). + * Swedish (sv.po) by Martin Bagge / brother (closes: #589259). + * Bulgarian (bg.po) by Damyan Ivanov (closes: #589272). + * Indonesian (id.po) by Arief S Fitrianto (closes: #589318). + * Arabic (ar.po) by Ossama M. Khayat. + * Basque (eu.po) by Iñaki Larrañaga Murgoitio (closes: #589489). + * Persian (fa.po) by Bersam Karbasion (closes: #589544). + * Czech (cs.po) by Miroslav Kure (closes: #589568). + * Belarusian (be.po) by Viktar Siarheichyk (closes: #589634). + + -- Colin Watson Wed, 21 Jul 2010 09:11:14 +0100 + +grub2 (1.98+20100710-1) unstable; urgency=low + + * New Bazaar snapshot. + - Handle degraded RAID arrays in grub-probe and grub-setup. + - Fix gfxterm pager handling. + + [ Fabian Greffrath ] + * Get value of correct debconf question when deciding whether to purge + /boot/grub (closes: #588331). + + [ Colin Watson ] + * Generate device.map in something closer to the old ordering (thanks, + Vadim Solomin). + + [ Updated translations ] + * Croatian (hr.po) by Josip Rodin, closes: #588350. + * French (fr.po) by Christian Perrier (closes: #588695). + + -- Colin Watson Mon, 12 Jul 2010 11:46:53 +0100 + +grub2 (1.98+20100706-1) unstable; urgency=low + + * New Bazaar snapshot. + - USB hub support. + - Fix GRUB_BACKGROUND configuration ordering. + - Fix corruption of first entry name in a reiserfs directory. + - Don't include MD devices when generating device.map (if you're using + RAID and upgraded through 1.98+20100702-1 or 1.98+20100705-1, you may + need to fix this up manually). + + -- Colin Watson Tue, 06 Jul 2010 18:06:40 +0100 + +grub2 (1.98+20100705-1) unstable; urgency=medium + + * New Bazaar snapshot. + - Bidi and diacritics support. + + Use terminfo for ieee1275 terminals (closes: #586953). + - Don't use empty grub_device in EFI grub-install (closes: #587838). + - Fix grub-setup core.img comparison when not embedding (thanks, Matt + Kraai and M. Vefa Bicakci; closes: #586621). + + * Update Source: in debian/copyright (thanks, Jörg Sommer). + * Convert by-id disk device names from device.map to traditional device + names for display (closes: #587951). + * Set urgency=medium. We've cleared out most of the apparent regressions + at this point, and #550704 is getting more and more urgent to fix in + testing. + + -- Colin Watson Mon, 05 Jul 2010 02:09:58 +0100 + +grub2 (1.98+20100702-1) unstable; urgency=low + + * New Bazaar snapshot. + - Use video functions in Linux loader rather than hardcoding UGA; load + all available video backends (closes: #565576, probably). + - Add support for initrd images on Fedora 13. + - Output grub.cfg stanzas for Xen (closes: #505517). + - Add 'cat --dos' option to treat DOS-style "\r\n" line endings as + simple newlines (closes: #586358). + - Change grub-mkdevicemap to emit /dev/disk/by-id/ names where possible + on Linux. + - Return CF correctly in mmap e820/e801 int15 hook (closes: #584846). + - The info documentation now has no broken references, although of + course it could still use more work (closes: #553460). + - Support GRUB_BADRAM in grub-mkconfig. + - Skip LVM snapshots (closes: #574863). + + [ Colin Watson ] + * Mention grub-rescue-usb.img in grub-rescue-pc description (closes: + #586462). + * Add instructions for using grub-rescue-usb.img (closes: #586463). + * Remove /usr/lib/grub/mips-* from grub-common rather than the incorrect + /usr/lib/grub/mipsel-*, so that it stops clashing with grub-yeeloong; + add a versioned Replaces to grub-yeeloong just in case (closes: + #586526). + * Remove qemu-system build-dependency on hurd-i386, where it doesn't seem + to exist. Disable tests if qemu-system-i386 isn't available. + * Mark "upgrade-from-grub-legacy" paragraph in + grub-pc/chainload_from_menu.lst as untranslatable. + * Update Homepage field (thanks, Sedat Dilek). + * On Linux, if /boot/grub/device.map exists on upgrade to this version, + regenerate it to use stable device names in /dev/disk/by-id/. If it had + more than one entry, then display a critical-priority debconf note + (sorry, but it's better than silently breaking boot menu entries) + advising people to check custom boot menu entries and update them if + necessary (closes: #583271). + * Use 'set -e' rather than '#! /bin/sh -e' or '#! /bin/bash -e', to avoid + accidents when debugging with 'sh -x'. + * Store grub-pc/install_devices as persistent device names under + /dev/disk/by-id/ (closes: #554790). Migrate previous device names to + that, with explicit confirmation in non-trivial cases to make sure we + got the right ones. If the devices we were told to install to ever go + away, ask again. (This is based on the implementation in Ubuntu.) + * If grub-install fails during upgrade-from-grub-legacy, allow the user to + try again with a different device, but failing that cancel the upgrade + (closes: #587790). + * Remove numbering from patch files. The order is now explicit in a quilt + series file, and renumbering from time to time is tedious. + + [ Updated translations ] + * Ukrainian (uk.po) by Yatsenko Alexandr / Borys Yanovych (closes: + #586611). + * Indonesian (id.po) by Arief S Fitrianto (closes: #586799). + * Swedish (sv.po) by Martin Bagge (closes: #586827). + * Persian (fa.po) by Behrad Eslamifar (closes: #587085). + * French (fr.po) by Christian Perrier (closes: #587383). + * Galician (gl.po) by Jorge Barreiro (closes: #587796). + + [ Robert Millan ] + * Add commented GRUB_BADRAM example in debian/default/grub. + + -- Colin Watson Fri, 02 Jul 2010 17:42:56 +0100 + +grub2 (1.98+20100617-1) unstable; urgency=low + + * New Bazaar snapshot. + - Fix i386-pc prefix handling with nested partitions (closes: #585068). + + * When running grub-pc.postinst from upgrade-from-grub-legacy, tell it to + disregard the fact that /boot/grub/stage2 and /boot/grub/menu.lst still + exist (closes: #550477). + * Touch a marker file when grub-install is run but GRUB Legacy files are + still around. If that marker file is present, pretend that GRUB Legacy + files are missing when upgrading. + * If GRUB Legacy files are present when upgrading, scan boot sectors of + all disks for GRUB 2. If we find GRUB 2 installed anywhere, then ask + the user if they want to finish conversion to GRUB 2, and warn them that + not doing so may render the system unbootable (closes: #586143). Thanks + to Sedat Dilek for helping to narrow down this bug. + * Leaving grub-pc/install_devices empty makes sense in some situations, + but more often than not is a mistake. On the other hand, automatically + selecting all disk devices would upset some people too. Compromise by + simply asking for explicit confirmation if grub-pc/install_devices is + left empty, defaulting to false so that simply selecting all the + defaults in debconf can't leave you with an unbootable system (closes: + #547944, #557425). + + -- Colin Watson Sat, 19 Jun 2010 01:31:40 +0100 + +grub2 (1.98+20100614-2) unstable; urgency=low + + * Build-depend on gcc-4.4-multilib on i386 and kopensolaris-i386 too, in + order to build grub-efi-amd64. + * Ignore non-option arguments in grub-mkconfig (closes: #586056). + + -- Colin Watson Wed, 16 Jun 2010 17:58:48 +0100 + +grub2 (1.98+20100614-1) unstable; urgency=low + + * New Bazaar snapshot. + - Make target-related error messages from grub-mkimage slightly more + helpful (closes: #584415). + - Fix underquoting that broke savedefault (thanks, Mario 'BitKoenig' + Holbe; closes: #584812). + - Expand 'info grub' substantially, including a new section on + configuring authentication (closes: #584822). + - Give all manual pages proper NAME sections (closes: #496706). + + * Update 915resolution from grub-extras: + - Fix a hang with 945GME (thanks, Sergio Perticone; closes: #582142). + + [ Colin Watson ] + * Disable grub-emu on sparc for the time being. We're currently trying to + use TARGET_* flags to build it, which won't work. + * Don't build-depend on libsdl1.2-dev on hurd-i386. Although + libsdl1.2-dev exists there, it's currently uninstallable due to missing + libpulse-dev, and we can happily live without it for now. + * kfreebsd-amd64 needs gcc-4.4-multilib too (closes: #585668). + * Warn and return without error from prepare_grub_to_access_device if + /boot is a dm-crypt device (thanks, Marc Haber; closes: #542165). + * Make /etc/grub.d/05_debian_theme usable by shells other than bash + (thanks, Alex Chiang; closes: #585561). + * Remove grub-mkisofs leftovers from debian/copyright. + * Fix reversed sense of DEB_BUILD_OPTIONS=nocheck handling. + * Build-depend on qemu-system for grub-pc tests. + + -- Colin Watson Tue, 15 Jun 2010 12:45:35 +0100 + +grub2 (1.98+20100602-2) unstable; urgency=low + + * Only build-depend on libdevmapper-dev on Linux architectures. + * Don't build-depend on libusb-dev on hurd-i386, where it doesn't seem to + be available. + * Fix printf format mismatch in disk/usbms.c (closes: #584474). + * Fix verbose error output when device-mapper isn't supported by the + running kernel (closes: #584196). + * Prepend "part_" to partmap module names in grub-mkconfig, in line with + grub-install (closes: #584426). + + -- Colin Watson Fri, 04 Jun 2010 14:01:58 +0100 + +grub2 (1.98+20100602-1) unstable; urgency=low + + * New Bazaar snapshot. + - Add btrfs probing support, currently only in the single-device case + (closes: #540786). + - Fix grub-emu build on mips/powerpc/sparc. + - Add safety check to make sure that /boot/grub/locale exists before + trying to probe it (closes: #567211). + - Several 'info grub' improvements, including a new section on + configuration file generation using grub-mkconfig which documents the + available keys in /etc/default/grub (closes: #497085). + - Many USB fixes. + + [ Colin Watson ] + * Reorganise configure and build targets in debian/rules to use stamp + files. configure/* never existed and build/* was always a directory, so + make never considered either of them up to date (closes: #450505). + * Remove config.h.in from AUTOGEN_FILES, since autoheader doesn't + necessarily update it. + * Remove conf/gcry.mk from AUTOGEN_FILES, and conf/gcry.rmk from their + dependencies. autogen.sh runs util/import_gcry.py after autoconf et al, + so conf/gcry.rmk's timestamp will be later than some of the + autogenerated outputs. + * Go back to shipping rescue images in the grub-rescue-pc .deb itself + rather than generating them in the postinst. This means that (a) they + get removed when the package is removed (closes: #584176); (b) they are + listed in package metadata, as is proper for files in /usr (closes: + #584218); (c) grub-rescue-pc can potentially be used as a + build-dependency for other packages that need to build GRUB images into + installation media etc., without having to build-depend on grub-pc which + isn't coinstallable with other platform variants and does invasive + things in its postinst. + * Add grub-mkrescue patch from Thomas Schmitt to allow reducing the size + of xorriso-created images. Use this to ensure that + grub-rescue-floppy.img fits well within size limits (closes: #548320). + + -- Colin Watson Thu, 03 Jun 2010 11:24:41 +0100 + +grub2 (1.98+20100527-2) unstable; urgency=low + + * Always override statically-linked-binary Lintian tag for kernel.img; + dynamic linking makes no sense here. + * kernel.img is stripped upstream where it can be, but override Lintian's + error for the cases where it can't. + * Override binary-from-other-architecture for kernel.img as well as *.mod + when building grub-efi-amd64 on i386. + + -- Colin Watson Tue, 01 Jun 2010 13:48:14 +0100 + +grub2 (1.98+20100527-1) unstable; urgency=low + + * New Bazaar snapshot. + - Support multiple terminals in grub-mkconfig, e.g. + GRUB_TERMINAL='serial console' (closes: #506707). + - Speed up consecutive hostdisk operations on the same device (closes: + #508834, #574088). + - Fix grammar error in grub-setup warning (closes: #559005). + - Use xorriso for image creation rather than embedding a modified copy + of mkisofs (closes: #570156). + - Issue an error rather than segfaulting if only some LVM component + devices are in device.map (closes: #577808). + - Fix typo in make_device_name which caused grub-probe problems on + systems with BSD disk labels (closes: #578201). + - Add DM-RAID probe support (closes: #579919). + - Include all gnumach kernels on Hurd, not just gnumach and gnumach.gz + (closes: #581584). + + [ Colin Watson ] + * Restore TEXTDOMAINDIR correction in grub.d files, lost by mistake in a + merge. Noticed by Anthony Fok. + * Don't fail on purge if the ucf association has already been taken over + by a different grub package (closes: #574176). + * Add debian/grub-extras/*/conf/*.mk to AUTOGEN_FILES. + * Remove support for the lpia architecture, now removed from Ubuntu. + * Conflict with grub (<< 0.97-54) as well as grub-legacy. + * Build-depend on libdevmapper-dev for DM-RAID probe support. + * Switch to quilt. + * Suggest xorriso (>= 0.5.6.pl00) in grub-common, since grub-mkrescue now + needs it. Depend on it in grub-rescue-pc. + * Move grub-mkimage to grub-common, now that it only has one + implementation. + * Clean up temporary files used while building grub-firmware-qemu. + * Make grub-probe work with symlinks under /dev/mapper (closes: #550704). + * When upgrading a system where GRUB 2 is chainloaded from GRUB Legacy and + upgrade-from-grub-legacy has not been run, upgrade the chainloaded image + rather than confusing the user by prompting them where they want to + install GRUB (closes: #546822). + * Build-depend on libsdl1.2-dev for SDL support in grub-emu. + * Don't leak debconf's file descriptor to update-grub, so that the LVM + tools called from os-prober don't complain about it (closes: #549976). + Other leaks are not this package's fault, may not be bugs at all, and in + any case os-prober 1.36 suppresses the warnings. + * Build-depend on flex (>= 2.5.35). + * Build-depend on gcc-4.4-multilib on amd64. + + [ Updated translations ] + * Slovenian (sl.po) by Vanja Cvelbar (closes: #570110). + * Vietnamese (vi.po) by Clytie Siddall (closes: #574578). + * Tamil (ta.po) by Tirumurti Vasudevan (closes: #578282). + * Portuguese (pt.po) by Tiago Fernandes (closes: #580140). + * Romanian (ro.po) by Eddy Petrișor / Andrei Popescu (closes: #583185). + + -- Colin Watson Tue, 01 Jun 2010 11:24:38 +0100 + +grub2 (1.98-1) unstable; urgency=low + + * New upstream release (closes: #572898). + - Fix grub-script-check to handle empty lines (closes: #572302). + - Fix offset computation when reading last sectors. Partition reads and + writes within and outside a partition (closes: #567469, #567884). + - Fix script execution error handling bug that meant that an error in a + menuentry's last statement caused the whole menuentry to fail (closes: + #566538, LP: #464743). + - Support GRUB_GFXPAYLOAD_LINUX (closes: #536453, LP: #416772). + + [ Samuel Thibault ] + * Add GRUB_INIT_TUNE example to /etc/default/grub (closes: #570340). + + [ Colin Watson ] + * Build-depend on libusb-dev so that grub-emu is reliably built with USB + support (closes: #572854). + * Update directions in debian/rules on exporting grub-extras to account + for it being maintained in Bazaar nowadays. + * Add myself to Uploaders. + * Acknowledge NMUs, thanks to Torsten Landschoff and Julien Cristau. + + -- Colin Watson Tue, 09 Mar 2010 13:25:35 +0000 + +grub2 (1.98~20100128-1.2) unstable; urgency=low + + * Non-maintainer upload. + * Stop setting gfxpayload=keep (closes: #567245). + + -- Julien Cristau Sun, 14 Feb 2010 20:37:51 +0100 + +grub2 (1.98~20100128-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Apply trivial patch (already merged upstream) fixing the offset + computation for non-cached reads (closes: #567637). + + -- Torsten Landschoff Mon, 08 Feb 2010 22:15:01 +0100 + +grub2 (1.98~20100128-1) unstable; urgency=low + + * New Bazaar snapshot. + - Fix corruption problem when reading files from CDROM. (Closes: #567219) + + [ Felix Zielcke ] + * Never strip kernel.img in rules. Upstream already does it when it + can be done. (Closes: #561933) + * Bump Standards-Version to 3.8.4. + + [ Robert Millan ] + * rules: Run the testsuite (make check) when building grub-pc. + + -- Robert Millan Thu, 28 Jan 2010 16:28:45 +0100 + +grub2 (1.98~20100126-1) unstable; urgency=low + + * New Bazaar snapshot. + - Includes mipsel-yeeloong port. + + [ Robert Millan ] + * config.in: Lower priority of grub2/linux_cmdline_default. + + [ Felix Zielcke ] + * Drop `CFLAGS=-O0' workaround on powerpc. Should be fixed correctly now. + * Ship grub-bin2h and grub-script-check in grub-common. + * Terminate NEWS.Debian with a blank line like lintian would suggest + if that check would be working correctly. + + -- Felix Zielcke Tue, 26 Jan 2010 19:26:25 +0100 + +grub2 (1.98~20100115-1) unstable; urgency=low + + * New Bazaar snapshot. + - Includes savedefault / grub-reboot branch. + - Includes Multiboot video support (from latest 1.x draft). + + -- Robert Millan Fri, 15 Jan 2010 18:15:26 +0100 + +grub2 (1.98~20100110-1) unstable; urgency=low + + * New Bazaar snapshot. + + [ Robert Millan ] + * grub-rescue-pc.postinst: Fix image generation during upgrades. + (Closes: #564261) + + -- Robert Millan Sun, 10 Jan 2010 02:45:52 +0100 + +grub2 (1.98~20100107-1) unstable; urgency=low + + * New Bazaar snapshot. + + [ Robert Millan ] + * grub-rescue-pc.postinst: Use grub-mkrescue for floppy as well. + + [ Updated translations ] + * Chinese (zh_TW.po) by Tetralet. (Closes: #564044) + + -- Robert Millan Thu, 07 Jan 2010 17:56:10 +0100 + +grub2 (1.98~20100101-1) unstable; urgency=high + + * New Bazaar snapshot. + - Fix FTBS on sparc. + + [ Robert Millan ] + * rules: Auto-update version from debian/changelog. + + [ Felix Zielcke ] + * Add -O0 to CFLAGS on powerpc to avoid the `_restgpr_31_x in boot is + not defined' FTBFS. + + -- Felix Zielcke Fri, 01 Jan 2010 00:31:37 +0100 + +grub2 (1.98~20091229-1) unstable; urgency=high + + * New Bazaar snapshot. + - Fix slowness when $prefix uses an UUID. + (Closes: #541145, LP: #420933) + - Correctly set TARGET_CFLAGS. (Closes: #562953) + + [ Robert Millan ] + * grub-rescue-pc.postinst: Build USB rescue image. + * rules: Invoke configure with relative path. This makes binaries smaller, + since dprintf strings are constructed using this path. + + [ Felix Zielcke ] + * Urgency=high due to RC bug fix. + * Fix version comparison in grub-common.preinst for handling obsolete + /etc/grub.d/10_freebsd. (Closes: #562921) + + -- Felix Zielcke Tue, 29 Dec 2009 16:05:00 +0100 + +grub2 (1.98~20091222-1) unstable; urgency=low + + * New Baazar snapshot. + - Make 30_os-prober again dash compatible. (Closes: #562034) + + -- Felix Zielcke Tue, 22 Dec 2009 12:50:57 +0100 + +grub2 (1.98~20091221-1) unstable; urgency=low + + * New Bazaar snapshot. + - Fix search command failing on some broken BIOSes. (Closes: #530357) + + [ Felix Zielcke ] + * Add Replaces:/Conflicts: grub-linuxbios to grub-coreboot. (Closes: #561811) + * Delete obsolete /etc/grub.d/10_freebsd if it has not been modified, + else disable it. (Closes: #560346) + + -- Robert Millan Mon, 21 Dec 2009 22:04:17 +0100 + +grub2 (1.98~20091210-1) unstable; urgency=low + + * Version bump. + + -- Robert Millan Mon, 14 Dec 2009 14:52:59 +0100 + +grub2 (1.97+20091210-1) unstable; urgency=low + + * New Bazaar snapshot. + - patches/02_fix_mountpoints_in_mkrelpath.diff: Remove (merged). + - Fixes FTBFS on powerpc (again) and sparc. + - patches/903_grub_legacy_0_based_partitions.diff: Resync (merged into + debian branch). + + * Fix dpkg dependency for lenny compatibility. + + -- Robert Millan Thu, 10 Dec 2009 00:35:20 +0100 + +grub2 (1.97+20091130-1) unstable; urgency=low + + * New Bazaar snapshot. + * Enable ntldr-img from grub-extras. + + -- Robert Millan Mon, 30 Nov 2009 02:33:03 +0100 + +grub2 (1.97+20091125-2) unstable; urgency=low + + [ Updated translations ] + * Bulgarian (bg.po) by Damyan Ivanovi (Closes: #558039) + + [ Robert Millan ] + * control: Remove genisoimage from Build-Depends/Suggests (no longer + used). + * grub.d/05_debian_theme: Make output string distro-agnostic. + + [ Felix Zielcke ] + * patches/02_fix_mountpoints_in_mkrelpath.diff: New patch to handle + mount points like the old shell function did. (Closes: #558042) + + -- Felix Zielcke Sun, 29 Nov 2009 21:38:00 +0100 + +grub2 (1.97+20091125-1) unstable; urgency=low + + [ Robert Millan ] + * New upstream snapshot. + - Fixes script parser load error. + + * Add gettext to Build-Depends and gettext-base to grub-common's + Depends. + + -- Felix Zielcke Wed, 25 Nov 2009 19:22:51 +0100 + +grub2 (1.97+20091124-1) unstable; urgency=low + + * New upstream snapshot. + - Fix grub-mkisofs related FTBFS on powerpc. (Closes: #557704) + - Create fake GRUB devices for devices not listed in device.map. + This also makes dmraid and multipath work as long as + search --fs-uuid works. (Closes: #442382, #540549, LP: #392136) + - rules: grub-emu is now built as a port. + + [ Felix Zielcke ] + * Change the bt-utf-source build dependency to xfonts-unifont. It's + more complete, better maintained and grub-mkfont supports actually + more then BDF fonts as input, thanks to libfreetype. + * Use grub-probe to get the GRUB device of /boot/grub instead of + passing (hd0) to grub-install when creating the core.img with + chainloading. This avoids the (UUID=) hack slowness in case + /boot/grub is on a different disk then (hd0) in device.map. + * patches/903_grub_legacy_0_based_partitions.diff: Update. + * Add a build dependency on automake and python. + * Set TARGET_CC=$(CC) to really use gcc-4.4 everywhere. Also pass it + and CC as arguments to ./configure instead of env vars so they get + preserved. + * Ship grub-mkrelpath in grub-common. + * Ship the locale files in grub-common. + * Add a dependency on 'dpkg (>= 1.15.4) | install-info' for grub-common + as recommended by Policy and lintian. + + + -- Felix Zielcke Tue, 24 Nov 2009 21:20:00 +0100 + +grub2 (1.97+20091115-1) unstable; urgency=low + + * New upstream snapshot. + - Fix security problem with password checking. (Closes: #555195) + - Fix the generated GNU/Hurd menu entries and also add support for + it in 30_os-prober. (Closes: #555188) + - Same grub-mkrescue for grub-pc and grub-coreboot, used by + grub-rescue-pc during postinst now. (Closes: #501867) + + [ Felix Zielcke ] + * Ship grub-mkisofs in grub-common. + * patches/002_grub.d_freebsd.in.diff: Remove (merged upstream). + * patches/906_grub_extras.diff: Remove. Superseded by GRUB_CONTRIB variable + in recent upstream trunk. + * rules: Export GRUB_CONTRIB to enable grub-extras add-ons. + * Pass --force to grub-install in the postinst. (Closes: #553415) + * Don't strip debug symbols from grub-emu. It's meant for debugging + and with them it's much more useful. + * Ship grub-mkfloppy in grub-pc. + * Revert the Replaces: grub-common to (<= 1.96+20080413-1) on the + grub-pc package. It was wrongly modified long ago. + + [ Robert Millan ] + * copyright: Document mkisofs. + * control: Update Vcs- fields (moved to Bazaar). + * rules: Update debian/legacy/update-grub rule to Bazaar. + + -- Felix Zielcke Sun, 15 Nov 2009 19:13:31 +0100 + +grub2 (1.97-1) unstable; urgency=low + + [ Robert Millan ] + * patches/905_setup_force.diff: Remove, no longer needed as of + grub-installer >= 1.47. + * grub.d/05_debian_theme: Attempt to source grub_background.sh from + desktop-base (Needed for #495282, #495616, #500134, see also + #550984). + + [ Felix Zielcke ] + * Add a build dependency on texinfo. + * Fix little typo in /etc/default/grub. (LP: #457703) + + [ Updated translations ] + * Finnish (fi.po) by Esko Arajärvi. (Closes: #551912) + + -- Felix Zielcke Sun, 25 Oct 2009 19:50:21 +0100 + +grub2 (1.97~beta4-1) unstable; urgency=low + + * New upstream beta release. + + [ Felix Zielcke ] + * Change the Recommends: os-prober to (>= 1.33). + * patches/907_grub.cfg_400.diff: Really add it. Somehow it was a 0 byte file. + (Closes: #547409) + * Convert newlines back to spaces when parsing kopt from + GRUB Legacy's menu.lst, before giving the value to Debconf. + Thanks to Colin Watson. (Closes: #547649) + * Ship the info docs in grub-common. (Closes: #484074) + * Remove generated /usr/share/info/dir* files. + * Update the presubj bug file and also install it for grub-common. + + [ Robert Millan ] + * Enable ZFS and 915resolution in grub-extras (now requires explicit + switch). + * grub-common conflicts with grub-doc (<< 0.97-32) and grub-legacy-doc + (<< 0.97-59). + * Move grub-emu to a separate package. + + [ Updated translations ] + * Japanese (ja.po) by Hideki Yamane. (Closes: #549599) + + -- Robert Millan Mon, 05 Oct 2009 20:03:04 +0200 + +grub2 (1.97~beta3-1) unstable; urgency=high + + * New upstream beta release. + - Make it more clear how to use /etc/grub.d/40_custom. (Closes: #545153) + - fix a serious memory corruption in the graphical subsystem. + (Closes: #545364, #544155, #544639, #544822, LP: #424503) + - patches/003_grub_probe_segfault.diff: Remove (merged). + + * Change the watch file so upstream beta releases are recognized. + * Include /etc/default/grub in bug reports. + * Recommend os-prober (>= 1.32). (Closes: #491872) + * Change the gcc-multilib [sparc] build dependency to gcc-4.4-multilib + [sparc]. + * patches/907_grub.cfg_400.diff: New patch to make grub.cfg again mode + 444 if it does not contain a password line. + * Use `su' in the bug reporting script to read grub.cfg in case the user + is not allowed to read it. + * Readd grub-pc/kopt-extracted template. + + [ Updated translations ] + * Brazilian Portuguese (pt_BR.po) by Flamarion Jorge. + * Japanese (ja.po) by Hideki Yamane. (Closes: #545331) + * Spanish (es.po) by Francisco Javier Cuadrado. (Closes: #545566) + * Italian (it.po) by Luca Monducci. (Closes: #546035) + + -- Felix Zielcke Sat, 12 Sep 2009 15:28:20 +0200 + +grub2 (1.97~beta2-2) unstable; urgency=low + + [ Updated translations ] + * Dutch (nl.po) by Paul Gevers. (Closes: #545050) + + [ Felix Zielcke ] + * Move GRUB Legacy's grub-set-default to /usr/lib/grub-legacy in + preparation for GRUB 2's grub-set-default. + * Remove password lines in bug script. + + [ Robert Millan ] + * Do not conflict with `grub' dummy package (this prevented upgrades). + * patches/003_grub_probe_segfault.diff: Disable file test codepath, which + wasn't normally used before. + + -- Felix Zielcke Sat, 05 Sep 2009 00:27:22 +0200 + +grub2 (1.97~beta2-1) unstable; urgency=low + + * New upstream beta release. + - Fix loading of FreeBSD modules. (Closes: #544305) + + [ Updated translations ] + * French (fr.po) by Christian Perrier. (Closes: #544320) + * Czech (cs.po) by Miroslav Kure. (Closes: #544327) + * Belarusian (be.po) by Hleb Rubanau. + * Arabic (ar.po) by Ossama M. Khayat. + * Catalan (ca.po) by Juan Andrés Gimeno Crespo. + * Russian (ru.po) by Yuri Kozlov. (Closes: #544730) + * Swedish (sv.po) by Martin Ågren. (Closes: #544759) + * Brazilian Portuguese (pt_BR.po) by Flamarion Jorge. (Closes: #544810) + * German (de.po) by Helge Kreutzmann. (Closes: #544912) + + [ Robert Millan ] + * Build with GCC 4.4. + + -- Robert Millan Fri, 04 Sep 2009 14:40:20 +0200 + +grub2 (1.97~beta1-1) unstable; urgency=low + + * New upstream beta release. + + [ Updated translations ] + * German (de.po) by Helge Kreutzmann. (Closes: #544261) + * Asturian (ast.po) by Marcos. + * Georgian (ka.po) by Aiet Kolkhi. + + [ Robert Millan ] + * Merge config, templates, postinst, postrm, dirs and install files + into a single source. + * Disable Linux-specific strings on GNU/kFreeBSD. Enable translations + in grub2/linux_cmdline_default. Add grub2/kfreebsd_* strings (still + unused). + + -- Felix Zielcke Sun, 30 Aug 2009 18:01:40 +0200 + +grub2 (1.96+20090829-1) unstable; urgency=low + + * New SVN snapshot. + - Fix filesystem mapping on GNU/kFreeBSD. (Closes: #543950) + + * New grub-extras SVN snapshot. + - Add 915resolution support to the GMA500 (poulsbo) graphics chipset. + Thanks to Pedro Bulach Gapski. (Closes: #543917) + + * Use `cp -p' to copy /usr/share/grub/default/grub to the temporary + file to preverse permissions. + * Remove also efiemu files from /boot/grub on purge if requested. + * Check that GRUB_CMDLINE_LINUX and GRUB_CMDLINUX_LINUX_DEFAULT is at + the start of line in *.postinst. + * Don't check that $GRUB_CMDLINE_LINUX{,DEFAULT} are non empty strings + in *.config. + * Add empty GRUB_CMDLINE_LINUX to /usr/share/grub/default/grub. + * Factorise the editing of the temporary file. Thanks to Martin F + Krafft. + * Read in /etc/default/grub in *.config files. + + [ Updated translations ] + * French (fr.po) by Christian Perrier. (Closes: #544023) + * Russian (ru.po) by Yuri Kozlov. (Closes: #544077) + * Italian (it.po) by Luca Monducci. (Closes: #544200) + + -- Felix Zielcke Sat, 29 Aug 2009 17:01:17 +0200 + +grub2 (1.96+20090826-3) unstable; urgency=low + + * Add missing quotes in grub-pc.config and *.postinst. + + -- Felix Zielcke Wed, 26 Aug 2009 19:14:23 +0200 + +grub2 (1.96+20090826-2) unstable; urgency=low + + * Really use the correct templates in grub-pc.config. ARGS. + + -- Felix Zielcke Wed, 26 Aug 2009 14:10:41 +0200 + +grub2 (1.96+20090826-1) unstable; urgency=low + + * New SVN snapshot. + + * Use the right templates in grub-pc.config. (Closes: #543615) + + -- Felix Zielcke Wed, 26 Aug 2009 11:00:36 +0200 + +grub2 (1.96+20090825-1) unstable; urgency=low + + * New SVN snapshot. + - Enable gfxterm only if there's a suitable video backend and don't + print an error if not. (Closes: #520846) + + [ Felix Zielcke ] + * Copy unicode.pf2 instead of ascii.pf2 to /boot/grub in grub-pc + postinst (Closes: #542314). + * Update Standards version to 3.8.3. + * Use DEB_HOST_ARCH_CPU for the generation of the lintian overrides. + * Fix calling the grub-pc/postrm_purge_boot_grub template in + grub-pc.postinst. + * Handle GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT via + debconf. Thanks to Martin F. Krafft and Colin Watson for idea and + hints. + * Use ucfr --force when /etc/default/grub is registered to a grub-* package. + * Use #!/bin/sh in *.config and fix a small bashism in grub-pc.config. + + [ Robert Millan ] + * patches/907_terminal_output_workaround.diff: Remove. It seems that + it wasn't really necessary. + * grub-pc.postinst: Avoid printing an error if /etc/kernel-img.conf + doesn't exist, because it is misleading. We simply refrain from + fixing it and move along. + * grub-pc.postinst: Don't schedule generation of grub.cfg via "grub-install" + code path unless we actually run grub-install. + * grub-pc.postinst: Only copy unicode.pf2 and moreblue-orbit-grub.png when + /boot/grub/grub.cfg is scheduled to be generated. + * legacy/upgrade-from-grub-legacy: Reset grub-pc/install_devices. + Thanks Colin Watson. (Closes: #541230) + + -- Felix Zielcke Tue, 25 Aug 2009 21:45:24 +0200 + +grub2 (1.96+20090808-1) unstable; urgency=low + + * New SVN snapshot. + - Fix XFS with inode size different then 256. (Closes: #528761) + - Add support for multiple LVM metadata areas. (LP: #408580) + - patches/008_dac_palette_width.diff: Remove. (merged) + - Prefer unicode over ascii font. (LP: #352034) + + [ Felix Zielcke ] + * Fix the generation of the lintian override for efiemu64.o. + * Remove the Conflicts dmsetup. + * Use ?= for setting DEB_HOST_ARCH. + * Document GRUB_DISABLE_LINUX_RECOVERY in /etc/default/grub. + (Closes: #476536 LP: #190207) + * Add docs/grub.cfg to examples. + * patches/01_uuids_and_lvm_dont_play_along_nicely.diff: Updated to + also disable UUIDs on LVM over RAID. + * Add a debconf prompt to remove all grub2 files from /boot/grub on + purge. (Closes: #527068, #470400) + * Move the Suggests: os-prober from grub-pc to grub-common. + * patches/901_dpkg_version_comparison.diff: Updated. + * Update the Replaces on grub-common for the other packages to (<< + 1.96+20080831-1). (Closes: #540492) + + [ Robert Millan ] + * Reorganize grub-pc.{config,postinst} logic. The idea being that if there's + no trace of GRUB Legacy, the grub-pc/install_devices template will be + shown even if this is the first install. + * When setting grub-pc/install_devices, obtain input dynamically from + grub-mkdevicemap (rather than devices.map). (Closes: #535525) + * Add a note to grub-pc/install_devices template that it's also possible + to install GRUB to a partition boot record. + * patches/002_grub.d_freebsd.in.diff: New patch. Reimplement + 10_freebsd.in to handle multiple kernel versions & acpi.ko. + + -- Robert Millan Mon, 10 Aug 2009 18:49:52 +0200 + +grub2 (1.96+20090725-1) unstable; urgency=high + + * New SVN snapshot. + - Don't add drivemap call with Windows Vista/7. It breaks Win 7. + (LP: #402154) + + [ Felix Zielcke ] + * Don't build grub-efi-amd64 on hurd-i386. + * Change DEB_BUILD_ARCH to DEB_HOST_ARCH in the check for sparc. + * Don't add the lintian override for kernel.img for sparc and grub-pc. + * Add a lintian override for binary-from-other-architecture for + grub-efi-amd64 and grub-pc on i386. + * Use wildcards in the lintian overrides. + * Add a Conflicts/Replaces for all packages except grub-common. + (Closes: #538177) + + [ Robert Millan ] + * 008_dac_palette_width.diff: New patch. Fix blank screen when booting + Linux with vga= parameter set to a packed color mode (<= 8-bit). + (Closes: #535026) + * Set urgency=high because #535026 affects 1.96+20090709-1 which is in + testing now. + * patches/907_terminal_output_workaround.diff: Work around recent regression + with terminal_output command (not critical, just breaks gfxterm). + + -- Robert Millan Sat, 25 Jul 2009 19:00:53 +0200 + +grub2 (1.96+20090721-4) unstable; urgency=low + + * Place grub-ofpathname only in grub-common. (Closes: #537999) + + -- Felix Zielcke Wed, 22 Jul 2009 13:38:24 +0200 + +grub2 (1.96+20090721-3) unstable; urgency=low + + * Don't strip kernel.img on sparc. + * Suggest efibootmgr on grub-efi-{amd64,ia32}. + * Pass --disable-grub-fstest to configure. (Closes: #537897) + + -- Felix Zielcke Tue, 21 Jul 2009 21:46:01 +0200 + +grub2 (1.96+20090721-2) unstable; urgency=low + + * Add back Conflicts/Replaces grub. + + -- Felix Zielcke Tue, 21 Jul 2009 11:24:45 +0200 + +grub2 (1.96+20090721-1) unstable; urgency=low + + * New SVN snapshot. + + * Change License of my update-grub(8) and update-grub2(8) manpages to + GPL3+ to match new copyright file. + * Merge from Ubuntu: Don't build grub-efi-amd64 on lpia. + * Don't pass `--enable-efiemu' to configure. On kfreebsd-i386 it won't + compile and it should be now auto detected if it's compilable. + (Closes: #536783) + * Don't build grub-efi-amd64 on kfreebsd-i386. It lacks 64bit compiler + support. + * Rename the lintian override for kernel.elf to kernel.img. + * Strip kernel.img not kernel.elf, but not in the case of grub-pc. + * Rename the Conflicts/Replaces grub to grub-legacy. (Closes: #537824) + + -- Felix Zielcke Tue, 21 Jul 2009 10:50:20 +0200 + +grub2 (1.96+20090709-1) unstable; urgency=low + + * New SVN snapshot. + + * control (Build-Depends): Add gcc-multilib [sparc]. + * copyright: Rewrite using DEP-5 format. + * Merge grub-extras into the package, and integrate it with GRUB's + build system. + - patches/906_grub_extras.diff + - rules + - copyright + + -- Robert Millan Thu, 09 Jul 2009 00:26:49 +0200 + +grub2 (1.96+20090702-1) unstable; urgency=low + + * New SVN snapshot. + * rules: Remove duplicated files in sparc64-ieee1275 port. + * rules: Comment out -DGRUB_ASSUME_LINUX_HAS_FB_SUPPORT=1 setting. We'll + re-evaluate using it when it's more mature. (Closes: #535026). + + -- Robert Millan Thu, 02 Jul 2009 13:23:51 +0200 + +grub2 (1.96+20090629-1) unstable; urgency=low + + * New SVN snapshot. + - Misc fixes in Linux loader. + + * control (grub-firmware-qemu): Make it buildable only on i386/amd64. + * control: Add sparc (grub-ieee1275), remove remnants of ppc64. + * rules: Include all modules in grub-firmware-qemu build. + + -- Robert Millan Mon, 29 Jun 2009 19:22:37 +0200 + +grub2 (1.96+20090628-1) unstable; urgency=low + + * New SVN snapshot. + * Re-enable QEMU port. + + -- Robert Millan Sun, 28 Jun 2009 01:11:10 +0200 + +grub2 (1.96+20090627-2) unstable; urgency=low + + * Disable QEMU port untill it goes through NEW. + * Upload to unstable. + + -- Robert Millan Sat, 27 Jun 2009 18:40:17 +0200 + +grub2 (1.96+20090627-1) experimental; urgency=low + + * New SVN snapshot. + - Fix parsing of --output in grub-mkconfig. (Closes: #532956) + + [ Felix Zielcke ] + * Use ucfr --force in grub-ieee1275.postinst in case we're upgrading + from previous version. It registered /etc/default/grub wrongly with + package iee1275. + * Drop the build dependency on libc6-dev-i386. + * Remove ppc64 from the Architectures. It's totally dead. + * Add a note to /etc/default/grub that update-grub needs to be run to + update grub.cfg. (Closes: #533026) + * Fix the svn-snapshot rule. + * Update Standards version to 3.8.2. No changes needed. + + [ Robert Millan ] + * legacy/upgrade-from-grub-legacy: Invoke grub-pc.postinst directly rather + than dpkg-reconfigure. Since we pretend we're upgrading, it will DTRT. + * Add grub-firmware-qemu package. + - patches/008_qemu.diff: QEMU port (patch from upstream). + - control (grub-firmware-qemu): New package. + - rules: Add grub-firmware-qemu targets. + - debian/grub-firmware-qemu.dirs + - debian/grub-firmware-qemu.install + * patches/906_revert_to_linux16.diff: Remove, now that gfxpayload is + supported. + + -- Robert Millan Sat, 27 Jun 2009 00:46:23 +0200 + +grub2 (1.96+20090611-1) experimental; urgency=low + + * New SVN snapshot. + + * Append .diff to patches/01_uuids_and_lvm_dont_play_along_nicely so + it gets really applied. + * Drop completely the build dependency on gcc-multilib. + * Instead of arborting in the preinst if /etc/kernel-img.conf still + contains /sbin/update-grub, change the file with sed. Policy allows + thisi, because it's not a conffile, according to Colin Watson. + * Change /etc/default/grub to an ucf managed file instead of dpkg + conffile. + + -- Felix Zielcke Fri, 12 Jun 2009 11:46:24 +0200 + +grub2 (1.96+20090609-1) experimental; urgency=low + + * New SVN snapshot. + - Fix variable parsing inside strings. (Closes: #486180) + - Add `true' command. (Closes: #530736) + + [ Robert Millan ] + * Split grub-efi in grub-efi-ia32 and grub-efi-amd64, both available + on i386 and amd64. (Closes: #524756) + * Add kopensolaris-i386 to arch list. + + [ Felix Zielcke ] + * Add a NEWS entry about the grub-efi split. + * Drop the build dependency on gcc-multilib for all *i386. + * Change upgrade-from-grub-legacy to use `dpkg-reconfigure grub-pc' to + install grub2 into MBR. + + [ New translations ] + * Catalan (ca.po) by Jordi Mallach. + + [ Updated translations ] + * Spanish (es.po) by Francisco Javier Cuadrado. (Closes: #532407) + + -- Jordi Mallach Tue, 09 Jun 2009 19:21:15 +0200 + +grub2 (1.96+20090603-1) unstable; urgency=low + + * New SVN snapshot. + + * Abort the install of grub-pc if /etc/kernel-img.conf still contains + /sbin/update-grub (Closes: #500631). + + -- Felix Zielcke Wed, 03 Jun 2009 20:01:11 +0200 + +grub2 (1.96+20090602-1) unstable; urgency=low + + * New SVN snapshot. + + [ Felix Zielcke ] + * Skip floopies in the grub-install debconf prompt in grub-pc postinst. + Patch by Fabian Greffrath. (Closes: #530848) + + [ Robert Millan ] + * Change Vcs-Browser field to viewsvn. + + [ Felix Zielcke ] + * Change Vcs-Svn field to point to the trunk. (Closes: #531391) + * patches/01_uuids_and_lvm_dont_play_along_nicely: New patch. + On Debian root=UUID= with lvm still doestn't work so disable it. + (Closes: #530357) + * Remove Otavio Salvador from Uploaders with his permission. + * add grub-pc.preinst + + -- Felix Zielcke Wed, 03 Jun 2009 14:42:11 +0200 + +grub2 (1.96+20090523-1) unstable; urgency=low + + * New SVN snapshot. + - Add drivemap command, similar to grub-legacy's map command. + (Closes: 503630) + - Export GRUB_TERMINAL_INPUT in grub-mkconfig. (Closes: #526741) + + [ Robert Millan ] + * rules: Set GRUB_ASSUME_LINUX_HAS_FB_SUPPORT=1 in CFLAGS. + * patches/905_setup_force.diff: Relax blocklist warnings. + * patches/906_revert_to_linux16.diff: Keep using linux16 for now. + + [ Felix Zielcke ] + * patches/07_core_in_fs.diff: Updated. + * Remove /etc/grub.d/10_hurd on non-Hurd systems in the grub-common + preinst. Likewise for 10_freebsd for non kFreebsd and 10_linux on + kFreebsd and Hurd. (Closes: #523777) + + -- Felix Zielcke Sat, 23 May 2009 20:05:10 +0200 + +grub2 (1.96+20090504-1) experimental; urgency=low + + * New SVN snapshot. + - Add support for parttool command, which can be used to hide partitions. + (Closes: #505905) + - Fix a segfault with LVM on RAID. (Closes: #520637) + - Add support for char devices on (k)FreeBSD. (Closes: #521292) + - patches/08_powerpc-ieee1275_build_fix.patch: Remove (merged). + + [ Updated translations ] + * Basque (eu.po) by Piarres Beobide. (Closes: #522457) + * German (de.po) by Helge Kreutzmann. (Closes: #522815) + + [ Robert Millan ] + * Update my email address. + * Remove 04_uuids_and_abstraction_dont_play_along_nicely.diff now that + bugs #435983 and #455746 in mdadm and dmsetup have been fixed. + + [ Felix Zielcke ] + * Place new grub-dumpbios in grub-common. + * Add lpia to the archictectures to reduce the ubuntu delta. + * Add a manpage for the update-grub and update-grub2 stubs, written by + me. (Closes: #523876) + * Suggest genisoimage on grub-pc and grub-ieee1275, because grub-mkrescue + needs it to create a cd image. (Closes: #525845) + * Add a dependency on $(AUTOGEN_FILES) for the configure/grub-common target, + this is needed now that upstream removed the autogenerated files from SVN. + * Add `--enable-efiemu to' `./configure' flags. + * Add a build dependency on gcc-multilib for i386. + * Drop alternate build dependency on gcc-4.1 (<< 4.1.2). + + -- Felix Zielcke Mon, 04 May 2009 21:01:22 +0200 + +grub2 (1.96+20090402-1) experimental; urgency=low + + * New SVN snapshot. + - Fix regression in disk/raid.c. (Closes: #521897, #514338) + - Fix handling of filename string lengths in HFS. + (Really closes: #516458). + * Add myself to Uploaders. + * Add patch 08_powerpc-ieee1275_build_fix.patch to fix powerpc-ieee1275 + builds which were lacking header files for kernel_elf_HEADERS. Thanks + Vladimir Serbinenko. + + -- Jordi Mallach Fri, 03 Apr 2009 20:58:37 +0200 + +grub2 (1.96+20090401-1) experimental; urgency=low + + [ Felix Zielcke ] + * New SVN snapshot. + - Pass grub's gfxterm mode to Linux kernel. (Closes: #519506) + - Fix ext4 extents on powerpc. (Closes: #520286) + + [ Robert Millan ] + * Remove grub-of transitional package (Lenny had grub-ieee1275 already). + * Fix kopt parsing in grub-pc.config. Thanks Marcus Obst. (Closes: #514837) + * Add debconf template to automatically run grub-install during upgrades + (prior user confirmation). (Closes: #514705) + + -- Robert Millan Wed, 01 Apr 2009 01:19:45 +0200 + +grub2 (1.96+20090317-1) unstable; urgency=low + + * New SVN snapshot. + - Fix loading of files with underscore in HFS. (Closes: #516458) + + * Update Standards version to 3.8.1. No changes needed. + + [ Updated translations ] + * Brazilian Portuguese (pt_BR.po) by Flamarion Jorge. (Closes: #519417) + + -- Felix Zielcke Tue, 17 Mar 2009 14:42:10 +0100 + +grub2 (1.96+20090309-1) unstable; urgency=low + + * New SVN snapshot. + + -- Felix Zielcke Mon, 09 Mar 2009 10:03:13 +0100 + +grub2 (1.96+20090307-1) unstable; urgency=low + + * New SVN snapshot. + - Add support for /dev/md/dNNpNN mdraid devices. (Closes: #509960) + - Add new PF2 fontengine. (Closes: #510344) + - Avoid mounting ext2 partitions with backward-incompatible features. + (Closes: #502333) + - Try to avoid false positives with FAT. (Closes: #514263) + + [ Felix Zielcke ] + * Remove build-dependency on unifont package and add one for bf-utf-source + package and libfreetype6-dev + * grub-pc.postinst: Copy new ascii.pf2 instead of old ascii.pff to /boot/grub. + * Add `--enable-grub-mkfont' to configure flags. + * Put new grub-mkfont in grub-common package. + * Add a dependency for ${misc:Depends} to all packages to make lintian a bit + more happy. + * Detect when grub-setup leaves core.img in filesystem, and include that + info in bug report templates. + - debian/patches/07_core_in_fs.diff + - debian/script + * Add myself to Uploads and add `DM-Upload-Allowed: yes' tag. + + [ Updated translations ] + * Asturian (ast.po) by Marcos Alvarez Costales. (Closes: #511144) + * Traditional Chinese (zh_TW.po) by Tetralet. (Closes: #513918) + * Belarusian (be.po) by Pavel Piatruk. (Closes: #516243) + + -- Felix Zielcke Sat, 07 Mar 2009 11:54:43 +0100 + +grub2 (1.96+20081201-1) experimental; urgency=low + + * New SVN snapshot. + + -- Robert Millan Mon, 1 Dec 2008 00:07:31 +0100 + +grub2 (1.96+20081120-1) experimental; urgency=low + + * New SVN snapshot. + + * Update to new debian theme. + - grub-pc.postinst: Switch to moreblue-orbit-grub.png. + - grub.d/05_debian_theme: Likewise. + * grub.d/05_debian_theme: + - Update to use new grub-mkconfig_lib instead of the deprecated + update-grub_lib. + - Update to check if `GRUB_TERMINAL_OUTPUT' is `gfxterm' instead of + `GRUB_TERMINAL'. + + [ Updated translations ] + * Romanien (ro.po) by Eddy Petrișor. (Closes: #506039) + + -- Felix Zielcke Thu, 20 Nov 2008 20:25:56 +0100 + +grub2 (1.96+20081108-1) experimental; urgency=low + + * New SVN snapshot. + - Add support for /dev/md/N style mdraid devices. (Closes: #475585) + - Handle LVM dash escaping. (Closes: #464215) + - Use case insensitive match in NTFS. (Closes: #497889) + - Use hd%d drive names in grub-mkdevicemap for all architectures. + (Closes: #465365) + - Handle LVM circular metadata. (Closes: #462835, #502953) + - Fix NULL dereference and failure paths in LVM. Thanks Guillem Jover. + (Closes: #500482) + - Provides GRUB header files (only in grub-common). + + [ Updated translations ] + * Dutch (nl.po) by Paul Gevers. (Closes: #500514) + * French (fr.po) by Christian Perrier. (Closes: #503708) + * Georgian (ka.po) by Aiet Kolkhi. (Closes: #503715) + * Czech (cs.po) by Miroslav Kure. (Closes: #503809) + * German (de.po) by Helge Kreutzmann. (Closes: #503841) + * Japanese (ja.po) by Hideki Yamane. (Closes: #503869) + * Italian (it.po) by Luca Monducci. (Closes: #504076) + * Swedish (sv.po) by Martin Ågren. (Closes: #504207) + * Arabic (ar.po) by Ossama Khayat. (Closes: #504254) + * Portuguese (pt.po) by Miguel Figueiredo. (Closes: #504280) + * Russian (ru.po) by Yuri Kozlov. (Closes: #504324) + * Finnish (fi.po) by Esko Arajärvi. (Closes: #504310) + * Basque (eu.po) by Piarres Beobide. (Closes: #504466) + * Dutch (nl.po) by Paul Gevers. (Closes: #504683) + + [ Felix Zielcke ] + * patches/01_grub_legacy_0_based_partitions.diff: Rename to + * patches/903_grub_legacy_0_based_partitions.diff: this and adapt for + s/biosdisk.c/hostdisk.c/ rename upstream. + * patches/03_disable_floppies.diff + patches/904_disable_floppies.diff: Likewise. + * update-grub has been renamed to grub-mkconfig, so provide a stub for + compatibility. + * Make grub-pc/linux_cmdline debconf template translatable. (Closes: #503478) + * Remove ro.po and ta.po. They don't contain a single translated + message. + + [ Robert Millan ] + * control: Make grub-common dependency = ${binary:Version}. + * default/grub: Set GRUB_CMDLINE_LINUX=quiet to syncronize with + default D-I settings. + + -- Robert Millan Sat, 8 Nov 2008 13:54:10 +0100 + +grub2 (1.96+20080831-1) experimental; urgency=low + + * New SVN snapshot. + - patches/00_fix_double_prefix.diff: Remove (merged). (Closes: #487565) + - patches/00_getline.diff: Remove (merged). (Closes: #493289) + - Handle errors in RAID/LVM scan routine (rather than letting the upper + layer cope with them). (Closes: #494501, #495049) + - patches/901_linux_coreboot.diff: Remove (replaced). + - Add support for GFXMODE variable (Closes: #493106) + - Skips /dev/.* in grub-probe. (Closes: #486624) + - RAID code has various fixes. (Closes: #496573) + - Buffered file read is now used to read the background image faster. + (Closes: #490584) + + * We are already using LZMA, because upstream includes it's own lzma encoder, + so drop completely the liblzo handling in control and rules files. + + [ Felix Zielcke ] + * Remove the 1.95 partition numbering transition debconf warning + from grub2 package and removed it from all languages (*.po). + (Closes: #493744) + * Add a comment for the new GFXMODE in default/grub. + * debian/rules: + - Remove 2 ./configure options which it didn't understand. + - New grub-mkelfimage belongs to grub-common. + * debian/control: + - Change debhelper compat level to 7 and build depend on it >= 7. + - Remove ${misc:Depend} dependency on all packages except grub-pc which is + the only one using debconf. + - Replace deprecated ${Source-Version} with ${source:Version} for << + dependency and with ${build:Version} for = ones. + - Remove versioned dependency of Build-Depends patchutils and cdbs, + because etch has newer versions then the one used. + - Remove dpkg-dev completely from Build-Depends because it's + build-essentail and a non versioned dependency results in a lintian error. + - Remove Conflict/Replaces pupa, it has been removed from Debian 2004. + - Change build-dependency of unifont-bin to unifont (>= 1:5.1.20080820), + it's the new package containing unifont.hex and that version to avoid + licensing problems (Closes: #496061) + - Remove Jason Thomas from Uploaders with his permission. + * Preserve arguments in update-grub2 stub. (Closes: #496610) + + [ Updated translations ] + * Japanese (ja.po) by Hideki Yamane (Closes: #493347) + + [ Robert Millan ] + * Move a few files to grub-common and remove them from the arch- + specific packages. + * patches/02_old_linux_version_comparison.diff: Replace with ... + * patches/901_dpkg_version_comparison.diff: ... this. + Use dpkg --compare-versions in update-grub. (Closes: #494158) + * patches/03_disable_floppies.diff: Free .drive struct member when skipping + floppy drives. (Closes: #496040) + * patches/902_boot_blocklist_hack.diff: Support separate /boot when using + blocklists. (Closes: #496820, #489287, #494589) + + -- Robert Millan Sun, 31 Aug 2008 18:40:09 +0200 + +grub2 (1.96+20080730-1) experimental; urgency=low + + * New SVN snapshot. + - patches/00_fix_overflow.diff: Remove (merged). + - patches/00_uuid_boot.diff: Remove (merged). + - patches/00_raid_duped_disks.diff: Remove (merged). + - patches/00_xfs.diff: Remove (merged). + - patches/00_strengthen_apple_partmap_check.diff: Remove (merged). + - patches/00_skip_dev_dm.diff: Remove (merged). + + * patches/901_linux_coreboot.diff: Implements Linux load on Coreboot + (patch from Coresystems). + + * grub-linuxbios -> grub-coreboot rename again. + + -- Robert Millan Wed, 30 Jul 2008 22:12:07 +0200 + +grub2 (1.96+20080724-4) unstable; urgency=high + + * patches/00_fix_overflow.diff: fix overflow with a big grub.cfg. + (Closes: #473543) + + -- Felix Zielcke Tue, 29 Jul 2008 17:10:59 +0200 + +grub2 (1.96+20080724-3) unstable; urgency=low + + [ Felix Zielcke ] + * changed dependency for debconf to also support debconf-2.0. (Closes: #492543) + * patches/00_xfs.diff: Fix "out of partition" error with XFS. + (Closes: #436943) + + [ Robert Millan ] + * patches/00_raid_duped_disks.diff: Do not abort when two RAID disks with + the same number are found. (Closes: #492656) + * patches/00_strengthen_apple_partmap_check.diff: Be more strict when probing + for Apple partition maps (this prevents false positives on i386-pc + installs). (Closes: #475718) + + -- Robert Millan Tue, 29 Jul 2008 00:48:01 +0200 + +grub2 (1.96+20080724-2) unstable; urgency=high + + [ Felix Zielcke ] + * fixed lintian override for kernel.elf + * debian/rules: changed cvs targets to use svn + + [ Robert Millan ] + * patches/00_skip_dev_dm.diff: Skip /dev/dm-[0-9] devices also (implicitly) + for RAID. (Closes: #491977) + * patches/00_uuid_boot.diff: Fix cross-disk installs by using UUIDs. + (Closes: #492204) + + -- Robert Millan Sat, 26 Jul 2008 01:06:07 +0200 + +grub2 (1.96+20080724-1) unstable; urgency=high + + * New SVN snapshot. + - Support for ext4dev extents. + - patches/00_speed_up_font_load.diff: Remove (merged). + + [ Felix Zielcke ] + * upgrade-from-grub-legacy now calls update-grub if grub.cfg doestn't exist + and prints a big warning if it failed. + * Update Standards version to 3.8.0. No changes need. + * Added Build-Dep for po-debconf and a lintian override, to make it happy. + + [ Updated translations ] + * Swedish (sv.po) by Martin Ågren (Closes: #492056) + + [ Robert Millan ] + * Revert r844. grub-coreboot is stuck on NEW, and it was too early + for branching. + + -- Robert Millan Thu, 24 Jul 2008 13:27:53 +0200 + +grub2 (1.96+20080717-1) experimental; urgency=low + + * New SVN snapshot. + - Provides LZMA support (not yet used in the package). + - Fix grub-mkrescue manpage generation. (Closes: #489440) + + * Rename grub-linuxbios to grub-coreboot (and leave a dummy grub-linuxbios + package to handle upgrades). + + [ Updated translations ] + * Spanish (es.po) by Maria Germana Oliveira Blazetic (Closes: #489877) + * Portuguese (pt.po) by Ricardo Silva (Closes: #489807) + + -- Robert Millan Sat, 12 Jul 2008 17:47:09 +0200 + +grub2 (1.96+20080704-2) unstable; urgency=high + + * patches/02_old_linux_version_comparison.diff: Set interpreter to /bin/bash. + (Closes: #489426, #489446) + + -- Robert Millan Mon, 7 Jul 2008 15:17:58 +0200 + +grub2 (1.96+20080704-1) unstable; urgency=high + + * New SVN snapshot. + * default/grub: Add commented example to disable graphical terminal. + * Use substvars to support linking with liblzo1. + * Bring 03_disable_floppies.diff to pre-r805 state. (Closes: #488375) + * patches/02_old_linux_version_comparison.diff: New patch. Steal version + comparison code from GRUB Legacy's update-grub. (Closes: #464086, #489133) + * patches/00_speed_up_font_load.diff: New patch. Generate font files with + only the needed characters. (Closes: #476479, #477083) + + -- Robert Millan Fri, 4 Jul 2008 21:39:07 +0200 + +grub2 (1.96+20080626-1) unstable; urgency=high + + * New CVS snapshot. + - Avoids passing UUID to Linux when not using initrd. (Closes: #484228) + - patches/04_uuids_and_abstraction_dont_play_along_nicely.diff: Resync. + + -- Robert Millan Thu, 26 Jun 2008 16:43:48 +0200 + +grub2 (1.96+20080621-1) unstable; urgency=high + + * Urgency set to "high" because of #482688. + * New CVS snapshot. + - Fix module load hook in prepare_grub_to_access_device(). + (Closes: #486804) + - Call prepare_grub_to_access_device() before accessing devices, never + afterwards. (Closes: #487198) + * grub.d/05_debian_theme: Prefer /boot/grub over /usr for image + loading, since chances are it's less LVMed. + + -- Robert Millan Sat, 21 Jun 2008 15:52:48 +0200 + +grub2 (1.96+20080617-1) unstable; urgency=low + + * New CVS snapshot. + - Supports IDA block devices. (Closes: #483858) + - Fixes some problems in ext2/ext3. (Closes: #485068, #485065) + - Uses EUID instead of UID in update-grub. (Closes: #486043, #486039, + #486040, #486041). + - Fixes incomplete I2O device support. Thanks Sven Mueller. + (Closes: #486505) + - Fixes recent regressions in fs/ext2.c. (Closes: #485279) + - Only use UUIDs when requested device is not the same as the one + providing /boot. (Closes: #486119) + - patches/02_libgcc_powerpc_hack.diff: Remove. Probably not needed + anymore. + - patches/04_uuids_and_abstraction_dont_play_along_nicely.diff: Update. + * patches/06_olpc_prefix_hack.diff: Hardcode prefix to (sd,1) on OLPC. + * Refurbish 03_disable_floppy_support_in_util_biosdisk.diff into + 03_disable_floppies.diff. + + -- Robert Millan Tue, 17 Jun 2008 01:07:52 +0200 + +grub2 (1.96+20080601-2) unstable; urgency=low + + * 04_run_grub_mkdevicemap_when_grub_probe_fails.diff: Remove. Argueably + makes grub-probe unreliable and is quite annoying. + * 04_uuids_and_abstraction_dont_play_along_nicely.diff: New patch. Disable + UUID parameter to Linux when LVM or dmRAID is in use. (Closes: #484228) + This is a workaround for bug #484297 in udev. + + -- Robert Millan Tue, 3 Jun 2008 16:29:53 +0200 + +grub2 (1.96+20080601-1) unstable; urgency=low + + * New CVS snapshot. + - patches/06_backward_compat_in_uuid_support.diff: Merged. + - Fixes NULL pointer dereference in biosdisk.c. (Closes: #483895, #483900) + - Extends UUID support for XFS and ReiserFS. + + -- Robert Millan Sun, 1 Jun 2008 15:44:08 +0200 + +grub2 (1.96+20080531-1) unstable; urgency=low + + * New CVS snapshot. + - Work around BIOS bug affecting keyboard on macbooks. (Closes: #482860) + - Adjust grub.d/05_debian_theme to use the new UUID-compatible API. + - default/grub: Add commented GRUB_DISABLE_LINUX_UUID variable. + - patches/06_backward_compat_in_uuid_support.diff: New. Make update-grub + generate code that is compatible with older GRUB installs. + - util/biosdisk.c no longer complains about duplicated device.map entries. + (Closes: #481236) + + [ Updated translations ] + * Galician (gl.po) by Jacobo Tarrio (Closes: #480977) + + -- Robert Millan Sat, 31 May 2008 00:02:54 +0200 + +grub2 (1.96+20080512-1) unstable; urgency=low + + * New CVS snapshot. + - Adds support for default-only Linux cmdline options. (Closes: #460843) + - Supports Xen virtual block devices. (Closes: #456777) + - Supports Virtio block devices. (Closes: #479056) + - Supports CCISS block devices. (Closes: #479735) + - Fixes handling of more LVM abnormal conditions. (Closes: #474343, + #474931, #477175) + + * Switch to liblzo2 now that it's GPLv3-compatible. (Closes: #466375) + * grub-pc.postinst: Escape \ and / in cmdline sed invokation. + (Closes: #479279) + + [ Updated translations ] + * Italian (it.po) by Luca Monducci (Closes: #480740) + + -- Robert Millan Mon, 12 May 2008 17:46:38 +0200 + +grub2 (1.96+20080429-1) unstable; urgency=high + + * New CVS snapshot. + - Includes sample grub.cfg file; we use it for grub-rescue-pc. + (Closes: #478324) + * grub-common: Upgrade Replaces to << 1.96+20080426-3. (Closes: #478224, + #478353, #478144) + + [ Updated translations ] + * French (fr.po) by Christian Perrier (Closes: #471291) + + -- Robert Millan Tue, 29 Apr 2008 13:27:52 +0200 + +grub2 (1.96+20080426-1) unstable; urgency=high + + * New CVS snapshot. + - Fixes syntax error when setting GRUB_PRELOAD_MODULES. (Closes: #476517) + * Move os-prober to Suggests, to avoid trouble with #476184. + (Closes: #476684) + * patches/04_run_grub_mkdevicemap_when_grub_probe_fails.diff: New patch, + does what its name says. (Closes: #467127) + - Also move grub-mkdevicemap from grub-pc to grub-common, so that GRUB + Legacy can use it. + + [ Updated translations ] + * Basque (eu.po) by Piarres Beobide (Closes: #476708) + + -- Robert Millan Sat, 26 Apr 2008 20:06:55 +0200 + +grub2 (1.96+20080413-1) unstable; urgency=high + + * New CVS snapshot. + - Provides 30_os-prober update-grub add-on. Thanks Fabian Greffrath. + (Closes: #461442) + - Improves robustness when handling LVM. + (Closes: #474931, #474343) + * patches/03_disable_floppy_support_in_util_biosdisk.diff: New. Does + what its name says. (Closes: #475177) + + -- Robert Millan Sun, 13 Apr 2008 13:53:28 +0200 + +grub2 (1.96+20080408-1) unstable; urgency=low + + * New CVS snapshot. + - grub-probe skips non-existant devices when processing device.map. + (Closes: #473209) + * control: Fix syntax error. + + [ Updated translations ] + * Finnish (fi.po) by Esko Arajärvi (Closes: #468641) + + -- Robert Millan Tue, 8 Apr 2008 15:45:25 +0200 + +grub2 (1.96+20080228-1) unstable; urgency=low + + * New CVS snapshot. + * Split grub-probe into grub-common package. Make all flavours depend on it. + (Closes: #241972) + * Suggest multiboot-doc. + * patches/01_grub_legacy_0_based_partitions.diff: New patch. Add a hack that + tells grub-probe you want 0-based partition count + (GRUB_LEGACY_0_BASED_PARTITIONS variable) + * Stop depending on lsb-release (too heavy! we don't need python in base). + Instead of assuming it's there, try calling it and otherwise just echo + Debian. + + -- Robert Millan Thu, 28 Feb 2008 16:43:40 +0100 + +grub2 (1.96+20080219-3) unstable; urgency=low + + * default/grub: Use lsb_release to support Debian derivatives. + (Closes: #466561) + * grub.d/05_debian_theme: Only setup background image when a reader for it + is present in /boot/grub. (Closes: #467111) + + [ Updated translations ] + * Russian (ru.po) by Yuri Kozlov (Closes: #467181) + + -- Robert Millan Sun, 24 Feb 2008 15:39:50 +0100 + +grub2 (1.96+20080219-2) unstable; urgency=high + + * grub-pc.postinst: Create /boot/grub if it doesn't exist. + + -- Robert Millan Wed, 20 Feb 2008 07:15:14 +0100 + +grub2 (1.96+20080219-1) unstable; urgency=high + + * New CVS snapshot. + - Improves GPT support, allowing it to work without blocklists. + + -- Robert Millan Tue, 19 Feb 2008 15:05:10 +0100 + +grub2 (1.96+20080216-1) unstable; urgency=high + + * New CVS snapshot. + - Fixes offset calculation issue when installing on GPT (urgency set + to high because of this). + * Fix Vcs-Browser tag. Thanks James. (Closes: #465697) + * Only process grub-pc/linux_cmdline if /boot/grub/menu.lst exists. + (Closes: #465708) + + [ Updated translations ] + * French (fr.po) by Christian Perrier (Closes: #465706) + + -- Robert Millan Sat, 16 Feb 2008 23:30:55 +0100 + +grub2 (1.96+20080213-1) unstable; urgency=low + + * New CVS snapshot. + - Failure to read one device in a RAID-1 array no longer causes boot + to fail (so long as there's a member that works). (Closes: #426341) + * script: For /proc/mounts, only report lines that start with /dev/. + * Add new upgrade-from-grub-legacy script for the user to complete the upgrade + process from GRUB Legacy, and advertise it prominently in menu.lst. + (Closes: #464912) + * Add a hack to support gfxterm / background_image on systems where /usr + isn't accessible. (Closes: #464911, #463144) + - grub-pc.postinst + - grub.d/05_debian_theme + * Fix a pair of spelling mistakes in debconf. (Closes: #465296) + * Migrate kopt from menu.lst. (Closes: #461164, #464918) + + [ Updated translations ] + * Portuguese (pt.po) by Ricardo Silva (Closes: #465137) + * German (de.po) by Helge Kreutzmann (Closes: #465295) + + -- Robert Millan Wed, 13 Feb 2008 16:37:13 +0100 + +grub2 (1.96+20080210-1) unstable; urgency=high + + * New CVS snapshot. + - Errors that cause GRUB to enter rescue mode are displayed now. + (Closes: #425149) + - Build LVM/RAID modules into a few commands that were missing them + (notably, grub-setup). (Closes: #465033) + * Fix license violation (incompatibility between GRUB and LZO2). + (Closes: #465056) + - Urgency set to high. + - control: Move liblzo2-dev from Build-Depends to Build-Conflicts + (leaving liblzo-dev as the only option). + + -- Robert Millan Sun, 10 Feb 2008 17:09:15 +0100 + +grub2 (1.96+20080209-1) unstable; urgency=low + + * New CVS snapshot. + - Fix a root device setting issue in grub-setup. (Closes: #463391) + - Fix partmap detection under LVM/RAID. + - Add scripting commands that would allow user to implement hiddenmenu-like + functionality (http://grub.enbug.org/Hiddenmenu). + - Provide manpages for grub-setup, grub-emu, grub-mkimage and others. + (Closes: #333516, #372890) + * Fix a pair of spelling errors in debconf templates. Thanks Christian + Perrier. (Closes: #464133) + * Run debconf-updatepo. (Closes: #463918) + * Lower base-files versioned dependency to >= 4.0.1~bpo40+1. + + -- Robert Millan Sat, 9 Feb 2008 13:43:49 +0100 + +grub2 (1.96+20080203-1) unstable; urgency=low + + * New CVS snapshot (and release, but we skipped that ;-)) + - patches/01_regparm.diff: Delete. + - Improved XFS support. + - util/grub.d/00_header.in: Add runtime error detection (for gfxterm). + - Fixes problem when chainloading to Vista. + * Fix po-debconf errors. Thanks Thomas Huriaux. (Closes: #402972) + * grub.d/05_debian_theme: + - Add runtime error detection. + - Detect/Enable PNG background when it is present. + * control (grub-ieee1275): Remove versioned dependency on powerpc-ibm-utils. + + -- Robert Millan Sun, 3 Feb 2008 19:31:23 +0100 + +grub2 (1.95+20080201-1) unstable; urgency=low + + * New CVS snapshot. + * presubj: Improve notice. + * patches/01_regparm.diff: Fix CPU context corruption affecting fs/xfs.c. + (Closes: #463081, #419766, #462159) + * patches/02_libgcc_powerpc_hack.diff: Fix FTBFS on powerpc. (Closes: #457491) + * patches/disable_xfs.diff: Actually remove this time... + + -- Robert Millan Fri, 1 Feb 2008 17:06:00 +0100 + +grub2 (1.95+20080128-1) unstable; urgency=low + + * New CVS snapshot. + - Fixes bogus CLAIM problems on Apple firmware. (Closes: #449135, #422729) + - grub-probe performs sanity checks to make sure our filesystem drivers + are usable. (Closes: #462449) + - patches/disable_ata.diff: Remove. ATA module isn't auto-loaded in + rescue floppies now. + - patches/disable_xfs.diff: Remove. See above (about grub-probe). + * Bring back grub-emu; it can help a lot with debugging feedback. + - control + - rules + + -- Robert Millan Mon, 28 Jan 2008 00:01:11 +0100 + +grub2 (1.95+20080116-2) unstable; urgency=low + + * grub.d/05_debian_theme: Enable swirlish beauty. + * rules: Obtain debian/legacy/update-grub dynamicaly from GRUB Legacy svn. + + -- Robert Millan Sat, 19 Jan 2008 13:16:18 +0100 + +grub2 (1.95+20080116-1) unstable; urgency=low + + * New CVS snapshot. + - update-grub ignores stale *.dpkg-* files. (Closes: #422708, #424223) + - LVM/RAID now working properly (except when it affects /boot). + (Closes: #425666) + - Fixes flickery in timeout message. (Closes: #437275) + * grub-pc.postinst: Use `--no-floppy' whenever possible. Die, floppies, + die! + * Resync with latest version of GRUB Legacy's update-grub. This time, + using the $LET_US_TRY_GRUB_2 hack to reuse the same script both for + addition of core.img and its removal. + * grub-*.install: Add update-grub2 stub. Packages providing /etc/grub.d/ + scripts should invoke update-grub2 in both postinst and postrm (whenever + it is found, of course). + * control: Reorganize a bit, including a complete rewrite of the + package descriptions. + * control (grub-ieee1275): Enable for i386/amd64. + + -- Robert Millan Wed, 16 Jan 2008 15:00:54 +0100 + +grub2 (1.95+20080107-1) unstable; urgency=low + + * New CVS snapshot. + - Supports ReiserFS. (Closes: #430742) + - patches/disable_ata.diff: Resync. + + -- Robert Millan Mon, 7 Jan 2008 12:46:39 +0100 + +grub2 (1.95+20080105-2) unstable; urgency=low + + * grub-pc.postinst: Fix covered assumption that menu.lst exists. + (Closes: #459247) + * copyright: Fix copyright/license reference. + + -- Robert Millan Sun, 6 Jan 2008 18:02:28 +0100 + +grub2 (1.95+20080105-1) unstable; urgency=low + + * New CVS snapshot. + - Fixes install on non-devfs systems with devfs-style paths (ouch). + (Closes: #450709). + - Fixes boot of "Linux" zImages (including memtest86+). (Closes: #436113). + - Corrects usage message in grub-setup. (Closes: #458600). + - patches/menu_color.diff: Remove. Made obsolete by `menu_color_normal' + and `menu_color_highlight' variables. Add/install grub.d/05_debian_theme + to make use of them. + * Reestructure grub-pc.postinst. Notably: + - Do not touch menu.lst unless user has confirmed it (via debconf). + (Closes: #459247) + - When we do, keep a backup in /boot/grub/menu.lst_backup_by_grub2_postinst. + + -- Robert Millan Sat, 5 Jan 2008 17:55:37 +0100 + +grub2 (1.95+20080101-1) unstable; urgency=low + + * New CVS snapshot. + - patches/disable_xfs.diff: Rewrite in a way that won't collide with + upstream changes so often. + - unifont.hex now processed by upstream. + - rules: Disable build of unifont.pff. + - *.install: Remove build/unifont.pff line. + - patches/menu_color.diff: Change menu color to our traditional blue theme. + * Support new dpkg fields (Homepage, Vcs-Svn, Vcs-Browser). + * patches/disable_ata.diff: Prevent ATA module from being built on i386-pc. + + -- Robert Millan Tue, 1 Jan 2008 19:45:30 +0100 + +grub2 (1.95+20071101-1) unstable; urgency=low + + * New CVS snapshot. + - patches/linuxbios.diff: Remove (supported in upstream now). + + -- Robert Millan Thu, 1 Nov 2007 13:18:51 +0100 + +grub2 (1.95+20071004-2) unstable; urgency=low + + * Rename debian/grub-of.* to debian/grub-ieee1275.*. + * Add debian/grub-linuxbios.{postinst,dirs,install}. + * rules: Fix/Overrride lintian warnings (unstripped-binary-or-object). + * Remove grub-linuxbios.postinst. + + -- Robert Millan Wed, 10 Oct 2007 23:56:35 +0200 + +grub2 (1.95+20071004-1) unstable; urgency=low + + * New CVS snapshot. + * Add grub-linuxbios package. + - patches/linuxbios.diff + - control + - rules + * Rename grub-of to grub-ieee1275 to match with upstream conventions. + - control + - rules + + -- Robert Millan Thu, 4 Oct 2007 14:42:30 +0200 + +grub2 (1.95+20070829-1) unstable; urgency=low + + * New CVS snapshot. + - Includes fix for parallel builds. + * rules: Append -j flag to $(MAKE) to take advantage of >1 processors. + * Add reference to /usr/share/common-licenses. + - debian/copyright + - debian/control (all packages): Add base-files (>= 4.0.1) dependency. + + -- Robert Millan Sat, 1 Sep 2007 19:00:22 +0200 + +grub2 (1.95+20070828-2) unstable; urgency=low + + * control (grub-of): Make depends on powerpc-ibm-utils versioned as + >= 1.0.6 (older versions don't have -a flag). + + -- Robert Millan Tue, 28 Aug 2007 23:32:32 +0200 + +grub2 (1.95+20070828-1) unstable; urgency=low + + * New CVS snapshot. + - Adds ntfs support. + - Fixes a pair of issues indirectly breaking grub-probe on powerpc. + (Closes: #431488) + - patches/disable_xfs.diff: Resync. + - copyright: License upgraded to GPLv3. + * control (grub-of Depends): Add powerpc-utils (for nvsetenv) and bc. + + -- Robert Millan Tue, 28 Aug 2007 21:24:14 +0200 + +grub2 (1.95+20070626-1) unstable; urgency=low + + * New CVS snapshot. + - More fixes to cope with unreadable /. (Closes: #427289) + - update-grub supports multiple terminals. + * control (Build-Depends): Add genisoimage. + * patches/partmap_fallback.diff: Remove. It didn't archieve anything as + it also needs support for proper identification of raid / lvm (this is + being worked on). + * patches/disable_xfs.diff: Disable xfs in grub-probe. + * grub-rescue-pc.README.Debian: New. Explain how to use the rescue + images. + + -- Robert Millan Tue, 26 Jun 2007 08:39:14 +0200 + +grub2 (1.95+20070614-1) unstable; urgency=low + + * New CVS snapshot. + - update-grub is tollerant to unreadable / (as long as /boot is + accessible). (Closes: #427289) + * grub-pc.postinst: Generate new grub.cfg when menu.lst exists. + * New package grub-rescue-pc. + - control: Add it. + - README.Debian.in: Remove obsolete documentation. + - rules: Build rescue images using grub-mkrescue. + - grub-rescue-pc.dirs: Prepare their directory. + - grub-rescue-pc.install: Install them. + * legacy/update-grub: Fix core.img detection on separate /boot. + + -- Robert Millan Thu, 14 Jun 2007 08:17:21 +0200 + +grub2 (1.95+20070604-1) unstable; urgency=low + + * New CVS snapshot. + - patches/grub_probe_for_everyone.diff: Remove (merged). + - update-grub exports user-defined GRUB_CMDLINE_LINUX. (Closes: #425453) + - Fix those nasty powerpc bugs. (Closes: #422729) + + -- Robert Millan Mon, 4 Jun 2007 21:30:55 +0200 + +grub2 (1.95+20070520-1) unstable; urgency=low + + * New CVS snapshot. + - LVM / RAID fixes. (Closes: #423648, #381150) + - Fix memory management bug. (Closes: #423409) + - patches/efi.diff: Remove (merged). + - patches/grub_probe_for_everyone.diff: Use the new paths for + util/grub-probe.c, util/biosdisk.c, util/getroot.c. Enable + grub-mkdevicemap. (Closes: #424985) + * legacy/update-grub: Get rid of all grub-set-default calls. (Closes: #425054) + * grub-{pc,efi,of}.postinst: Only run update-grub if grub.cfg already exists. + * grub-pc.postinst: Only run GRUB Legacy compat stuff if menu.lst is found. + * patches/partmap_fallback.diff: New. Implement fallback "pc gpt" for partmap + detection failures. (Closes: #423022) + * control: Update XS-Vcs-* fields. Thanks Sam Morris . + (Closes: #425146) + * grub-{pc,efi,of}.{dirs,postinst}: Move unifont.pff to /usr/share/grub. + + -- Robert Millan Sun, 20 May 2007 11:13:03 +0200 + +grub2 (1.95+20070515-1) unstable; urgency=low + + * New CVS snapshot. + - Fix assumptions about /, /boot and /boot/grub being the same device. + (Closes: #423268, #422459) + - Proper sorting of Linux images. (Closes: #422580) + - update-grub lets /etc/default/grub override its variables now. + (Closes: #423649) + - update-grub mentions /etc/default/grub in the grub.cfg header. + (Closes: #423651) + - update-grub sets 800x600x16 as the default gfxmode. (Closes: #422794) + - update-grub runs grub-mkdevicemap before attempting to use grub-probe + (part of #423217) + + [ Otavio Salvador ] + * Add support to DEB_BUILD_OPTIONS=noopt. Thanks to Sam Morris + for the patch. (Closes: #423005) + * Add Robert Millan as uploader. + * Change build-dependency from liblzo-dev to liblzo2-dev. (Closes: #423358) + + [ Robert Millan ] + * grub-pc.postinst: + - Remove /boot/grub/device.map before running grub-install. + (Closes: #422851) + - Always run update-grub after grub-install. (part of #423217) + - Use grub-mkdevicemap instead of removing device.map, since update-grub + needs it but grub-install is not run unconditionaly. + - Redirect grub-install invocation to /dev/null, since it can mislead + users into thinking that MBR was overwritten. (part of #423217) + * default/grub: Stop exporting the variables (update-grub does that now). + * Misc EFI fixes, including new grub-install. + - patches/efi.diff: New. + - patches/grub_probe_for_everyone.diff: Move some bits to efi.diff. + - grub-efi.install: Stop installing dummy grub-install. + - grub-install: Remove. + * grub-pc.postinst: Avoid generating core.img when menu.lst is not present, + to avoid duplicated work (this is specialy important for d-i). (part of + #423217). + * See multiple references above. (Closes: #423217) + * grub-{pc,efi,of}.{dirs,install}: Install presubj in the right directory + to make it work again (oops). + * Add reportbug script to gather debugging information. (Closes: #423218) + - script: New. + - grub-{pc,efi,of}.install: Install it. + * Install the reportbug scripts for grub2 too, since users might still use + it for bugfiling. + - grub2.dirs + - grub2.install + * Fix some lintian warnings. + - control (grub2): Depend on debconf. + - README.Debian.in: Fix mispell. + - grub2.templates: Remove extra dot. + + -- Robert Millan Tue, 15 May 2007 22:08:53 +0200 + +grub2 (1.95+20070507-1) unstable; urgency=low + + [ Robert Millan ] + * New CVS snapshot. + - patches/build_neq_src.diff: Remove (merged). + * Fix debhelper files to ensure each package gets the right thing. + * Enable gfxterm/unifont support. + * On grub-pc, if there's no core.img setup, create one (but do not + risk writing to MBR). + * On grub-pc, if menu.lst is found, regenerate it to include our + core.img. + + [ Otavio Salvador ] + * Move debian/update-grub to debian/legacy/update-grub otherwise the + source gets messy. + + -- Otavio Salvador Mon, 07 May 2007 18:48:14 -0300 + +grub2 (1.95+20070505.1-3) unstable; urgency=low + + * Split postinst into grub2.postinst (with the transition warning) and + postinst.in, with update-grub invocation for grub-{pc,efi,of}. + - postinst.in + - grub2.postinst + - rules + + -- Robert Millan Sun, 6 May 2007 01:20:04 +0200 + +grub2 (1.95+20070505.1-2) unstable; urgency=low + + * Add EFI build of GRUB. + - control: Restructure to provide 3 packages: grub-pc (x86), + grub-efi (x86) and grub-of (powerpc). + - rules: Handle a separate build for each package. + - patches/build_neq_src.diff: Fix builddir == srcdir assumptions. + - patches/grub_probe_for_everyone.diff: New (superceds + powerpc_probe.diff). Enable grub-probe on powerpc and i386-efi. + - grub-install: Dummy informational grub-install for EFI. + - grub-efi.install: Installs it. + + -- Robert Millan Sun, 6 May 2007 00:23:56 +0200 + +grub2 (1.95+20070505.1-1) unstable; urgency=low + + * New CVS snapshot. + * patches/powerpc_probe.diff: Add partmap/gpt.c to grub-probe. + * control (Architecture): Temporarily disable powerpc. Sorry, but runtime + is currently broken and we don't have the hardware to debug it. Will be + re-enabled in next upload. + + -- Robert Millan Sat, 5 May 2007 21:52:49 +0200 + +grub2 (1.95+20070505-1) unstable; urgency=low + + * New CVS snapshot. + - Improved grub.cfg parser. (Closes: #381215) + - patches/fix-grub-install.diff: Remove (merged). + - control (Build-Depends): Remove libncurses5-dev (no longer needed). + - provides update-grub2. (Closes: #419151) + - Supports GPT in PC/BIOS systems. (Closes: #409073) + * control (Build-Depends): Add gcc-multilib to fix FTBFS. + * control (Description): Make it less scary, and more informative. + * postinst: Run update-grub to ensure the latest improvements always are + applied. + * patches/powerpc_probe.diff: Attempt at making grub-probe build/install + on powerpc (and hopefuly update-grub). + + -- Robert Millan Sat, 5 May 2007 01:49:07 +0200 + +grub2 (1.95-5) unstable; urgency=low + + * Fix FTBFS on kFreeBSD. Thanks to Aurelien Jarno + by providing the patch. Closes: #416408 + + -- Otavio Salvador Fri, 30 Mar 2007 19:20:48 -0300 + +grub2 (1.95-4) unstable; urgency=low + + * Fix powerpc grub-install binary path. Closes: #402838 + + -- Otavio Salvador Thu, 22 Mar 2007 23:45:56 -0300 + +grub2 (1.95-3) unstable; urgency=low + + [ Christian Perrier ] + * Switch to po-debconf for debconf templates. Closes: #402972 + * Depend on ${misc:Depends} and not "debconf" to allow cdebconf to be used + * Debconf translations: + - French + - Czech. Closes: #413327 + - Galician. Closes: #413323 + - Swedish. Closes: #413325 + - Portuguese. Closes: #413332 + - German. Closes: #413365 + - Tamil. Closes: #413478 + - Russian. Closes: #413542 + - Italian. Closes: #413904 + - Romanian. Closes: #414443 + + -- Otavio Salvador Tue, 20 Mar 2007 23:46:38 -0300 + +grub2 (1.95-2) unstable; urgency=low + + [ Robert Millan ] + * update-grub: Fix for Xen hypervisor entries, thanks Aaron Schrab. + (Closes: #394706) + * Transition to new numbering scheme for partitions. (Closes: #395019) + - update-grub: Don't substract 1 when converting partition device names to + grub drives. + - Add debconf warning explaining the situation. + * Rewrite Architecture line back to hardcoded list :(. (Closes: #398060) + + -- Otavio Salvador Mon, 11 Dec 2006 05:08:41 -0200 + +grub2 (1.95-1) unstable; urgency=low + + * New upstream release. + - patches/03_revert_partition_numbering.diff: Delete (obsoleted). + + -- Robert Millan Sat, 14 Oct 2006 21:19:21 +0200 + +grub2 (1.94+20061003-1) unstable; urgency=high + + * New CVS snapshot. + + [ Otavio Salvador ] + * Change debhelper compatibility mode to 5: + - debian/compat: setted to 5; + * control (Build-Depends): Add lib32ncurses5-dev for ppc64. + Closes: #389873 + * Set urgency=high since it's experimental stuff and tagged likewise. It + also solved a serious bug on PowerPC that leave users with a black + screen. + + [ Robert Millan ] + * control (Depends): Add powerpc-ibm-utils for powerpc/ppc64. + (Closes: #372186) + + -- Otavio Salvador Tue, 3 Oct 2006 16:49:32 -0300 + +grub2 (1.94+20060926-1) unstable; urgency=high + + * New CVS snapshot. + - Command-line editting fix (Closes: #381214). + - Fixes runtime breakage on amd64 (not in BTS). + - Delete a few patches (merged). + + [ Robert Millan ] + * Set urgency=high. Might seem like a rush, but it can't possibly be worse than + 1.94-5 (broken on systems that use udev, broken on amd64...). + * Pure ppc64 support. + - control (Architecture): Add any-ppc64. + - control (Build-Depends): Add libc6-dev-powerpc [ppc64]. + * rules: Remove moddep.lst install command (no longer needed). + * patches/03_revert_partition_numbering.diff: New. Revert a commit that + broke grub-probefs. + * Add bug template to encourage sending upstream stuff directly to + upstream. + - presubj: New. + + [ Otavio Salvador ] + * Add XS-X-Vcs-Svn on control file and point it to our current svn + repository. + * Add cvs-snapshot to rules. + + -- Otavio Salvador Tue, 26 Sep 2006 16:14:36 -0300 + +grub2 (1.94-6) unstable; urgency=low + + [ Robert Millan ] + * update-grub: Set interpreter to /bin/bash to cope with non-POSIX + extensions. (mentioned in #361929) + * patches/03_avoid_recursing_into_dot_static.diff: New. Avoid recursing into + dotdirs (e.g. ".static"). + * patches/04_mkdevicemap_dont_assume_floppies.diff: New. Don't assume + /dev/fd0 exists when generating device.map. + + -- Otavio Salvador Thu, 14 Sep 2006 16:07:30 -0300 + +grub2 (1.94-5) unstable; urgency=low + + [ Robert Millan ] + * control (Build-Depends): s/any-amd64/amd64 kfreebsd-amd64/g (this seems to + confuse buildds). + * 02_not_remove_menu_lst.patch: New patch. Skip menu.lst removal in + grub-install. (Closes: #372934) + + -- Otavio Salvador Sun, 20 Aug 2006 12:02:13 -0300 + +grub2 (1.94-4) unstable; urgency=low + + [ Otavio Salvador ] + * 01_fix_amd64_building.patch: dropped since it now supports amd64 + native building. + * Remove convert_kernel26 usage since it's not necessary anymore and due + initramfs-tools changes it's bug too. + + [ Robert Millan ] + * Fork update-grub from grub legacy, and tweak a few commands in output to + make it work for grub2. + * Update README.Debian.in with more recent (and easier) install instructions. + * Add grub to Conflicts/Replaces. Too many commands with the same name, + even if they don't use the same path yet (but will likely do in the + future, see #361929). + * Get rid of control.in, which I introduced in 0.6+20040805-1 and turned out + to be an endless source of problems (and forbidden by policy as well). + * Fix FTBFS on amd64. Really closes: #372548. + + -- Otavio Salvador Fri, 18 Aug 2006 15:38:25 -0300 + +grub2 (1.94-3) unstable; urgency=low + + * Fix FTBFS in amd64. Closes: 372548 + + -- Otavio Salvador Sat, 10 Jun 2006 19:57:01 -0300 + +grub2 (1.94-2) unstable; urgency=low + + * Update grub images paths in README.Debian + * 01_fix_grub-install.patch: add to fix a problem with PowerPC + installation. Refs: #371069 + * Fix FTBFS in amd64. Closes: #370803 + + -- Otavio Salvador Fri, 9 Jun 2006 09:29:40 -0300 + +grub2 (1.94-1) unstable; urgency=low + + * New upstream release. + - Fix powerpc building. Closes: #370259 + - 01_fix_grub-install.patch: merged upstream. + - Moved modules to /usr/lib/grub since they are architecture + dependent. + * Leave CDBS set debhelper compatibility level. + * Allow amd64 build to happen. Closes: #364956 + * Enforce building in 32bits while running in x86_64 machines. + * Update Standards version to 3.7.2. No changes need. + + -- Otavio Salvador Mon, 5 Jun 2006 12:49:09 -0300 + +grub2 (1.93-1) unstable; urgency=low + + * New upstream release. + - Added support to PowerPC. Closes: #357853 + - 01_fix_grub-install.patch: rediff. + * Update Standards version to 3.6.2. No changes need. + * Start to use new dpkg architecture definition. Closes: #360134 + + -- Otavio Salvador Sat, 1 Apr 2006 10:07:17 -0300 + +grub2 (1.92-2) unstable; urgency=low + + * Add bison on build-depends field. Closes: #346178 + * Add more fixes in 01_fix_grub-install.patch. Closes: #346177 + + -- Otavio Salvador Fri, 6 Jan 2006 09:48:08 -0200 + +grub2 (1.92-1) unstable; urgency=low + + * New upstream release. + - Add support for GPT partition table format. + - Add a new command "play" to play an audio file on PC. + - Add support for Linux/ADFS partition table format. + - Add support for BASH-like scripting. + - Add support for Apple HFS+ filesystems. + * 01_fix_grub-install.patch: Added. Fix grub-install to use + /bin/grub-mkimage instead of /sbin/grub-mkimage. Closes: #338824 + * Do not use CDBS tarball mode anymore. Closes: #344272 + + -- Otavio Salvador Thu, 5 Jan 2006 15:20:40 -0200 + +grub2 (1.91-0) unstable; urgency=low + + * New upstream release. Closes: #331211 + * debian/watch: added. + * debian/control.in, debian/control: Add libncurses5-dev in + Build-Depends. Closes: #304638 + * Remove Robert Millan as uploader; + * Add myself as uploader; + + -- Otavio Salvador Sat, 12 Nov 2005 16:35:18 -0200 + +grub2 (0.6+20050203-2) unstable; urgency=low + + * Disable for powerpc. Reportedly it fails to boot. + + -- Robert Millan Fri, 4 Feb 2005 01:52:09 +0100 + +grub2 (0.6+20050203-1) unstable; urgency=low + + * New upstream snapshot. + * Install moddep.lst properly in a cpu-independant way. (Closes: #264115) + * Use cdbs debian/control autogeneration. + - Set DEB_AUTO_UPDATE_DEBIAN_CONTROL = yes. + - Move control to control.in. + - Add a @cdbs@ tag and replace Architecture with Cpu/System. + * control.in (Build-Depends): Add ruby. + + -- Robert Millan Thu, 3 Feb 2005 22:33:39 +0100 + +grub2 (0.6+20040805-1) unstable; urgency=low + + * New upstream snapshot. + * Uploading to unstable so that powerpc users can be blessed by GRUB too. + * Use type-handling to generate dpkg arch list. + - control.in + - rules + + -- Robert Millan Thu, 5 Aug 2004 20:50:16 +0200 + +grub2 (0.6+20040502-1) experimental; urgency=low + + * New upstream snapshot. + - Fix FTBFS on powerpc. + + -- Robert Millan Sun, 2 May 2004 18:16:29 +0200 + +grub2 (0.6+20040429-1) experimental; urgency=low + + * New upstream snapshot. + - control (Architecture): Add powerpc. + + -- Robert Millan Thu, 29 Apr 2004 20:41:31 +0200 + +grub2 (0.6+20031125-1) experimental; urgency=low + + * New upstream snapshot. + - patches/multiboot.diff: Nuked. + - install,docs: Update directory name. + * control (Maintainer): Set to pkg-grub-devel mailing list. + * control (Uploaders): Add myself. + * control (Architecture): Add freebsd-i386 and netbsd-i386. + + -- Robert Millan Tue, 25 Nov 2003 23:48:18 +0100 + +grub2 (0.6+20031114-1) experimental; urgency=low + + * New upstream snapshot. + - README.Debian: s/fat/ext2/g (We now have ext2fs support). + * Add multiboot support, thanks to Jeroen Dekkers for his patch. + - patches/multiboot.diff: New. + - control (Architecture): Add hurd-i386 (which needed multiboot). + * Rename package to grub2 (to follow upstream tendency). + - control: Ditto. + - README.Debian: Likewise. + * Switch to tarball mode. + - rules: Ditto. + - docs: Prefix paths in order to workaround dh_installdocs bug. + - install: Likewise, but not because of bug (should be in rules, actualy). + * Fix FTBFS. (Closes: #213868) + - control (Build-Depends): Add autoconf. + - control (Build-Conflicts): Add autoconf2.13. + + -- Robert Millan Fri, 14 Nov 2003 13:16:12 +0100 + +pupa (0.6+20031008-1) experimental; urgency=low + + * New upstream snapshot. + * Uploading to experimental. + * debian/control: Add Jason Thomas to Uploaders. + + -- Robert Millan Wed, 8 Oct 2003 13:22:50 +0000 + +pupa (0.6+20030915-1) unstable; urgency=low + + * Initial Release. (Closes: #211030) + + -- Robert Millan Mon, 15 Sep 2003 14:58:42 +0000 --- grub2-1.99.orig/debian/update-grub +++ grub2-1.99/debian/update-grub @@ -0,0 +1,3 @@ +#!/bin/sh +set -e +exec grub-mkconfig -o /boot/grub/grub.cfg "$@" --- grub2-1.99.orig/debian/rules +++ grub2-1.99/debian/rules @@ -0,0 +1,281 @@ +#!/usr/bin/make -f +SHELL := bash + +deb_version := $(shell dpkg-parsechangelog | sed -ne "s/^Version: \(.*\)/\1/p") +upstream_version := $(shell echo $(deb_version) | sed -e "s/-[^-]*$$//") + +package := grub2 + +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH 2>/dev/null) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null) +DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null) + +HOST_CFLAGS := -g -Wall + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + HOST_CFLAGS += -O0 +else + HOST_CFLAGS += -O2 +endif + +unexport CFLAGS +export HOST_CFLAGS + +ifeq (,$(shell which qemu-system-i386 2>/dev/null)) +with_check := no +else +with_check := yes +endif + +CC := gcc-4.5 + +# Enable external modules from grub-extras. +export GRUB_CONTRIB := $(CURDIR)/debian/grub-extras + +confflags = PACKAGE_VERSION="$(deb_version)" PACKAGE_STRING="GRUB $(deb_version)" CC=$(CC) TARGET_CC=$(CC) --enable-grub-mkfont + +AUTOGEN_DEB_FILES = config templates preinst postinst postrm dirs install links + +BUILD_PACKAGES := $(strip $(shell dh_listpackages)) +REAL_PACKAGES = grub-emu grub-pc grub-coreboot grub-efi-ia32 grub-efi-amd64 grub-ieee1275 grub-firmware-qemu grub-yeeloong + +ifneq (,$(filter i386 amd64,$(DEB_HOST_ARCH_CPU))) +COMMON_PLATFORM := pc +else ifneq (,$(filter powerpc ppc64 sparc,$(DEB_HOST_ARCH_CPU))) +COMMON_PLATFORM := ieee1275 +else ifeq (mipsel,$(DEB_HOST_ARCH_CPU)) +COMMON_PLATFORM := yeeloong +else +$(error COMMON_PLATFORM not set for $(DEB_HOST_ARCH_CPU)) +endif + +%: + dh $@ --with quilt + +override_dh_auto_configure: $(patsubst %,configure/%,$(BUILD_PACKAGES)) + +override_dh_auto_build: $(patsubst %,build/%,$(BUILD_PACKAGES)) + +override_dh_auto_install: $(patsubst %,install/%,$(BUILD_PACKAGES)) + +$(patsubst %,configure/%,$(REAL_PACKAGES)) :: configure/% : build/stamps/configure-% +$(patsubst %,build/%,$(REAL_PACKAGES) grub-rescue-pc) :: build/% : build/stamps/build-% + +build/stamps/configure-%: package = $(subst build/stamps/configure-,,$@) +build/stamps/configure-%: export DH_OPTIONS = -p$(package) -Bbuild/$(package) + +build/stamps/build-%: package = $(subst build/stamps/build-,,$@) +build/stamps/build-%: export DH_OPTIONS = -p$(package) -Bbuild/$(package) + +install/%: package = $(subst install/,,$@) +install/%: package_bin = $(package)-bin +install/grub-emu: package_bin = grub-emu +install/%: export DH_OPTIONS = -p$(package) -Bbuild/$(patsubst grub-common,grub-$(COMMON_PLATFORM),$(package)) + +override_dh_quilt_patch: + dh_quilt_patch + rm -f build/stamps/autogen + +override_dh_quilt_unpatch: + dh_quilt_unpatch + rm -f build/stamps/autogen + +build/stamps/autogen: autogen.sh configure.ac Makefile.util.def grub-core/Makefile.core.def + mkdir -p build/stamps + ./autogen.sh + touch $@ + +build/stamps/configure-grub-common: build/stamps/configure-grub-$(COMMON_PLATFORM) + +build/stamps/build-grub-common: build/stamps/build-grub-$(COMMON_PLATFORM) + +build/stamps/configure-grub-pc build/stamps/configure-grub-ieee1275 build/stamps/configure-grub-coreboot build/stamps/configure-grub-emu build/stamps/configure-grub-yeeloong: build/stamps/autogen + mkdir -p build/stamps build/$(package) + dh_auto_configure -- $(confflags) --with-platform=$(subst grub-,,$(package)) + touch $@ + +# This name scheme leaves room for things like ia64 or amd32 someday +build/stamps/configure-grub-efi-ia32: build/stamps/autogen + mkdir -p build/stamps build/$(package) + dh_auto_configure -- $(confflags) --with-platform=efi --target=i386-pe --program-prefix="" + touch $@ +build/stamps/configure-grub-efi-amd64: build/stamps/autogen + mkdir -p build/stamps $(subst build/stamps/configure-,build/,$@) + dh_auto_configure -- $(confflags) --with-platform=efi --target=amd64-pe --program-prefix="" + touch $@ + +build/stamps/configure-grub-firmware-qemu: build/stamps/autogen + mkdir -p build/stamps $(subst build/stamps/configure-,build/,$@) + dh_auto_configure -- $(confflags) --with-platform=qemu + touch $@ + +build/stamps/build-grub-efi-ia32 build/stamps/build-grub-efi-amd64 build/stamps/build-grub-ieee1275 build/stamps/build-grub-coreboot build/stamps/build-grub-emu build/stamps/build-grub-yeeloong: build/stamps/build-%: build/stamps/configure-% + dh_auto_build + touch $@ + +build/stamps/build-grub-pc: build/stamps/configure-grub-pc + dh_auto_build +ifeq ($(with_check), yes) + dh_auto_test +endif + touch $@ + +build/stamps/build-grub-firmware-qemu: build/stamps/configure-grub-firmware-qemu + dh_auto_build + grub_dir=`mktemp -d` ; \ + grub_memdisk=`mktemp` ; \ + trap "rm -rf $${grub_dir} $${grub_memdisk}" EXIT HUP INT QUIT TERM ; \ + mkdir -p $${grub_dir}/boot/grub ; \ + cp debian/grub-firmware-qemu_grub.cfg $${grub_dir}/boot/grub/grub.cfg ; \ + tar -cf - -C $${grub_dir} boot > $${grub_memdisk} ; \ + $(CURDIR)/build/$(package)/grub-mkimage \ + -O i386-qemu \ + -d $(CURDIR)/build/$(package)/grub-core \ + $(CURDIR)/build/$(package)/grub-core/*.mod \ + -m $${grub_memdisk} \ + -o $(CURDIR)/build/$(package)/grub.bin + touch $@ + +build/stamps/build-grub-rescue-pc: build/stamps/build-grub-pc + mkdir -p build/grub-rescue-pc + cp -a build/grub-pc/grub-mkrescue build/grub-rescue-pc/grub-mkrescue + mkdir -p build/grub-rescue-pc/rescue-disk/boot/grub + cp docs/grub.cfg build/grub-rescue-pc/rescue-disk/boot/grub/ + sed -i 's,^prefix=.*,prefix=$(CURDIR)/build/grub-rescue-pc,' \ + build/grub-rescue-pc/grub-mkrescue + mkdir -p build/grub-rescue-pc/lib/grub + rm -rf build/grub-rescue-pc/lib/grub/i386-pc + cp -a build/grub-pc/grub-core build/grub-rescue-pc/lib/grub/i386-pc + $(CURDIR)/build/grub-rescue-pc/grub-mkrescue \ + --grub-mkimage=$(CURDIR)/build/grub-pc/grub-mkimage \ + --output=$(CURDIR)/build/grub-rescue-pc/grub-rescue-cdrom.iso \ + $(CURDIR)/build/grub-rescue-pc/rescue-disk + # save space for floppy image + rm -rf build/grub-rescue-pc/lib/grub/i386-pc/po + $(CURDIR)/build/grub-rescue-pc/grub-mkrescue \ + --grub-mkimage=$(CURDIR)/build/grub-pc/grub-mkimage \ + --output=$(CURDIR)/build/grub-rescue-pc/grub-rescue-floppy.img \ + --diet \ + $(CURDIR)/build/grub-rescue-pc/rescue-disk + touch $@ + +platform_subst = \ + if [ -e debian/$(1) ]; then \ + sed debian/$(1) \ + -e "s/@PACKAGE@/$(2)/g" \ + -e "s/@CPU_PLATFORM@/$$cpu_platform/g" \ + >> debian/$(2).$(3); \ + fi + +install/grub-pc install/grub-efi-ia32 install/grub-efi-amd64 install/grub-ieee1275 install/grub-coreboot install/grub-emu install/grub-yeeloong: + dh_auto_install --destdir=debian/tmp-$(package) + + if [ "$@" != "install/grub-emu" ] ; then \ + set -e ; \ + cpu_platform=$$(find debian/tmp-$(package)/usr/lib/grub \ + -mindepth 1 -maxdepth 1 -type d -printf '%P\n') ; \ + for i in $(AUTOGEN_DEB_FILES) ; do \ + > debian/$(package).$$i; \ + $(call platform_subst,$$i.in,$(package),$$i); \ + $(call platform_subst,$(package).$$i.in,$(package),$$i); \ + $(call platform_subst,$(package).$$i.$(DEB_HOST_ARCH_CPU).in,$(package),$$i); \ + $(call platform_subst,$(package).$$i.$(DEB_HOST_ARCH_OS).in,$(package),$$i); \ + [ -s debian/$(package).$$i ] || rm -f debian/$(package).$$i; \ + > debian/$(package_bin).$$i; \ + $(call platform_subst,$$i-bin.in,$(package_bin),$$i); \ + $(call platform_subst,$(package_bin).$$i.in,$(package_bin),$$i); \ + $(call platform_subst,$(package_bin).$$i.$(DEB_HOST_ARCH_CPU).in,$(package_bin),$$i); \ + $(call platform_subst,$(package_bin).$$i.$(DEB_HOST_ARCH_OS).in,$(package_bin),$$i); \ + [ -s debian/$(package_bin).$$i ] || rm -f debian/$(package_bin).$$i; \ + done ; \ + fi + + mkdir -p $(CURDIR)/debian/$(package_bin)/usr/share/lintian/overrides + echo "$(package_bin): unstripped-binary-or-object *.mod" \ + >> $(CURDIR)/debian/$(package_bin)/usr/share/lintian/overrides/$(package_bin) + cd debian/tmp-$(package) && find usr/lib/grub -name kernel.img \ + | sed -e "s%.*%$(package_bin): statically-linked-binary &%g" \ + >> $(CURDIR)/debian/$(package_bin)/usr/share/lintian/overrides/$(package_bin) + cd debian/tmp-$(package) && find ./usr/lib/grub -name kernel.img \ + | sed -e "s%.*%$(package_bin): statically-linked-binary &%g" \ + >> $(CURDIR)/debian/$(package_bin)/usr/share/lintian/overrides/$(package_bin) + cd debian/tmp-$(package) && find usr/lib/grub -name kernel.img \ + | sed -e "s%.*%$(package_bin): unstripped-binary-or-object &%g" \ + >> $(CURDIR)/debian/$(package_bin)/usr/share/lintian/overrides/$(package_bin) + if [ "$@" = "install/grub-efi-amd64" ] && [ "$(DEB_HOST_ARCH_CPU)" = "i386" ] ; then \ + echo "$(package_bin): binary-from-other-architecture *.mod" \ + >> $(CURDIR)/debian/$(package_bin)/usr/share/lintian/overrides/$(package_bin) ; \ + cd debian/tmp-$(package) && find usr/lib/grub -name kernel.img \ + | sed -e "s%.*%$(package_bin): binary-from-other-architecture &%g" \ + >> $(CURDIR)/debian/$(package_bin)/usr/share/lintian/overrides/$(package_bin) ; \ + fi + if ([ "$@" = "install/grub-pc" ] || \ + [ "$@" = "install/grub-ieee1275" ] || \ + [ "$@" = "install/grub-coreboot" ] || \ + [ "$@" = "install/grub-emu" ]) && \ + [ "$(DEB_HOST_ARCH_CPU)" = "i386" ] ; then \ + echo "$(package_bin): binary-from-other-architecture *efiemu64.o" \ + >> $(CURDIR)/debian/$(package_bin)/usr/share/lintian/overrides/$(package_bin) ; \ + fi + +install/grub-common: + set -e ; for i in $(AUTOGEN_DEB_FILES) ; do \ + if [ -e debian/grub-common.$$i.in ] ; then \ + cat debian/grub-common.$$i.in \ + > debian/grub-common.$$i ; \ + fi ; \ + if [ -e debian/grub-common.$$i.$(DEB_HOST_ARCH_CPU).in ] ; then \ + cat debian/grub-common.$$i.$(DEB_HOST_ARCH_CPU).in \ + >> debian/grub-common.$$i ; \ + fi ; \ + if [ -e debian/grub-common.$$i.$(DEB_HOST_ARCH_OS).in ] ; then \ + cat debian/grub-common.$$i.$(DEB_HOST_ARCH_OS).in \ + >> debian/grub-common.$$i ; \ + fi ; \ + done + +override_dh_install: + dh_install -pgrub2 -pgrub-linuxbios -pgrub-efi -pgrub-rescue-pc -pgrub-firmware-qemu + set -e; for package in grub-common grub2-common grub-mount-udeb; do \ + dh_install -p$$package --sourcedir=debian/tmp-grub-$(COMMON_PLATFORM); \ + done + rm -f debian/grub2-common/usr/share/info/dir* + set -e; for package in grub-pc grub-efi-ia32 grub-efi-amd64 grub-ieee1275 grub-coreboot grub-yeeloong; do \ + dh_install -p$$package --sourcedir=debian/tmp-$$package; \ + dh_install -p$$package-bin --sourcedir=debian/tmp-$$package; \ + done + dh_install -pgrub-emu --sourcedir=debian/tmp-grub-emu + +override_dh_installdocs: + dh_installdocs -pgrub-common -pgrub-rescue-pc -pgrub-firmware-qemu -A AUTHORS NEWS README THANKS TODO + dh_installdocs -Ngrub-common -Ngrub-rescue-pc -Ngrub-firmware-qemu --link-doc=grub-common + +override_dh_strip: + dh_strip -X/usr/bin/grub-emu + +override_dh_auto_clean: + -rm -rf build + -rm -f contrib grub-core/contrib + +override_dh_clean: debian/legacy/update-grub debian/grub-extras + dh_clean + + chmod +x debian/{script,grub.d/*,legacy/*,kernel/*} + + for i in $(AUTOGEN_DEB_FILES) ; do \ + rm -f debian/grub-{pc,efi-*,ieee1275,coreboot,yeeloong}{,-bin}.$$i ; \ + done + rm -rf debian/tmp-*/ + + # make sure PO files are always up-to-date + debconf-updatepo + +debian/legacy/update-grub: + @echo "Missing $@. Try: \"bzr cat http://bzr.debian.org/bzr/pkg-grub/trunk/grub-legacy/debian/update-grub > $@\"" + exit 1 + +debian/grub-extras: + @echo "Missing $@. Try: \"mkdir -p $@; for extra in 915resolution ntldr-img; do bzr export $@/\$$extra http://bzr.savannah.nongnu.org/r/grub-extras/\$$extra; done\"" + exit 1 + +.PHONY: $(patsubst %,configure/%,$(BUILD_PACKAGES)) $(patsubst %,build/%,$(BUILD_PACKAGES)) $(patsubst %,install/%,$(BUILD_PACKAGES)) --- grub2-1.99.orig/debian/grub-common.install.ppc64.in +++ grub2-1.99/debian/grub-common.install.ppc64.in @@ -0,0 +1,2 @@ +usr/bin/grub-mkrescue +usr/share/man/man1/grub-mkrescue.1 --- grub2-1.99.orig/debian/grub-common.install.powerpc.in +++ grub2-1.99/debian/grub-common.install.powerpc.in @@ -0,0 +1,2 @@ +usr/bin/grub-mkrescue +usr/share/man/man1/grub-mkrescue.1 --- grub2-1.99.orig/debian/watch +++ grub2-1.99/debian/watch @@ -0,0 +1,2 @@ +version=3 +ftp://alpha.gnu.org/gnu/grub/grub-([a-z0-9.~]+).tar.gz debian uupdate --- grub2-1.99.orig/debian/grub-common.install.amd64.in +++ grub2-1.99/debian/grub-common.install.amd64.in @@ -0,0 +1,2 @@ +usr/bin/grub-mkrescue +usr/share/man/man1/grub-mkrescue.1 --- grub2-1.99.orig/debian/grub-efi.postinst +++ grub2-1.99/debian/grub-efi.postinst @@ -0,0 +1,19 @@ +#! /bin/sh +set -e + +case "$1" in + configure) + if dpkg --compare-versions "$2" lt-nl 1.99-1; then + # Force dpkg to replace this directory with a symlink. + if [ ! -L /usr/share/doc/@PACKAGE@ ] && [ -d /usr/share/doc/@PACKAGE@ ]; then + if rmdir /usr/share/doc/@PACKAGE@ 2>/dev/null; then + ln -sf grub-common /usr/share/doc/@PACKAGE@ + fi + fi + fi + ;; +esac + +#DEBHELPER# + +exit 0 --- grub2-1.99.orig/debian/grub-common.preinst +++ grub2-1.99/debian/grub-common.preinst @@ -0,0 +1,52 @@ +#!/bin/bash +set -e + +# Taken from http://wiki.debian.org/DpkgConffileHandling +# Remove a no-longer used conffile +rm_conffile() { + local PKGNAME="grub-common" + local CONFFILE="$1" + + [ -e "$CONFFILE" ] || return 0 + + local md5sum="$(md5sum $CONFFILE | sed -e 's/ .*//')" + local old_md5sum="$(dpkg-query -W -f='${Conffiles}' $PKGNAME | \ + sed -n -e "\' $CONFFILE ' { s/ obsolete$//; s/.* //; p }")" + if [ "$md5sum" != "$old_md5sum" ]; then + echo "Obsolete conffile $CONFFILE has been modified by you." + echo "Saving as $CONFFILE.dpkg-bak ..." + mv -f "$CONFFILE" "$CONFFILE".dpkg-bak + else + echo "Removing obsolete conffile $CONFFILE ..." + rm -f "$CONFFILE" + fi +} + +case "$1" in + install|upgrade) + if dpkg --compare-versions "$2" lt "1.98~20091229-1" ; then + rm_conffile "/etc/grub.d/10_freebsd" + fi + if dpkg --compare-versions "$2" lt "1.96+20090521-1" ; then + if [[ `dpkg --print-architecture` != hurd-* ]] ; then + rm_conffile "/etc/grub.d/10_hurd" + fi + if [[ `dpkg --print-architecture` = hurd-* ]] || [[ `dpkg --print-architecture` = kfreebsd-* ]] ; then + rm_conffile "/etc/grub.d/10_linux" + fi + fi + ;; + abort-upgrade) + ;; + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- grub2-1.99.orig/debian/grub2.install +++ grub2-1.99/debian/grub2.install @@ -0,0 +1,2 @@ +debian/presubj usr/share/bug/grub2 +debian/script usr/share/bug/grub2 --- grub2-1.99.orig/debian/grub-mount-udeb.install +++ grub2-1.99/debian/grub-mount-udeb.install @@ -0,0 +1 @@ +usr/bin/grub-mount --- grub2-1.99.orig/debian/grub-common.install.sparc.in +++ grub2-1.99/debian/grub-common.install.sparc.in @@ -0,0 +1,3 @@ +usr/sbin/grub-ofpathname +# Restore this in the next upstream snapshot: +#usr/share/man/man8/grub-ofpathname.8 --- grub2-1.99.orig/debian/grub-pc.templates.in +++ grub2-1.99/debian/grub-pc.templates.in @@ -0,0 +1,147 @@ + +# This file is concatenated. Do not delete the newline above. + +Template: grub-pc/chainload_from_menu.lst +Type: boolean +Default: true +#flag:translate!:6 +_Description: Chainload from menu.lst? + GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub. + . + In order to replace the Legacy version of GRUB in your system, it is + recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot + image from your existing GRUB Legacy setup. This step can be automatically + performed now. + . + It's recommended that you accept chainloading GRUB 2 from menu.lst, and + verify that the new GRUB 2 setup works before it is written to the MBR + (Master Boot Record). + . + Whatever your decision, you can replace the old MBR image with GRUB 2 + later by issuing the following command as root: + . + upgrade-from-grub-legacy + +Template: grub-pc/install_devices +Type: multiselect +Choices-C: ${RAW_CHOICES} +Choices: ${CHOICES} +_Description: GRUB install devices: + The grub-pc package is being upgraded. This menu allows you to select which + devices you'd like grub-install to be automatically run for, if any. + . + Running grub-install automatically is recommended in most situations, to + prevent the installed GRUB core image from getting out of sync with GRUB + modules or grub.cfg. + . + If you're unsure which drive is designated as boot drive by your BIOS, it is + often a good idea to install GRUB to all of them. + . + Note: it is possible to install GRUB to partition boot records as well, and + some appropriate partitions are offered here. However, this forces GRUB to + use the blocklist mechanism, which makes it less reliable, and therefore is + not recommended. + +Template: grub-pc/install_devices_disks_changed +Type: multiselect +Choices-C: ${RAW_CHOICES} +Choices: ${CHOICES} +_Description: GRUB install devices: + The GRUB boot loader was previously installed to a disk that is no longer + present, or whose unique identifier has changed for some reason. It is + important to make sure that the installed GRUB core image stays in sync + with GRUB modules and grub.cfg. Please check again to make sure that GRUB + is written to the appropriate boot devices. + . + If you're unsure which drive is designated as boot drive by your BIOS, it is + often a good idea to install GRUB to all of them. + . + Note: it is possible to install GRUB to partition boot records as well, and + some appropriate partitions are offered here. However, this forces GRUB to + use the blocklist mechanism, which makes it less reliable, and therefore is + not recommended. + +Template: grub-pc/disk_description +Type: text +# Disk sizes are in decimal megabytes, to match how disk manufacturers +# usually describe them. +_Description: ${DEVICE} (${SIZE} MB; ${MODEL}) + +Template: grub-pc/partition_description +Type: text +# The "-" is used to indicate indentation. Leading spaces may not work. +_Description: - ${DEVICE} (${SIZE} MB; ${PATH}) + +Template: grub-pc/install_devices_failed +Type: boolean +Default: false +#flag:translate!:3 +_Description: Writing GRUB to boot device failed - continue? + GRUB failed to install to the following devices: + . + ${FAILED_DEVICES} + . + Do you want to continue anyway? If you do, your computer may not start up + properly. + +Template: grub-pc/install_devices_failed_upgrade +Type: boolean +Default: true +#flag:translate!:3 +_Description: Writing GRUB to boot device failed - try again? + GRUB failed to install to the following devices: + . + ${FAILED_DEVICES} + . + You may be able to install GRUB to some other device, although you should + check that your system will boot from that device. Otherwise, the upgrade + from GRUB Legacy will be canceled. + +Template: grub-pc/install_devices_empty +Type: boolean +Default: false +_Description: Continue without installing GRUB? + You chose not to install GRUB to any devices. If you continue, the boot + loader may not be properly configured, and when this computer next starts + up it will use whatever was previously in the boot sector. If there is an + earlier version of GRUB 2 in the boot sector, it may be unable to load + modules or handle the current configuration file. + . + If you are already using a different boot loader and want to carry on + doing so, or if this is a special environment where you do not need a boot + loader, then you should continue anyway. Otherwise, you should install + GRUB somewhere. + +Template: grub-pc/postrm_purge_boot_grub +Type: boolean +Default: false +_Description: Remove GRUB 2 from /boot/grub? + Do you want to have all GRUB 2 files removed from /boot/grub? + . + This will make the system unbootable unless another boot loader is + installed. + +Template: grub-pc/mixed_legacy_and_grub2 +Type: boolean +Default: true +#flag:translate!:3 +_Description: Finish conversion to GRUB 2 now? + This system still has files from the GRUB Legacy boot loader installed, but + it now also has GRUB 2 boot records installed on these disks: + . + ${DISKS} + . + It seems likely that GRUB Legacy is no longer in use, and that you should + instead upgrade the GRUB 2 images on these disks and finish the conversion + to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these + GRUB 2 images, then they may be incompatible with the new packages and + cause your system to stop booting properly. + . + You should generally finish the conversion to GRUB 2 unless these boot + records were created by a GRUB 2 installation on some other operating + system. + +Template: grub-pc/kopt_extracted +Type: boolean +Default: false +Description: for internal use --- grub2-1.99.orig/debian/grub-firmware-qemu_grub.cfg +++ grub2-1.99/debian/grub-firmware-qemu_grub.cfg @@ -0,0 +1,37 @@ +set default=0 +set fallback=1 +set timeout=10 + +menuentry "Search & load /boot/multiboot.img" { + search -s -f /boot/multiboot.img + if multiboot /boot/multiboot.img ; then + boot + fi + unset timeout +} + +# For separate /boot partition. +menuentry "Search & load /multiboot.img" { + search -s -f /multiboot.img + if multiboot /multiboot.img ; then + boot + fi + unset timeout +} + +menuentry "Search & source /boot/grub/grub.cfg" { + search -s -f /boot/grub/grub.cfg + source /boot/grub/grub.cfg + unset timeout +} + +# For separate /boot partition. +menuentry "Search & source /grub/grub.cfg" { + search -s -f /grub/grub.cfg + source /grub/grub.cfg + unset timeout +} + +menuentry "Reboot" { + reboot +} --- grub2-1.99.orig/debian/clean +++ grub2-1.99/debian/clean @@ -0,0 +1 @@ +debian/grub-common.install --- grub2-1.99.orig/debian/postrm.in +++ grub2-1.99/debian/postrm.in @@ -0,0 +1,47 @@ +#!/bin/bash +set -e + +case "$1" in + purge) + rm -f /etc/default/grub + + if which ucf >/dev/null ; then + ucf --purge /etc/default/grub + fi + if which ucfr >/dev/null ; then + ucfr --purge @PACKAGE@ /etc/default/grub || true + fi + + case @PACKAGE@ in + grub-pc) + # debconf could have been purged + if [ -e /usr/share/debconf/confmodule ] ; then + . /usr/share/debconf/confmodule + fi + + db_input high grub-pc/postrm_purge_boot_grub || true + db_go || true + db_get grub-pc/postrm_purge_boot_grub || true + if [ "$RET" = "true" ] ; then + rm -f /boot/grub/{grub.cfg,ascii.pf2,unicode.pf2,moreblue-orbit-grub.png,*.mod,*.lst,*.img,efiemu32.o,efiemu64.o,device.map,grubenv,installed-version,.background_cache.jpeg,.background_cache.png,.background_cache.tga} || true + rm -rf /boot/grub/locale + rmdir --ignore-fail-on-non-empty /boot/grub || true + fi + ;; + esac + + ;; + remove|upgrade|failed-upgrade|abort-upgrade|abort-install) + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- grub2-1.99.orig/debian/README.source +++ grub2-1.99/debian/README.source @@ -0,0 +1,58 @@ +This package uses quilt to manage all modifications to the upstream +source. Changes are stored in the source package as diffs in +debian/patches and applied during the build. + +To configure quilt to use debian/patches instead of patches, you want +either to export QUILT_PATCHES=debian/patches in your environment +or use this snippet in your ~/.quiltrc: + + for where in ./ ../ ../../ ../../../ ../../../../ ../../../../../; do + if [ -e ${where}debian/rules -a -d ${where}debian/patches ]; then + export QUILT_PATCHES=debian/patches + break + fi + done + +To get the fully patched source after unpacking the source package, cd to +the root level of the source package and run: + + quilt push -a + +The last patch listed in debian/patches/series will become the current +patch. + +To add a new set of changes, first run quilt push -a, and then run: + + quilt new + +where is a descriptive name for the patch, used as the filename in +debian/patches. Then, for every file that will be modified by this patch, +run: + + quilt add + +before editing those files. You must tell quilt with quilt add what files +will be part of the patch before making changes or quilt will not work +properly. After editing the files, run: + + quilt refresh + +to save the results as a patch. + +Alternately, if you already have an external patch and you just want to +add it to the build system, run quilt push -a and then: + + quilt import -P /path/to/patch + quilt push -a + +(add -p 0 to quilt import if needed). as above is the filename to +use in debian/patches. The last quilt push -a will apply the patch to +make sure it works properly. + +To remove an existing patch from the list of patches that will be applied, +run: + + quilt delete + +You may need to run quilt pop -a to unapply patches first before running +this command. --- grub2-1.99.orig/debian/grub2-common.manpages +++ grub2-1.99/debian/grub2-common.manpages @@ -0,0 +1 @@ +debian/update-grub.8 --- grub2-1.99.orig/debian/grub-pc-bin.install.in +++ grub2-1.99/debian/grub-pc-bin.install.in @@ -0,0 +1,2 @@ +usr/bin/grub-ntldr-img usr/lib/grub/@CPU_PLATFORM@ +usr/sbin/grub-setup usr/lib/grub/@CPU_PLATFORM@ --- grub2-1.99.orig/debian/grub-firmware-qemu.install +++ grub2-1.99/debian/grub-firmware-qemu.install @@ -0,0 +1 @@ +build/grub-firmware-qemu/grub.bin usr/share/qemu --- grub2-1.99.orig/debian/compat +++ grub2-1.99/debian/compat @@ -0,0 +1 @@ +7 --- grub2-1.99.orig/debian/grub-common.install.i386.in +++ grub2-1.99/debian/grub-common.install.i386.in @@ -0,0 +1,2 @@ +usr/bin/grub-mkrescue +usr/share/man/man1/grub-mkrescue.1 --- grub2-1.99.orig/debian/grub2-common.links +++ grub2-1.99/debian/grub2-common.links @@ -0,0 +1,2 @@ +usr/sbin/update-grub usr/sbin/update-grub2 +usr/share/man/man8/update-grub.8 usr/share/man/man8/update-grub2.8 --- grub2-1.99.orig/debian/grub-common.examples +++ grub2-1.99/debian/grub-common.examples @@ -0,0 +1 @@ +docs/grub.cfg --- grub2-1.99.orig/debian/config.in +++ grub2-1.99/debian/config.in @@ -0,0 +1,48 @@ +#!/bin/sh +set -e + +case `dpkg --print-architecture` in + kfreebsd-*) + # No migration from GRUB Legacy, no Linux cmdline + exit 0 + ;; +esac + +. /usr/share/debconf/confmodule + +priority=medium + +case @PACKAGE@ in + grub-pc) + if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && ! test -e /boot/grub/core.img ; then + + db_input high grub-pc/chainload_from_menu.lst || true + + db_get grub-pc/kopt_extracted || true + # this check ensures we only do this once + if [ "$RET" = "false" ] ; then + kopt=`sed -ne "s/^# kopt=//p" /boot/grub/menu.lst | tr -s " " "\n" | grep -vx "\(ro\|root=[^ ]*\)" | paste -s -d ' '` || true + db_set grub2/linux_cmdline "${kopt}" || true + db_set grub-pc/kopt_extracted true || true + if [ "${kopt}" = "" ] ; then + # something smells bad. give user a chance to correct it. + priority=high + else + # if we got something from menu.lst, it must be correct? + priority=medium + fi + fi + fi + ;; +esac + +if test -e /etc/default/grub ; then + . /etc/default/grub + + db_set grub2/linux_cmdline "$GRUB_CMDLINE_LINUX" + db_set grub2/linux_cmdline_default "$GRUB_CMDLINE_LINUX_DEFAULT" +fi + +db_input ${priority} grub2/linux_cmdline || true +db_input medium grub2/linux_cmdline_default || true +db_go --- grub2-1.99.orig/debian/grub-common.install.in +++ grub2-1.99/debian/grub-common.install.in @@ -0,0 +1,37 @@ +../../debian/presubj usr/share/bug/grub-common +../../debian/apport/source_grub2.py usr/share/apport/package-hooks/ +../../debian/grub.d etc + +etc/bash_completion.d +etc/grub.d +usr/bin/grub-bin2h +usr/bin/grub-editenv +usr/bin/grub-fstest +usr/bin/grub-kbdcomp +usr/bin/grub-menulst2cfg +usr/bin/grub-mkfont +usr/bin/grub-mkimage +usr/bin/grub-mklayout +usr/bin/grub-mkpasswd-pbkdf2 +usr/bin/grub-mkrelpath +usr/bin/grub-script-check +usr/lib/grub/grub-mkconfig_lib +usr/lib/grub/update-grub_lib +usr/sbin/grub-mkconfig +usr/sbin/grub-mkdevicemap +usr/sbin/grub-probe +usr/share/grub +usr/share/locale +usr/share/man/man1/grub-bin2h.1 +usr/share/man/man1/grub-editenv.1 +usr/share/man/man1/grub-fstest.1 +usr/share/man/man1/grub-menulst2cfg.1 +usr/share/man/man1/grub-mkfont.1 +usr/share/man/man1/grub-mkimage.1 +usr/share/man/man1/grub-mklayout.1 +usr/share/man/man1/grub-mkpasswd-pbkdf2.1 +usr/share/man/man1/grub-mkrelpath.1 +usr/share/man/man1/grub-script-check.1 +usr/share/man/man8/grub-mkconfig.8 +usr/share/man/man8/grub-mkdevicemap.8 +usr/share/man/man8/grub-probe.8 --- grub2-1.99.orig/debian/grub-emu.install +++ grub2-1.99/debian/grub-emu.install @@ -0,0 +1,4 @@ +usr/bin/grub-emu +usr/bin/grub-emu-lite +usr/lib/grub/*-*/ +usr/share/man/man1/grub-emu.1 --- grub2-1.99.orig/debian/control +++ grub2-1.99/debian/control @@ -0,0 +1,390 @@ +Source: grub2 +Section: admin +Priority: extra +Maintainer: GRUB Maintainers +Uploaders: Robert Millan , Felix Zielcke , Jordi Mallach , Colin Watson +DM-Upload-Allowed: yes +Build-Depends: debhelper (>= 7.4.2~), + quilt (>= 0.46-7), + patchutils, + autoconf, + automake, + autogen (>= 1:5.10), + python, + flex (>= 2.5.35), + bison, + po-debconf, + help2man, + texinfo, + gcc-4.5-multilib [i386 kopensolaris-i386 any-amd64 any-ppc64 any-sparc], + gcc-4.5, + libncurses5-dev, + xfonts-unifont, + libfreetype6-dev, + gettext, + libusb-dev [!hurd-any], + libdevmapper-dev (>= 2:1.02.34) [linux-any], + libzfs-dev [kfreebsd-any], + libnvpair-dev [kfreebsd-any], + libgeom-dev (>= 8.2+ds1-1) [kfreebsd-any] | libgeom-dev (<< 8.2) [kfreebsd-any], + libsdl1.2-dev [!hurd-any], + xorriso (>= 0.5.6.pl00), + qemu-system [i386 kfreebsd-i386 kopensolaris-i386 any-amd64], + qemu-utils [!hurd-any], + parted [!hurd-any], + libfuse-dev (>= 2.8.4-1.4) [linux-any], +Build-Conflicts: autoconf2.13 +Standards-Version: 3.8.4 +Homepage: http://www.gnu.org/software/grub/ +Vcs-Bzr: http://anonscm.debian.org/bzr/pkg-grub/trunk/grub/ +Vcs-Browser: http://anonscm.debian.org/loggerhead/pkg-grub/trunk/grub/ + +Package: grub2 +Architecture: any-i386 any-amd64 any-powerpc any-ppc64 any-sparc +Depends: grub-pc (= ${binary:Version}) [any-i386 any-amd64] | grub-ieee1275 (= ${binary:Version}) [any-powerpc any-ppc64 any-sparc], ${misc:Depends} +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (dummy package) + This is a dummy transitional package to handle GRUB 2 upgrades. It can be + safely removed. + +Package: grub-linuxbios +Architecture: any-i386 any-amd64 +Depends: grub-coreboot (= ${binary:Version}), ${misc:Depends} +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (dummy package) + This is a dummy transitional package that depends on grub-coreboot. + +Package: grub-efi +Architecture: any-i386 any-amd64 +Depends: ${misc:Depends}, grub-efi-ia32 (= ${binary:Version}) [any-i386], grub-efi-amd64 (= ${binary:Version}) [any-amd64] +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (dummy package) + This is a dummy transitional package that depends on either grub-efi-ia32 or + grub-efi-amd64, depending on the architecture. + + +Package: grub-common +Priority: optional +Architecture: any-i386 any-amd64 any-powerpc any-ppc64 any-sparc any-mipsel +Depends: ${shlibs:Depends}, ${misc:Depends}, gettext-base +Replaces: grub-pc (<< 1.99-1), grub-ieee1275 (<< 1.99-1), grub-efi (<< 1.99-1), grub-coreboot (<< 1.99-1), grub-linuxbios (<< 1.96+20080831-1), grub-efi-ia32 (<< 1.99-1), grub-efi-amd64 (<< 1.99-1), grub-yeeloong (<< 1.99-1) +Recommends: os-prober (>= 1.33) +Suggests: multiboot-doc, grub-emu, xorriso (>= 0.5.6.pl00), desktop-base (>= 4.0.6) +# See bugs #435983 and #455746 +Conflicts: mdadm (<< 2.6.7-2) +Breaks: lupin-support (<< 0.30) +Multi-Arch: foreign +Description: GRand Unified Bootloader (common files) + This package contains common files shared by the distinct flavours of GRUB. + It is shared between GRUB Legacy and GRUB 2, although a number of files + specific to GRUB 2 are here as long as they do not break GRUB Legacy. + +Package: grub2-common +Priority: optional +Architecture: any-i386 any-amd64 any-powerpc any-ppc64 any-sparc any-mipsel +Depends: grub-common (= ${binary:Version}), dpkg (>= 1.15.4) | install-info, ${shlibs:Depends}, ${misc:Depends} +Replaces: grub, grub-legacy, grub-common (<< 1.99-1), grub-pc (<< 1.99-1), grub-ieee1275 (<< 1.99-1), grub-efi (<< 1.99-1), grub-coreboot (<< 1.99-1), grub-linuxbios (<< 1.99-1), grub-efi-ia32 (<< 1.99-1), grub-efi-amd64 (<< 1.99-1), grub-yeeloong (<< 1.99-1) +Conflicts: grub (<< 0.97-54), grub-legacy, grub-doc (<< 0.97-32), grub-legacy-doc (<< 0.97-59) +Multi-Arch: foreign +Description: GRand Unified Bootloader (common files for version 2) + This package contains common files shared by the distinct flavours of GRUB. + The files in this package are specific to GRUB 2, and would break GRUB + Legacy if installed on the same system. + +Package: grub-emu +Architecture: any-i386 any-amd64 any-powerpc +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}) +Replaces: grub-common (<= 1.97~beta3-1) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (emulated version) + This package contains grub-emu, an emulated version of GRUB. It is only + provided for debugging purposes. + +Package: grub-pc-bin +Priority: optional +Architecture: any-i386 any-amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}) +Replaces: grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-pc (<< 1.99-1) +Suggests: desktop-base (>= 4.0.6) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (PC/BIOS binaries) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + - VESA-based graphical mode with background image support and complete 24-bit + color set. + - Support for extended charsets. Users can write UTF-8 text to their menu + entries. + . + This package contains a version of GRUB that has been built for use with + traditional PC/BIOS architecture. It will not automatically install GRUB + as the active boot loader, nor will it automatically update grub.cfg on + upgrade, so most people should install grub-pc instead. + +Package: grub-pc +Priority: optional +Architecture: any-i386 any-amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-pc-bin (= ${binary:Version}), ucf, freebsd-utils (>= 8.0-4) [kfreebsd-any] +Replaces: grub, grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-ieee1275 +Conflicts: grub (<< 0.97-54), grub-legacy, grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-ieee1275 +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (PC/BIOS version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + - VESA-based graphical mode with background image support and complete 24-bit + color set. + - Support for extended charsets. Users can write UTF-8 text to their menu + entries. + . + This package contains a version of GRUB that has been built for use with + traditional PC/BIOS architecture. + +Package: grub-rescue-pc +Architecture: any-i386 any-amd64 +Depends: ${misc:Depends} +Multi-Arch: foreign +Description: GRUB bootable rescue images, version 2 (PC/BIOS version) + This package contains three GRUB rescue images that have been built for use + with the traditional PC/BIOS architecture: + . + - grub-rescue-floppy.img: floppy image. + - grub-rescue-cdrom.iso: El Torito CDROM image. + - grub-rescue-usb.img: USB image. + +Package: grub-coreboot-bin +Architecture: any-i386 any-amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}) +Replaces: grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-linuxbios, grub-coreboot (<< 1.99-1) +Conflicts: grub-linuxbios (<< ${source:Version}) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Coreboot binaries) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + platforms running the Coreboot firmware. It will not automatically install + GRUB as the active boot loader, nor will it automatically update grub.cfg + on upgrade, so most people should install grub-coreboot instead. + +Package: grub-coreboot +Architecture: any-i386 any-amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-coreboot-bin (= ${binary:Version}), ucf +Replaces: grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-linuxbios, grub-efi-amd64, grub-efi-ia32, grub-pc, grub-ieee1275 +Conflicts: grub (<< 0.97-54), grub-legacy, grub-linuxbios (<< ${source:Version}), grub-efi-amd64, grub-efi-ia32, grub-pc, grub-ieee1275 +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Coreboot version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + platforms running the Coreboot firmware. + +Package: grub-efi-ia32-bin +Architecture: any-i386 any-amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}), efibootmgr [i386 amd64] +Replaces: grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-efi, grub-efi-ia32 (<< 1.99-1) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (EFI-IA32 binaries) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + EFI-IA32 architecture, such as the one provided by Intel Macs (that is, unless + a BIOS interface has been activated). It will not automatically install + GRUB as the active boot loader, nor will it automatically update grub.cfg + on upgrade, so most people should install grub-efi-ia32 instead. + +Package: grub-efi-ia32 +Architecture: any-i386 any-amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-efi-ia32-bin (= ${binary:Version}), ucf +Replaces: grub, grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-efi, grub-efi-amd64, grub-pc, grub-coreboot, grub-ieee1275 +Conflicts: grub (<< 0.97-54), grub-legacy, grub-efi-amd64, grub-pc, grub-coreboot, grub-ieee1275 +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (EFI-IA32 version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + EFI-IA32 architecture, such as the one provided by Intel Macs (that is, unless + a BIOS interface has been activated). + +Package: grub-efi-amd64-bin +Architecture: i386 kopensolaris-i386 any-amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}), efibootmgr [i386 amd64] +Replaces: grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-efi-amd64 (<< 1.99-1) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (EFI-AMD64 binaries) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + EFI-AMD64 architecture, such as the one provided by Intel Macs (that is, unless + a BIOS interface has been activated). It will not automatically install + GRUB as the active boot loader, nor will it automatically update grub.cfg + on upgrade, so most people should install grub-efi-amd64 instead. + +Package: grub-efi-amd64 +Architecture: i386 kopensolaris-i386 any-amd64 +Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-efi-amd64-bin (= ${binary:Version}), ucf +Replaces: grub, grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-pc, grub-efi-ia32, grub-coreboot, grub-ieee1275 +Conflicts: grub, grub-legacy, grub-efi-ia32, grub-pc, grub-coreboot, grub-ieee1275 +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (EFI-AMD64 version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + EFI-AMD64 architecture, such as the one provided by Intel Macs (that is, unless + a BIOS interface has been activated). + +Package: grub-ieee1275-bin +Architecture: any-i386 any-amd64 any-powerpc any-ppc64 any-sparc +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}), + powerpc-ibm-utils [any-powerpc any-ppc64], powerpc-utils [any-powerpc any-ppc64], bc [any-powerpc any-ppc64] +Replaces: grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-ieee1275 (<< 1.99-1) +Suggests: genisoimage [any-powerpc any-ppc64] +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Open Firmware binaries) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + Open Firmware implementations. It will not automatically install GRUB as + the active boot loader, nor will it automatically update grub.cfg on + upgrade, so most people should install grub-ieee1275 instead. + +Package: grub-ieee1275 +Architecture: any-i386 any-amd64 any-powerpc any-ppc64 any-sparc +Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-ieee1275-bin (= ${binary:Version}), ucf +Replaces: grub-legacy, grub2 (<< ${source:Version}), grub-common (<= 1.97~beta2-1), grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-pc +Conflicts: grub (<< 0.97-54), grub-legacy, grub-efi-amd64, grub-efi-ia32, grub-coreboot, grub-pc +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Open Firmware version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + Open Firmware implementations. + +Package: grub-firmware-qemu +Architecture: any-i386 any-amd64 +Depends: ${misc:Depends} +Recommends: qemu +Enhances: qemu +Multi-Arch: foreign +Description: GRUB firmware image for QEMU + This package contains a binary of GRUB that has been built for use as + firmware for QEMU. It can be used as a replacement for the standard + PC BIOS provided by the bochsbios package (bios.bin). + . + In order to make QEMU use this firmware, simply add `-bios grub.bin' when + invoking it. + . + This package behaves in the same way as GRUB for coreboot, but doesn't + contain any code from coreboot itself, and is only suitable for QEMU. If + you want to install GRUB as firmware on real hardware, you need to use the + grub-coreboot package, and manually combine that with coreboot. + +Package: grub-yeeloong-bin +Architecture: any-mipsel +Depends: ${shlibs:Depends}, ${misc:Depends}, grub-common (= ${binary:Version}) +Replaces: grub-common (<< 1.98+20100617-2), grub-yeeloong (<< 1.99-1) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Yeeloong binaries) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + the Lemote Yeeloong laptop. It will not automatically install GRUB as the + active boot loader, nor will it automatically update grub.cfg on upgrade, + so most people should install grub-yeeloong instead. + +Package: grub-yeeloong +Architecture: any-mipsel +Depends: ${shlibs:Depends}, ${misc:Depends}, grub2-common (= ${binary:Version}), grub-yeeloong-bin (= ${binary:Version}), ucf +Replaces: grub-common (<< 1.98+20100617-2) +Multi-Arch: foreign +Description: GRand Unified Bootloader, version 2 (Yeeloong version) + GRUB is a portable, powerful bootloader. This version of GRUB is based on a + cleaner design than its predecessors, and provides the following new features: + . + - Scripting in grub.cfg using BASH-like syntax. + - Support for modern partition maps such as GPT. + - Modular generation of grub.cfg via update-grub. Packages providing GRUB + add-ons can plug in their own script rules and trigger updates by invoking + update-grub2. + . + This package contains a version of GRUB that has been built for use with + the Lemote Yeeloong laptop. + +Package: grub-mount-udeb +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 powerpc ppc64 sparc mipsel +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: export GRUB filesystems using FUSE --- grub2-1.99.orig/debian/templates.in +++ grub2-1.99/debian/templates.in @@ -0,0 +1,45 @@ +Template: grub2/linux_cmdline +Type: string +_Description: Linux command line: + The following Linux command line was extracted from /etc/default/grub or the + `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is correct, + and modify it if necessary. The command line is allowed to be empty. + +Template: grub2/linux_cmdline_default +Type: string +Default: quiet +_Description: Linux default command line: + The following string will be used as Linux parameters for the default menu + entry but not for the recovery mode. + +# still unused +Template: grub2/kfreebsd_cmdline +Type: string +_Description: kFreeBSD command line: + The following kFreeBSD command line was extracted from /etc/default/grub or the + `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is correct, + and modify it if necessary. The command line is allowed to be empty. + +# still unused +Template: grub2/kfreebsd_cmdline_default +Type: string +Default: quiet +_Description: kFreeBSD default command line: + The following string will be used as kFreeBSD parameters for the default menu + entry but not for the recovery mode. + +Template: grub2/device_map_regenerated +Type: note +_Description: /boot/grub/device.map has been regenerated + The file /boot/grub/device.map has been rewritten to use stable device + names. In most cases, this should significantly reduce the need to change + it in future, and boot menu entries generated by GRUB should not be + affected. + . + However, since more than one disk is present in the system, it is possible + that the system is depending on the old device map. Please check whether + there are any custom boot menu entries that rely on GRUB's (hdN) drive + numbering, and update them if necessary. + . + If you do not understand this message, or if there are no custom + boot menu entries, you can ignore this message. --- grub2-1.99.orig/debian/grub-pc.dirs.in +++ grub2-1.99/debian/grub-pc.dirs.in @@ -0,0 +1 @@ +usr/lib/grub-legacy --- grub2-1.99.orig/debian/grub2.postinst +++ grub2-1.99/debian/grub2.postinst @@ -0,0 +1,19 @@ +#! /bin/sh +set -e + +case "$1" in + configure) + if dpkg --compare-versions "$2" lt-nl 1.99-1; then + # Force dpkg to replace this directory with a symlink. + if [ ! -L /usr/share/doc/@PACKAGE@ ] && [ -d /usr/share/doc/@PACKAGE@ ]; then + if rmdir /usr/share/doc/@PACKAGE@ 2>/dev/null; then + ln -sf grub-common /usr/share/doc/@PACKAGE@ + fi + fi + fi + ;; +esac + +#DEBHELPER# + +exit 0 --- grub2-1.99.orig/debian/NEWS +++ grub2-1.99/debian/NEWS @@ -0,0 +1,13 @@ +grub2 (1.96+20090609-1) experimental; urgency=low + + Before this version, grub-efi was 32bit on i386 and 64bit on amd64. + However, EFI can be 32bit even if you have a 64bit CPU, like in the + first MacBook models with Core 2 Duo released in late 2006. Thus, + grub-efi has been split into grub-efi-amd64 and grub-efi-ia32 which are + available on both amd64 and i386. + + If you've experienced problems trying to load grub.efi, please try + again using the package that doesn't match your CPU's architecture. + + -- Felix Zielcke Tue, 09 Jun 2009 19:21:15 +0200 + --- grub2-1.99.orig/debian/grub2.dirs +++ grub2-1.99/debian/grub2.dirs @@ -0,0 +1 @@ +usr/share/bug/grub2 --- grub2-1.99.orig/debian/dirs.in +++ grub2-1.99/debian/dirs.in @@ -0,0 +1,4 @@ +usr/bin +usr/sbin +usr/share/grub +usr/share/bug/@PACKAGE@ --- grub2-1.99.orig/debian/grub-linuxbios.postinst +++ grub2-1.99/debian/grub-linuxbios.postinst @@ -0,0 +1,19 @@ +#! /bin/sh +set -e + +case "$1" in + configure) + if dpkg --compare-versions "$2" lt-nl 1.99-1; then + # Force dpkg to replace this directory with a symlink. + if [ ! -L /usr/share/doc/@PACKAGE@ ] && [ -d /usr/share/doc/@PACKAGE@ ]; then + if rmdir /usr/share/doc/@PACKAGE@ 2>/dev/null; then + ln -sf grub-common /usr/share/doc/@PACKAGE@ + fi + fi + fi + ;; +esac + +#DEBHELPER# + +exit 0 --- grub2-1.99.orig/debian/grub-ieee1275.install.sparc.in +++ grub2-1.99/debian/grub-ieee1275.install.sparc.in @@ -0,0 +1,2 @@ +usr/sbin/grub-setup +usr/share/man/man8/grub-setup.8 --- grub2-1.99.orig/debian/postinst.in +++ grub2-1.99/debian/postinst.in @@ -0,0 +1,685 @@ +#!/bin/bash +set -e + +merge_debconf_into_conf() +{ + local tmpfile; tmpfile="$1" + local setting; setting="$2" + local template; template="$3" + + db_get "$template" + local value; value="$(echo "$RET" | sed -e 's,[$`"\@],\\&,g')" + if grep -q "^${setting}=" "$tmpfile"; then + sed -i -re "s@^(${setting}=).*@\1\"${value}\"@" "$tmpfile" + else + echo >> "$tmpfile" + echo "${setting}=\"${value}\"" >> "$tmpfile" + fi +} + +get_wubi_device() +{ + if [ ! -x /usr/share/lupin-support/grub-mkimage ] || \ + ! /usr/share/lupin-support/grub-mkimage --test; then + return 1 + fi + + local bootdev="$(grub-probe --target=device /boot)" || true + local loop_file= + case $bootdev in + /dev/loop/*|/dev/loop[0-9]) + loop_file="$(losetup "$bootdev" | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/")" + # If it's loop-mounted from another device, it isn't Wubi. + case $loop_file in + /dev/*) return 1 ;; + esac + ;; + *) return 1 ;; + esac + + echo "$bootdev" +} + +# This only works on a Linux system with udev running. This is probably the +# vast majority of systems where we need any of this, though, and we fall +# back reasonably gracefully if we don't have it. +cached_available_ids= +available_ids() +{ + local id path + + if [ "$cached_available_ids" ]; then + echo "$cached_available_ids" + return + fi + + [ -d /dev/disk/by-id ] || return + cached_available_ids="$( + for path in /dev/disk/by-id/*; do + [ -e "$path" ] || continue + printf '%s %s\n' "$path" "$(readlink -f "$path")" + done | sort -k2 -s -u | cut -d' ' -f1 + )" + echo "$cached_available_ids" +} + +# Returns non-zero and no output if no mapping can be found. +device_to_id() +{ + local id + for id in $(available_ids); do + if [ "$(readlink -f "$id")" = "$(readlink -f "$1")" ]; then + echo "$id" + return 0 + fi + done + # Fall back to the plain device name if there's no by-id link for it. + if [ -e "$1" ]; then + echo "$1" + return 0 + fi + return 1 +} + +devices_to_ids() +{ + local device id ids + ids= + for device; do + id="$(device_to_id "$device" || true)" + if [ "$id" ]; then + ids="${ids:+$ids, }$id" + fi + done + echo "$ids" +} + +all_disks() +{ + local id + for id in $(available_ids); do + case $id in + *-part*) ;; + *) echo "$id" ;; + esac + done +} + +all_partitions() +{ + local id ids + ids= + for id in $(available_ids); do + if [ "$id" != "$1" ] && [ "${id%-part*}" = "$1" ]; then + ids="${ids:+$ids }$id" + fi + done + echo "$ids" +} + +# In order to determine whether we accidentally ran grub-install without +# upgrade-from-grub-legacy on versions older than 1.98+20100617-1, we need +# to be able to scan a disk to determine whether GRUB 2 was installed in its +# boot sector. This is specific to i386-pc (but that's the only platform +# where we need it). +scan_grub2() +{ + if ! dd if="$1" bs=512 count=1 2>/dev/null | grep -aq GRUB; then + # No version of GRUB is installed. + return 1 + fi + + # The GRUB boot sector always starts with a JMP instruction. + initial_jmp="$(dd if="$1" bs=2 count=1 2>/dev/null | od -Ax -tx1 | \ + head -n1 | cut -d' ' -f2,3)" + [ "$initial_jmp" ] || return 1 + initial_jmp_opcode="${initial_jmp%% *}" + [ "$initial_jmp_opcode" = eb ] || return 1 + initial_jmp_operand="${initial_jmp#* }" + case $initial_jmp_operand in + 47|4b|4c|63) + # I believe this covers all versions of GRUB 2 up to the package + # version where we gained a more explicit mechanism. GRUB Legacy + # always had 48 here. + return 0 + ;; + esac + + return 1 +} + +# for Linux +sysfs_size() +{ + local num_sectors sector_size size + # Try to find out the size without relying on a partitioning tool being + # installed. This isn't too hard on Linux 2.6 with sysfs, but we have to + # try a couple of variants on detection of the sector size. + if [ -e "$1/size" ]; then + num_sectors="$(cat "$1/size")" + sector_size=512 + if [ -e "$1/queue/logical_block_size" ]; then + sector_size="$(cat "$1/queue/logical_block_size")" + elif [ -e "$1/queue/hw_sector_size" ]; then + sector_size="$(cat "$1/queue/hw_sector_size")" + fi + size="$(expr "$num_sectors" \* "$sector_size" / 1000 / 1000)" + fi + [ "$size" ] || size='???' + echo "$size" +} + +# for kFreeBSD +camcontrol_size() +{ + local num_sectors sector_size size= + + if num_sectors="$(camcontrol readcap "$1" -q -s -N)"; then + sector_size="$(camcontrol readcap "$1" -q -b)" + size="$(expr "$num_sectors" \* "$sector_size" / 1000 / 1000)" + fi + + [ "$size" ] || size='???' + echo "$size" +} + +# Returns value in $RET, like a debconf command. +describe_disk() +{ + local disk id base size + disk="$1" + id="$2" + + model= + case $(uname -s) in + Linux) + if which udevadm >/dev/null 2>&1; then + size="$(sysfs_size "/sys$(udevadm info -n "$disk" -q path)")" + else + base="${disk#/dev/}" + base="$(printf %s "$base" | sed 's,/,!,g')" + size="$(sysfs_size "/sys/block/$base")" + fi + + if which udevadm >/dev/null 2>&1; then + model="$(udevadm info -n "$disk" -q property | sed -n 's/^ID_MODEL=//p')" + if [ -z "$model" ]; then + model="$(udevadm info -n "$disk" -q property | sed -n 's/^DM_NAME=//p')" + if [ -z "$model" ]; then + model="$(udevadm info -n "$disk" -q property | sed -n 's/^MD_NAME=//p')" + if [ -z "$model" ] && which dmsetup >/dev/null 2>&1; then + model="$(dmsetup info -c --noheadings -o name "$disk" 2>/dev/null || true)" + fi + fi + fi + fi + ;; + GNU/kFreeBSD) + disk_basename=$(basename "$disk") + size="$(camcontrol_size "$disk_basename")" + model="$(camcontrol inquiry "$disk_basename" | sed -ne "s/^pass0: <\([^>]*\)>.*/\1/p")" + ;; + esac + + [ "$model" ] || model='???' + + db_subst grub-pc/disk_description DEVICE "$disk" + db_subst grub-pc/disk_description SIZE "$size" + db_subst grub-pc/disk_description MODEL "$model" + db_metaget grub-pc/disk_description description +} + +# Returns value in $RET, like a debconf command. +describe_partition() +{ + local disk part id path diskbase partbase size + disk="$1" + part="$2" + id="$3" + path="$4" + + if which udevadm >/dev/null 2>&1; then + size="$(sysfs_size "/sys$(udevadm info -n "$part" -q path)")" + else + diskbase="${disk#/dev/}" + diskbase="$(printf %s "$diskbase" | sed 's,/,!,g')" + partbase="${part#/dev/}" + partbase="$(printf %s "$partbase" | sed 's,/,!,g')" + size="$(sysfs_size "/sys/block/$diskbase/$partbase")" + fi + + db_subst grub-pc/partition_description DEVICE "$part" + db_subst grub-pc/partition_description SIZE "$size" + db_subst grub-pc/partition_description PATH "$path" + db_metaget grub-pc/partition_description description +} + +usable_partitions() +{ + local last_partition path partition partition_id + + last_partition= + for path in / /boot /boot/grub; do + partition="$(grub-probe -t device "$path" || true)" + if [ -z "$partition" ] || [ "$partition" = "$last_partition" ]; then + continue + fi + partition_id="$(device_to_id "$partition" || true)" + echo "$path:$partition_id" + last_partition="$partition" + done | sort -t: -k2 +} + +get_mountpoint() +{ + local relpath boot_mountpoint + + relpath="$(grub-mkrelpath "$1")" + boot_mountpoint="${1#$relpath}" + echo "${boot_mountpoint:-/}" +} + +config_item() +{ + if [ -f /etc/default/grub ]; then + . /etc/default/grub || return + fi + eval echo "\$$1" +} + +case "$1" in + configure) + . /usr/share/debconf/confmodule + + if dpkg --compare-versions "$2" lt-nl 1.99-1; then + # Force dpkg to replace this directory with a symlink. + if [ ! -L /usr/share/doc/@PACKAGE@ ] && [ -d /usr/share/doc/@PACKAGE@ ]; then + if rmdir /usr/share/doc/@PACKAGE@ 2>/dev/null; then + ln -sf grub-common /usr/share/doc/@PACKAGE@ + fi + fi + fi + + devicemap_regenerated= + + if egrep -q '^[[:space:]]*post(inst|rm)_hook[[:space:]]*=[[:space:]]*(/sbin/|/usr/sbin/)?update-grub' /etc/kernel-img.conf 2>/dev/null; then + echo 'Removing update-grub hooks from /etc/kernel-img.conf in favour of' >&2 + echo '/etc/kernel/ hooks.' >&2 + sed -ri /etc/kernel-img.conf -e '\%^[[:space:]]*post(inst|rm)_hook[[:space:]]*=[[:space:]]*(/sbin/|/usr/sbin/)?update-grub%d' + fi + + case @PACKAGE@ in + grub-pc) + mkdir -p /boot/grub + + if test -e /boot/grub/device.map && ! test -e /boot/grub/core.img ; then + # Looks like your device.map was generated by GRUB Legacy, which + # used to generate broken device.map (see #422851). Avoid the risk + # by regenerating it. + grub-mkdevicemap --no-floppy + devicemap_regenerated=1 + fi + ;; + esac + + if test -z "$devicemap_regenerated" && test -s /boot/grub/device.map && \ + dpkg --compare-versions "$2" lt-nl 1.98+20100702-1 && \ + test "$(uname -s)" = Linux; then + # Earlier versions of GRUB used unstable device names in device.map, + # which caused a variety of problems. There is some risk associated with + # regenerating it (so we prompt the user if it's non-trivial), but on the + # whole it's less risky to move to /dev/disk/by-id/. + devicemap_lines="$(egrep -v '^[[:space:]]+#' /boot/grub/device.map | wc -l)" + grub-mkdevicemap --no-floppy + devicemap_regenerated=1 + if test "$devicemap_lines" != 1; then + db_input critical grub2/device_map_regenerated || true + db_go || true + fi + fi + + if test -z "$devicemap_regenerated" && \ + dpkg --compare-versions "$2" lt-nl 1.99~20101210-2 && \ + grep -qs /md-uuid- /boot/grub/device.map; then + echo "Removing MD devices from device.map, since the BIOS cannot read from these." >&2 + sed -i '/\/md-uuid-/d' /boot/grub/device.map + fi + + tmp_default_grub="$(mktemp -t grub.XXXXXXXXXX)" + trap "rm -f ${tmp_default_grub}" EXIT + cp -p /usr/share/grub/default/grub ${tmp_default_grub} + + merge_debconf_into_conf "$tmp_default_grub" GRUB_CMDLINE_LINUX grub2/linux_cmdline + merge_debconf_into_conf "$tmp_default_grub" GRUB_CMDLINE_LINUX_DEFAULT grub2/linux_cmdline_default + + ucf --three-way --debconf-ok --sum-file=/usr/share/grub/default/grub.md5sum ${tmp_default_grub} /etc/default/grub + package="$(ucfq --with-colons /etc/default/grub | cut -d : -f 2)" + if echo $package | grep -q "^grub-" ; then + ucfr --force @PACKAGE@ /etc/default/grub + else + ucfr @PACKAGE@ /etc/default/grub + fi + + case @PACKAGE@ in + grub-pc) + + fix_mixed_system= + if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && \ + ! test -e /boot/grub/grub2-installed && \ + test -z "$UPGRADE_FROM_GRUB_LEGACY"; then + # Unfortunately, it's still possible that the user upgraded fully + # to GRUB 2 in some way other than running + # upgrade-from-grub-legacy; perhaps they ran grub-install by hand + # for some reason. It's really quite difficult to detect this + # situation, because the only difference between this and a + # working chainloaded setup is that in this case grub-setup has + # been run. So, to try to tell the difference, we scan the boot + # sectors of all disks for a GRUB 2 boot sector. Hopefully this + # won't cause too much to explode, since I can't think of a better + # method. + grub2_disks= + for disk in $(all_disks); do + if scan_grub2 "$disk"; then + grub2_disks="${grub2_disks:+$grub2_disks }$(readlink -f "$disk")" + fi + done + if [ "$grub2_disks" ]; then + # No || true here; it's vital that the user sees this, and it's + # better to throw an error than to do the wrong thing. + db_subst grub-pc/mixed_legacy_and_grub2 DISKS "$grub2_disks" + db_input critical grub-pc/mixed_legacy_and_grub2 + db_go + db_get grub-pc/mixed_legacy_and_grub2 + if [ "$RET" = true ]; then + db_reset grub-pc/install_devices + UPGRADE_FROM_GRUB_LEGACY=1 + fix_mixed_system=1 + # Fall through to normal installation logic. + fi + fi + fi + + # Make sure that Wubi users never see confusing device prompts. + # Wubi is a very specialised hack that does complicated things with + # grub-install diversions to create an image that's chained from the + # Windows boot loader to boot an operating system from a file on a + # Windows file system. In these circumstances, prompting for where + # to install GRUB is not going to help anyone. + wubi_device="$(get_wubi_device)" || true + if [ "$wubi_device" ]; then + db_set grub-pc/install_devices "$wubi_device" + db_fset grub-pc/install_devices seen true + fi + + if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && \ + ! test -e /boot/grub/grub2-installed && \ + test -z "$UPGRADE_FROM_GRUB_LEGACY"; then + db_get grub-pc/chainload_from_menu.lst + if $RET ; then + # Create core.img (but do not risk writing to MBR). + # Using grub-probe instead of "(hd0)" avoids (UUID=) hack slowness + # in case /boot/grub is not on (hd0) in device.map. + echo "Generating core.img" >&2 + grub-install --no-floppy --grub-setup=/bin/true "$(grub-probe -t drive /boot/grub)" > /dev/null + + # Update menu.lst to reflect that: + # - core.img is present now + # - core.img has to be the first option + echo "Saving menu.lst backup in /boot/grub/menu.lst_backup_by_grub2_postinst" >&2 + cp /boot/grub/menu.lst{,_backup_by_grub2_postinst} + echo "Running update-grub Legacy to hook our core.img in it" >&2 + LET_US_TRY_GRUB_2=true /usr/lib/grub-legacy/update-grub 2>&1 | sed -e "s/^/ /g" >&2 + # We just hooked GRUB 2 in menu.lst; then also generate grub.cfg. + touch /boot/grub/grub.cfg + fi + elif test -z "$2" || test -e /boot/grub/core.img || \ + test "$UPGRADE_FROM_GRUB_LEGACY" || test "$wubi_device"; then + question=grub-pc/install_devices + device_map="$(grub-mkdevicemap -m - | grep -v '^(fd[0-9]\+)' || true)" + devices="$(echo "$device_map" | cut -f2)" + if dpkg --compare-versions "$2" lt 1.98+20100702-1 && \ + test "$(uname -s)" = Linux && [ -z "$wubi_device" ]; then + # Migrate to new by-id naming scheme. + db_get grub-pc/install_devices + old_devices="$(echo "$RET" | sed 's/, / /g')" + new_devices= + # Common-case optimisation: if the list of devices is + # identical to the LHS of grub-mkdevicemap's output, then + # there's no point asking again; just install to all disks. + # (This handles e.g. "(hd0)" with one disk.) + if [ "$(echo "$device_map" | cut -f1 | sort)" = \ + "$(echo "$old_devices" | xargs -n1 | sort)" ]; then + new_devices="$(devices_to_ids $devices)" + db_set grub-pc/install_devices "$new_devices" + # Alternatively, we might be installing to a single partition + # on a single disk, and we can deal with that too if there's + # only one available disk and it has an appropriate partition. + # This doesn't necessarily work for multiple disks because now + # the order matters. + elif [ "$(echo "$device_map" | wc -l)" = 1 ] && \ + [ "$(echo "$old_devices" | wc -w)" = 1 ] && \ + echo "$old_devices" | grep -q ,; then + old_device="${old_devices#(}" + old_device="${old_device%)}" + old_disk="${old_device%,*}" + old_partition="${old_device##*,}" + new_device="$(echo "$device_map" | grep "^($old_disk)" | \ + cut -f2)" + new_device="$(device_to_id $new_device)" + if [ "$new_device" ]; then + new_device="$new_device-part$old_partition" + # Run through device_to_id again to check for existence. + new_device="$(device_to_id $new_device)" + fi + if [ "$new_device" ]; then + new_devices="$new_device" + db_set grub-pc/install_devices "$new_device" + fi + fi + if [ -z "$new_devices" ]; then + new_devices="$(devices_to_ids $old_devices)" + db_set grub-pc/install_devices "$new_devices" + # Common-case optimisation: if all devices are translatable + # to by-id and the number of devices there is the same as + # the number of devices GRUB can see, then there's no point + # asking again. (This handles e.g. "/dev/sda" with one + # disk.) + old_devices_count="$(echo "$old_devices" | wc -w)" + new_devices_count="$(echo "$new_devices" | wc -w)" + devices_count="$(echo "$devices" | wc -w)" + if [ "$old_devices_count" != "$new_devices_count" ] || \ + [ "$new_devices_count" != "$devices_count" ]; then + db_fset grub-pc/install_devices seen false + db_fset grub-pc/install_devices_empty seen false + fi + fi + else + db_get grub-pc/install_devices + valid=1 + for device in $RET; do + if [ ! -e "${device%,}" ]; then + valid=0 + break + fi + done + if [ "$valid" = 0 ]; then + question=grub-pc/install_devices_disks_changed + db_set "$question" "$RET" + db_fset "$question" seen false + db_fset grub-pc/install_devices_empty seen false + fi + fi + + while :; do + ids= + descriptions= + partitions="$(usable_partitions)" + for device in $devices; do + disk_id="$(device_to_id "$device" || true)" + if [ "$disk_id" ]; then + ids="${ids:+$ids, }$disk_id" + describe_disk "$(readlink -f "$device")" "$disk_id" + RET="$(printf %s "$RET" | sed 's/,/\\,/g')" + descriptions="${descriptions:+$descriptions, }$RET" + for partition_pair in $partitions; do + partition_id="${partition_pair#*:}" + if [ "${partition_id#$disk_id-part}" != "$partition_id" ]; then + ids="${ids:+$ids, }$partition_id" + describe_partition "$(readlink -f "$device")" "$(readlink -f "$partition_id")" "$partition_id" "$(get_mountpoint "${partition_pair%%:*}")" + RET="$(printf %s "$RET" | sed 's/,/\\,/g')" + descriptions="${descriptions:+$descriptions, }$RET" + fi + done + fi + done + # Some "partitions" may in fact be at the disk level, e.g. RAID. + # List these as well if they haven't already been listed. + for partition_pair in $partitions; do + partition_id="${partition_pair#*:}" + if [ "${partition_id#*-part}" = "$partition_id" ]; then + case ", $ids, " in + ", $partition_id, ") ;; + *) + ids="${ids:+$ids, }$partition_id" + describe_disk "$(readlink -f "$partition_id")" "$partition_id" + RET="$(printf %s "$RET" | sed 's/,/\\,/g')" + descriptions="${descriptions:+$descriptions, }$RET" + ;; + esac + fi + done + db_subst "$question" RAW_CHOICES "$ids" + db_subst "$question" CHOICES "$descriptions" + db_input high "$question" || true + db_go + db_get "$question" + failed_devices= + for i in `echo $RET | sed -e 's/, / /g'` ; do + real_device="$(readlink -f "$i")" + if grub-install --force --no-floppy $real_device ; then + # We just installed GRUB 2; then also generate grub.cfg. + touch /boot/grub/grub.cfg + else + failed_devices="$failed_devices $real_device" + fi + done + + if [ "$question" != grub-pc/install_devices ]; then + db_set grub-pc/install_devices "$RET" + db_fset grub-pc/install_devices seen true + fi + + if [ "$failed_devices" ]; then + if [ "$UPGRADE_FROM_GRUB_LEGACY" ]; then + db_subst grub-pc/install_devices_failed_upgrade FAILED_DEVICES "$failed_devices" + db_fset grub-pc/install_devices_failed_upgrade seen false + if db_input critical grub-pc/install_devices_failed_upgrade; then + db_go + db_get grub-pc/install_devices_failed_upgrade + if [ "$RET" = true ]; then + db_fset "$question" seen false + db_fset grub-pc/install_devices_failed_upgrade seen false + continue + else + exit 1 + fi + else + exit 1 # noninteractive + fi + else + db_subst grub-pc/install_devices_failed FAILED_DEVICES "$failed_devices" + db_fset grub-pc/install_devices_failed seen false + if db_input critical grub-pc/install_devices_failed; then + db_go + db_get grub-pc/install_devices_failed + if [ "$RET" = true ]; then + break + else + db_fset "$question" seen false + db_fset grub-pc/install_devices_failed seen false + continue + fi + else + break # noninteractive + fi + fi + fi + + db_get grub-pc/install_devices + if [ -z "$RET" ]; then + # Reset the seen flag if the current answer is false, since + # otherwise we'll loop with no indication of why. + db_get grub-pc/install_devices_empty + if [ "$RET" = false ]; then + db_fset grub-pc/install_devices_empty seen false + fi + if db_input critical grub-pc/install_devices_empty; then + db_go + db_get grub-pc/install_devices_empty + if [ "$RET" = true ]; then + break + else + db_fset "$question" seen false + db_fset grub-pc/install_devices_empty seen false + fi + else + break # noninteractive + fi + else + break + fi + done + fi + + # /boot/grub/ has more chances of being accessible by GRUB + if test -e /boot/grub/grub.cfg ; then + for i in /usr/share/grub/unicode.pf2 ; do + if test -e $i ; then + cp $i /boot/grub/ + fi + done + fi + + if [ "$fix_mixed_system" ]; then + # These never contain any valuable information, and they aren't + # useful for boot any more, since we just overwrote MBR/PBR. + rm -f /boot/grub/{{xfs,reiserfs,e2fs,fat,jfs,minix}_stage1_5,stage{1,2}} + # Remove marker file used to indicate that grub-install was run + # rather than upgrade-from-grub-legacy. Since stage2 has been + # removed, we don't need this any more. + rm -f /boot/grub/grub2-installed + fi + ;; + + grub-efi-ia32|grub-efi-amd64) + bootloader_id="$(config_item GRUB_DISTRIBUTOR | tr A-Z a-z | \ + cut -d' ' -f1)" + if [ "$bootloader_id" ] && [ -d "/boot/efi/EFI/$bootloader_id" ]; then + grub-install + fi + ;; + + grub-yeeloong) + grub-install + ;; + esac + + # If grub.cfg has been generated, update it. + if test -e /boot/grub/grub.cfg ; then + update-grub 3>&- + fi + ;; + abort-upgrade|abort-remove|abort-deconfigure) + ;; + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- grub2-1.99.orig/debian/grub-firmware-qemu.dirs +++ grub2-1.99/debian/grub-firmware-qemu.dirs @@ -0,0 +1 @@ +usr/share/qemu --- grub2-1.99.orig/debian/copyright +++ grub2-1.99/debian/copyright @@ -0,0 +1,25 @@ +Name: GNU GRUB +Source: http://www.gnu.org/software/grub/ + +Files: * +Copyright: 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc +License: GPL-3+ + + +Files: debian/* +Copyright: 2003, 2004, 2005, 2006, 2007, 2008, 2009, Robert Millan + 2005, 2006, 2007, Otavio Salvador + 2008, 2009, Felix Zielcke + 2009, Jordi Mallach +License: GPL-3+ + +Files: debian/grub-extras/* +Copyright: Nathan Coulson + 2003, 2007 Free Software Foundation, Inc + 2003 NIIBE Yutaka +License: GPL-3+ + +License: GPL-3+ + On Debian systems the full text of the GNU General Public + License can be found in the `/usr/share/common-licenses/GPL' + file. --- grub2-1.99.orig/debian/grub-pc.prerm +++ grub2-1.99/debian/grub-pc.prerm @@ -0,0 +1,28 @@ +#!/bin/bash +set -e + +case "$1" in + remove|deconfigure) + . /usr/share/debconf/confmodule + db_get grub-pc/chainload_from_menu.lst + if $RET && test -e /boot/grub/menu.lst ; then + echo "Saving menu.lst backup in /boot/grub/menu.lst_backup_by_grub2_prerm" >&2 + cp /boot/grub/menu.lst{,_backup_by_grub2_prerm} + echo "Running update-grub Legacy to remove our core.img in it" >&2 + /usr/lib/grub-legacy/update-grub 2>&1 | sed -e "s/^/ /g" >&2 + fi + ;; + failed-upgrade|upgrade) + ;; + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- grub2-1.99.orig/debian/grub-common.dirs +++ grub2-1.99/debian/grub-common.dirs @@ -0,0 +1 @@ +usr/sbin --- grub2-1.99.orig/debian/grub-rescue-pc.README.Debian +++ grub2-1.99/debian/grub-rescue-pc.README.Debian @@ -0,0 +1,22 @@ +grub-rescue-pc +~~~~~~~~~~~~~~ + +How to test the images with qemu: + + qemu -fda /usr/lib/grub-rescue/grub-rescue-floppy.img + + qemu -cdrom /usr/lib/grub-rescue/grub-rescue-cdrom.iso + + qemu -hda /usr/lib/grub-rescue/grub-rescue-usb.img + +How to write the images to bootable media: + + sudo dd if=/usr/lib/grub-rescue/grub-rescue-floppy.img of=/dev/fd0 bs=32k + + sudo wodim /usr/lib/grub-rescue/grub-rescue-cdrom.iso + # or just use your favourite CD burning program + + sudo dd if=/usr/lib/grub-rescue/grub-rescue-usb.img of=DEVICE bs=32k + # where DEVICE is something like /dev/sdb, corresponding to your USB + # stick's device name; be VERY CAREFUL that this is the correct device as + # otherwise you could destroy data on your hard disk! --- grub2-1.99.orig/debian/grub-pc.install.in +++ grub2-1.99/debian/grub-pc.install.in @@ -0,0 +1,4 @@ +../../debian/legacy/update-grub usr/lib/grub-legacy +../../debian/legacy/upgrade-from-grub-legacy usr/sbin + +usr/share/man/man8/grub-setup.8 --- grub2-1.99.orig/debian/preinst.in +++ grub2-1.99/debian/preinst.in @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +case "$1" in + install|upgrade) + if dpkg --compare-versions "$2" lt 1.98+20100804-2 && \ + test -h /etc/kernel/postrm.d/zz-update-grub; then + rm -f /etc/kernel/postrm.d/zz-update-grub + fi + ;; +esac + +#DEBHELPER# + +exit 0 --- grub2-1.99.orig/debian/grub-pc.links.in +++ grub2-1.99/debian/grub-pc.links.in @@ -0,0 +1,2 @@ +usr/lib/grub/@CPU_PLATFORM@/grub-ntldr-img usr/bin/grub-ntldr-img +usr/lib/grub/@CPU_PLATFORM@/grub-setup usr/sbin/grub-setup --- grub2-1.99.orig/debian/grub2-common.install +++ grub2-1.99/debian/grub2-common.install @@ -0,0 +1,8 @@ +../../debian/default usr/share/grub +../../debian/update-grub usr/sbin + +usr/sbin/grub-reboot +usr/sbin/grub-set-default +usr/share/info +usr/share/man/man8/grub-reboot.8 +usr/share/man/man8/grub-set-default.8 --- grub2-1.99.orig/debian/grub-rescue-pc.links +++ grub2-1.99/debian/grub-rescue-pc.links @@ -0,0 +1,3 @@ +# Truth would be uselessly confusing for users. Let's give 'em what they +# wanted instead. +usr/lib/grub-rescue/grub-rescue-cdrom.iso usr/lib/grub-rescue/grub-rescue-usb.img --- grub2-1.99.orig/debian/script +++ grub2-1.99/debian/script @@ -0,0 +1,61 @@ +#!/bin/bash +set -e + +if test -e /boot/grub/setup_left_core_image_in_filesystem ; then + echo >&3 + echo "*********************** WARNING grub-setup left core.img in filesystem" >&3 +fi + +for i in /proc/mounts ; do + if test -e $i ; then + echo >&3 + echo "*********************** BEGIN $i" >&3 + grep ^/dev/ $i >&3 + echo "*********************** END $i" >&3 + fi +done + +for i in /boot/grub/{device.map,grub.cfg} ; do + if ! test -e $i ; then + continue + fi + echo >&3 + echo "*********************** BEGIN $i" >&3 + if test -r $i ; then + sed $i -e "s/.*password.*/### PASSWORD LINE REMOVED ###/g" >&3 + else + echo "$i is not readable by you. Please enter your root password." + echo "Any password line in it gets removed." + su root -c "sed $i -e 's/.*password.*/### PASSWORD LINE REMOVED ###/g'" >&3 + fi + echo "*********************** END $i" >&3 +done + +echo >&3 +echo "*********************** BEGIN /proc/mdstat" >&3 +cat /proc/mdstat >&3 2>&1 || true +echo "*********************** END /proc/mdstat" >&3 + +cat <&3 + echo "*********************** BEGIN LVM" >&3 + su root -c "vgdisplay; pvdisplay; lvdisplay" >&3 + echo "*********************** END LVM" >&3 +fi + +echo >&3 +echo "*********************** BEGIN /dev/disk/by-id" >&3 +ls -l /dev/disk/by-id >&3 2>&1 || true +echo "*********************** END /dev/disk/by-id" >&3 + +echo >&3 +echo "*********************** BEGIN /dev/disk/by-uuid" >&3 +ls -l /dev/disk/by-uuid >&3 2>&1 || true +echo "*********************** END /dev/disk/by-uuid" >&3 + +exit 0 --- grub2-1.99.orig/debian/links.in +++ grub2-1.99/debian/links.in @@ -0,0 +1,2 @@ +usr/lib/grub/@CPU_PLATFORM@/grub-install usr/sbin/grub-install +usr/lib/grub/@CPU_PLATFORM@/grub-mknetdir usr/sbin/grub-mknetdir --- grub2-1.99.orig/debian/grub-rescue-pc.install +++ grub2-1.99/debian/grub-rescue-pc.install @@ -0,0 +1,2 @@ +build/grub-rescue-pc/grub-rescue-cdrom.iso usr/lib/grub-rescue +build/grub-rescue-pc/grub-rescue-floppy.img usr/lib/grub-rescue --- grub2-1.99.orig/debian/install-bin.in +++ grub2-1.99/debian/install-bin.in @@ -0,0 +1,6 @@ +../../debian/presubj usr/share/bug/@PACKAGE@ +../../debian/script usr/share/bug/@PACKAGE@ + +usr/lib/grub/@CPU_PLATFORM@/ +usr/sbin/grub-install usr/lib/grub/@CPU_PLATFORM@ +usr/sbin/grub-mknetdir usr/lib/grub/@CPU_PLATFORM@ --- grub2-1.99.orig/debian/grub-common.install.linux.in +++ grub2-1.99/debian/grub-common.install.linux.in @@ -0,0 +1,2 @@ +usr/bin/grub-mount +usr/share/man/man1/grub-mount.1 --- grub2-1.99.orig/debian/update-grub.8 +++ grub2-1.99/debian/update-grub.8 @@ -0,0 +1,14 @@ +.\" Copyright 2009 Felix Zielcke +.\" Lincensed under GPL3+ +.TH UPDATE-GRUB "8" "April 2009" +.SH NAME +update-grub, update-grub2 \- stub for grub-mkconfig +.SH SYNOPSIS +.B update-grub +.SH DESCRIPTION +.B update-grub +is a stub for running +.B grub-mkconfig -o /boot/grub/grub.cfg +to generate a grub2 config file. +.SH "SEE ALSO" +.BR grub-mkconfig (8) --- grub2-1.99.orig/debian/install.in +++ grub2-1.99/debian/install.in @@ -0,0 +1,7 @@ +../../debian/presubj usr/share/bug/@PACKAGE@ +../../debian/script usr/share/bug/@PACKAGE@ +../../debian/kernel/zz-update-grub etc/kernel/postinst.d +../../debian/kernel/zz-update-grub etc/kernel/postrm.d + +usr/share/man/man8/grub-install.8 +usr/share/man/man8/grub-mknetdir.8 --- grub2-1.99.orig/debian/presubj +++ grub2-1.99/debian/presubj @@ -0,0 +1,23 @@ + +MAKE SURE YOU ARE RUNNING THE LATEST VERSION + +The grub packages never update the installed version of GRUB +automatically, except if you choose a device in the debconf prompt +`GRUB install devices', which is currently only implemented for grub-pc. + +Because of this, you need to make sure you're running the LATEST VERSION of +GRUB before you report a bug. Use grub-install to update it, and then check +if the bug still applies. Debugging problems we already fixed makes us waste +valuable time, so please try to avoid it. + +IMPORTANT NOTE WHEN SUBMITTING PATCHES + +Like many other FSF projects, GRUB upstream has specific requirements for +accepting patches with regard to copyright assignment. If you're going to +submit a patch, it is likely that it will only be accepted in upstream if you're +willing to submit your paperwork as well. + +Because of this, we want to avoid diverging from upstream by adding patches to +the Debian package unless we know the copyright issues can be sorted out. We +encourage you to submit your work to upstream directly by sending a mail to the +GRUB maintainers . --- grub2-1.99.orig/debian/grub.d/05_debian_theme +++ grub2-1.99/debian/grub.d/05_debian_theme @@ -0,0 +1,158 @@ +#!/bin/sh +set -e + +# grub-mkconfig helper script. +# Copyright (C) 2010 Alexander Kurtz +# +# GRUB 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. +# +# GRUB 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 GRUB. If not, see . + +# Include the GRUB helper library for grub-mkconfig. +. /usr/lib/grub/grub-mkconfig_lib + +# We want to work in /boot/grub/ only. +test -d "${GRUB_PREFIX}"; cd "${GRUB_PREFIX}" + +# Set the location of a possibly necessary cache file for the background image. +# NOTE: This MUST BE A DOTFILE to avoid confusing it with user-defined images. +BACKGROUND_CACHE=".background_cache" + +set_default_theme(){ + # Set the traditional Debian blue theme. + echo "${1}set menu_color_normal=cyan/blue" + echo "${1}set menu_color_highlight=white/blue" +} + +set_background_image(){ + # Step #1: Search all available output modes ... + local output + for output in ${GRUB_TERMINAL_OUTPUT}; do + if [ "x$output" = "xgfxterm" ]; then + break + fi + done + + # ... and check if we are able to display a background image at all. + if ! [ "x${output}" = "xgfxterm" ]; then + return 1 + fi + + # Step #2: Check if the specified background image exists. + if ! [ -f "${1}" ]; then + return 2 + fi + + # Step #3: Search the correct GRUB module for our background image. + local reader + case "${1}" in + *.jpg|*.JPG|*.jpeg|*.JPEG) reader="jpeg";; + *.png|*.PNG) reader="png";; + *.tga|*.TGA) reader="tga";; + *) return 3;; # Unknown image type. + esac + + # Step #4: Check if the necessary GRUB module is available. + if ! [ -f "${reader}.mod" ]; then + return 4 + fi + + # Step #5: Check if GRUB can read the background image directly. + # If so, we can remove the cache file (if any). Otherwise the backgound + # image needs to be cached under /boot/grub/. + if is_path_readable_by_grub "${1}"; then + rm --force "${BACKGROUND_CACHE}.jpeg" \ + "${BACKGROUND_CACHE}.png" "${BACKGROUND_CACHE}.tga" + elif cp "${1}" "${BACKGROUND_CACHE}.${reader}"; then + set -- "${BACKGROUND_CACHE}.${reader}" "${2}" "${3}" + else + return 5 + fi + + # Step #6: Prepare GRUB to read the background image. + if ! prepare_grub_to_access_device "`${grub_probe} --target=device "${1}"`"; then + return 6 + fi + + # Step #7: Everything went fine, print out a message to stderr ... + echo "Found background image: ${1}" >&2 + + # ... and write our configuration snippet to stdout. Use the colors + # desktop-base specified. If we're using a user-defined background, use + # the default colors since we've got no idea how the image looks like. + # If loading the background image fails, use the default theme. + echo "insmod ${reader}" + echo "if background_image `make_system_path_relative_to_its_root "${1}"`; then" + if [ -n "${2}" ]; then + echo " set color_normal=${2}" + fi + if [ -n "${3}" ]; then + echo " set color_highlight=${3}" + fi + if [ -z "${2}" ] && [ -z "${3}" ]; then + echo " true" + fi + echo "else" + set_default_theme " " + echo "fi" +} + +# Earlier versions of grub-pc copied the default background image to /boot/grub +# during postinst. Remove those obsolete images if they haven't been touched by +# the user. They are still available under /usr/share/images/desktop-base/ if +# desktop-base is installed. +while read checksum background; do + if [ -f "${background}" ] && [ "x`sha1sum "${background}"`" = "x${checksum} ${background}" ]; then + echo "Removing old background image: ${background}" >&2 + rm "${background}" + fi +done <= '0' && *q <= '9') ++ { ++ free (map[drive].drive); ++ map[drive].drive = NULL; ++ grub_util_info ("`%s' looks like a floppy drive, skipping", p); ++ continue; ++ } ++ } ++ + #ifdef __linux__ + /* On Linux, the devfs uses symbolic links horribly, and that + confuses the interface very much, so use realpath to expand --- grub2-1.99.orig/debian/patches/dpkg_version_comparison.patch +++ grub2-1.99/debian/patches/dpkg_version_comparison.patch @@ -0,0 +1,30 @@ +Description: Improve handling of Debian kernel version numbers +Author: Robert Millan +Forwarded: not-needed +Last-Update: 2011-04-21 + +Index: b/util/grub-mkconfig_lib.in +=================================================================== +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -172,8 +172,9 @@ + + version_test_gt () + { +- local a="`echo "$1" | sed -e "s/[^-]*-//"`" +- local b="`echo "$2" | sed -e "s/[^-]*-//"`" ++ local sedexp="s/[^-]*-//;s/[._-]\(pre\|rc\|test\|git\|old\|trunk\)/~\1/g" ++ local a="`echo "$1" | sed -e "$sedexp"`" ++ local b="`echo "$2" | sed -e "$sedexp"`" + local cmp=gt + if [ "x$b" = "x" ] ; then + return 0 +@@ -183,7 +184,7 @@ + *.old:*) a="`echo -n "$a" | sed -e 's/\.old$//'`" ; cmp=gt ;; + *:*.old) b="`echo -n "$b" | sed -e 's/\.old$//'`" ; cmp=ge ;; + esac +- version_test_numeric "$a" "$cmp" "$b" ++ dpkg --compare-versions "$a" $cmp "$b" + return "$?" + } + --- grub2-1.99.orig/debian/patches/mkrescue_diet.patch +++ grub2-1.99/debian/patches/mkrescue_diet.patch @@ -0,0 +1,54 @@ +Description: Allow reducing size of xorriso-created rescue images + This lets us create smaller images that will fit on floppy disks. It has + been approved by the upstream maintainer but has not yet been applied. +Author: Thomas Schmitt +Origin: other, http://lists.gnu.org/archive/html/grub-devel/2010-05/msg00100.html +Forwarded: yes +Last-Update: 2010-06-02 + +Index: b/util/grub-mkrescue.in +=================================================================== +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -44,6 +44,7 @@ + grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}` + + xorriso=xorriso ++diet=no + + # Usage: usage + # Print the usage. +@@ -59,6 +60,7 @@ + --rom-directory=DIR save rom images in DIR [optional] + --xorriso=FILE use FILE as xorriso [optional] + --grub-mkimage=FILE use FILE as grub-mkimage ++ --diet apply size reducing measures [optional] + + $self generates a bootable rescue image with specified source files, source + directories, or mkisofs options listed by: xorriso -as mkisofs -help +@@ -133,6 +135,9 @@ + --xorriso=*) + xorriso=`echo "${option}/" | sed 's/--xorriso=//'` ;; + ++ --diet) ++ diet=yes ;; ++ + *) + source="${source} ${option} $@"; break ;; + esac +@@ -307,7 +312,14 @@ + fi + + # build iso image +-"${xorriso}" -as mkisofs -graft-points ${grub_mkisofs_arguments} --protective-msdos-label -o ${output_image} -r ${iso9660_dir} --sort-weight 0 / --sort-weight 1 /boot ${source} ++if [ "${diet}" = yes ]; then ++ if [ -e "${output_image}" ]; then ++ rm "${output_image}" || exit 1 ++ fi ++ "${xorriso}" -report_about HINT -as mkisofs -graft-points -no-pad ${grub_mkisofs_arguments} --protective-msdos-label -r ${iso9660_dir} --sort-weight 0 / --sort-weight 1 /boot ${source} | cat >"${output_image}" ++else ++ "${xorriso}" -report_about HINT -as mkisofs -graft-points ${grub_mkisofs_arguments} --protective-msdos-label -o ${output_image} -r ${iso9660_dir} --sort-weight 0 / --sort-weight 1 /boot ${source} ++fi + rm -rf ${iso9660_dir} + + rm -f ${embed_img} --- grub2-1.99.orig/debian/patches/mkconfig_loopback.patch +++ grub2-1.99/debian/patches/mkconfig_loopback.patch @@ -0,0 +1,83 @@ +Description: Handle filesystems loop-mounted on file images + Improve prepare_grub_to_access_device to emit appropriate commands for such + filesystems, and ignore them in Linux grub.d scripts. + . + This is needed for Ubuntu's Wubi installation method. + . + This patch isn't inherently Debian/Ubuntu-specific. losetup and + /proc/mounts are Linux-specific, though, so we might need to refine this + before sending it upstream. The changes to the Linux grub.d scripts might + be better handled by integrating 10_lupin properly instead. + +Index: b/util/grub-mkconfig_lib.in +=================================================================== +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -105,6 +105,20 @@ + { + device="$1" + ++ loop_file= ++ case ${device} in ++ /dev/loop/*|/dev/loop[0-9]) ++ loop_file=`losetup "${device}" | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` ++ case $loop_file in ++ /dev/*) ;; ++ *) ++ loop_device="${device}" ++ device=`"${grub_probe}" --target=device "${loop_file}"` ++ ;; ++ esac ++ ;; ++ esac ++ + if dmsetup status $device 2>/dev/null | grep -q 'crypt[[:space:]]$'; then + grub_warn \ + "$device is a crypto device, which GRUB cannot read directly. Some" \ +@@ -141,6 +155,14 @@ + if fs_uuid="`"${grub_probe}" --device "${device}" --target=fs_uuid 2> /dev/null`" ; then + echo "search --no-floppy --fs-uuid --set=root ${fs_uuid}" + fi ++ ++ if [ "x${loop_file}" != x ]; then ++ loop_mountpoint="$(awk '"'${loop_file}'" ~ "^"$2 && $2 != "/" { print $2 }' /proc/mounts | tail -n1)" ++ if [ "x${loop_mountpoint}" != x ]; then ++ echo "loopback loop0 ${loop_file#$loop_mountpoint}" ++ echo "set root=(loop0)" ++ fi ++ fi + } + + grub_file_is_not_garbage () +Index: b/util/grub.d/10_linux.in +=================================================================== +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -40,6 +40,11 @@ + case ${GRUB_DEVICE} in + /dev/loop/*|/dev/loop[0-9]) + GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` ++ # We can't cope with devices loop-mounted from files here. ++ case ${GRUB_DEVICE} in ++ /dev/*) ;; ++ *) exit 0 ;; ++ esac + ;; + esac + +Index: b/util/grub.d/20_linux_xen.in +=================================================================== +--- a/util/grub.d/20_linux_xen.in ++++ b/util/grub.d/20_linux_xen.in +@@ -40,6 +40,11 @@ + case ${GRUB_DEVICE} in + /dev/loop/*|/dev/loop[0-9]) + GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` ++ # We can't cope with devices loop-mounted from files here. ++ case ${GRUB_DEVICE} in ++ /dev/*) ;; ++ *) exit 0 ;; ++ esac + ;; + esac + --- grub2-1.99.orig/debian/patches/qemu_img_exists.patch +++ grub2-1.99/debian/patches/qemu_img_exists.patch @@ -0,0 +1,18 @@ +Description: Skip partmap test if qemu-img doesn't exist (e.g. on the Hurd) +Author: Colin Watson +Forwarded: no +Last-Update: 2010-11-22 + +Index: b/tests/partmap_test.in +=================================================================== +--- a/tests/partmap_test.in ++++ b/tests/partmap_test.in +@@ -51,6 +51,8 @@ + echo + } + ++which qemu-img >/dev/null 2>&1 || exit 77 ++ + imgfile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 + outfile=`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1 + --- grub2-1.99.orig/debian/patches/branch_longlinuxcmd.patch +++ grub2-1.99/debian/patches/branch_longlinuxcmd.patch @@ -0,0 +1,179 @@ +Description: Support long Linux command lines +Author: Vladimir Serbinenko +Origin: upstream, http://bzr.sv.gnu.org/r/grub/branches/longlinuxcmd/ +Forwarded: not-needed +Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3303 +Last-Update: 2011-05-19 + +Index: b/grub-core/loader/i386/linux.c +=================================================================== +--- a/grub-core/loader/i386/linux.c ++++ b/grub-core/loader/i386/linux.c +@@ -57,7 +57,6 @@ + #endif + + #define GRUB_LINUX_CL_OFFSET 0x1000 +-#define GRUB_LINUX_CL_END_OFFSET 0x2000 + + static grub_dl_t my_mod; + +@@ -74,6 +73,7 @@ + static grub_uint32_t initrd_pages; + static struct grub_relocator *relocator = NULL; + static void *efi_mmap_buf; ++static grub_size_t maximal_cmdline_size; + #ifdef GRUB_MACHINE_EFI + static grub_efi_uintn_t efi_mmap_size; + #else +@@ -189,7 +189,7 @@ + grub_err_t err; + + /* Make sure that each size is aligned to a page boundary. */ +- real_size = GRUB_LINUX_CL_END_OFFSET; ++ real_size = GRUB_LINUX_CL_OFFSET + maximal_cmdline_size; + prot_size = page_align (prot_size); + mmap_size = find_mmap_size (); + +@@ -662,6 +662,14 @@ + goto fail; + } + ++ if (grub_le_to_cpu16 (lh.version) >= 0x0206) ++ maximal_cmdline_size = grub_le_to_cpu32 (lh.cmdline_size) + 1; ++ else ++ maximal_cmdline_size = 256; ++ ++ if (maximal_cmdline_size < 128) ++ maximal_cmdline_size = 128; ++ + setup_sects = lh.setup_sects; + + /* If SETUP_SECTS is not set, set it to the default (4). */ +@@ -675,7 +683,7 @@ + goto fail; + + params = (struct linux_kernel_params *) real_mode_mem; +- grub_memset (params, 0, GRUB_LINUX_CL_END_OFFSET); ++ grub_memset (params, 0, GRUB_LINUX_CL_OFFSET + maximal_cmdline_size); + grub_memcpy (¶ms->setup_sects, &lh.setup_sects, sizeof (lh) - 0x1F1); + + params->ps_mouse = params->padding10 = 0; +@@ -870,7 +878,7 @@ + grub_create_loader_cmdline (argc, argv, + (char *)real_mode_mem + GRUB_LINUX_CL_OFFSET + + sizeof (LINUX_IMAGE) - 1, +- GRUB_LINUX_CL_END_OFFSET - GRUB_LINUX_CL_OFFSET ++ maximal_cmdline_size + - (sizeof (LINUX_IMAGE) - 1)); + + len = prot_size; +Index: b/grub-core/loader/i386/pc/linux.c +=================================================================== +--- a/grub-core/loader/i386/pc/linux.c ++++ b/grub-core/loader/i386/pc/linux.c +@@ -39,7 +39,6 @@ + GRUB_MOD_LICENSE ("GPLv3+"); + + #define GRUB_LINUX_CL_OFFSET 0x9000 +-#define GRUB_LINUX_CL_END_OFFSET 0x90FF + + static grub_dl_t my_mod; + +@@ -49,6 +48,7 @@ + static grub_addr_t grub_linux_real_target; + static char *grub_linux_real_chunk; + static grub_size_t grub_linux16_prot_size; ++static grub_size_t maximal_cmdline_size; + + static grub_err_t + grub_linux16_boot (void) +@@ -128,15 +128,20 @@ + setup_sects = lh.setup_sects; + linux_mem_size = 0; + ++ maximal_cmdline_size = 256; ++ + if (lh.header == grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE) + && grub_le_to_cpu16 (lh.version) >= 0x0200) + { + grub_linux_is_bzimage = (lh.loadflags & GRUB_LINUX_FLAG_BIG_KERNEL); + lh.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; + ++ if (grub_le_to_cpu16 (lh.version) >= 0x0206) ++ maximal_cmdline_size = grub_le_to_cpu32 (lh.cmdline_size) + 1; ++ + /* Put the real mode part at as a high location as possible. */ + grub_linux_real_target = grub_mmap_get_lower () +- - GRUB_LINUX_SETUP_MOVE_SIZE; ++ - (GRUB_LINUX_CL_OFFSET + maximal_cmdline_size); + /* But it must not exceed the traditional area. */ + if (grub_linux_real_target > GRUB_LINUX_OLD_REAL_MODE_ADDR) + grub_linux_real_target = GRUB_LINUX_OLD_REAL_MODE_ADDR; +@@ -153,7 +158,8 @@ + { + lh.cl_magic = grub_cpu_to_le16 (GRUB_LINUX_CL_MAGIC); + lh.cl_offset = grub_cpu_to_le16 (GRUB_LINUX_CL_OFFSET); +- lh.setup_move_size = grub_cpu_to_le16 (GRUB_LINUX_SETUP_MOVE_SIZE); ++ lh.setup_move_size = grub_cpu_to_le16 (GRUB_LINUX_CL_OFFSET ++ + maximal_cmdline_size); + } + } + else +@@ -185,12 +191,13 @@ + goto fail; + } + +- if (grub_linux_real_target + GRUB_LINUX_SETUP_MOVE_SIZE ++ if (grub_linux_real_target + GRUB_LINUX_CL_OFFSET + maximal_cmdline_size + > grub_mmap_get_lower ()) + { + grub_error (GRUB_ERR_OUT_OF_RANGE, + "too small lower memory (0x%x > 0x%x)", +- grub_linux_real_target + GRUB_LINUX_SETUP_MOVE_SIZE, ++ grub_linux_real_target + GRUB_LINUX_CL_OFFSET ++ + maximal_cmdline_size, + (int) grub_mmap_get_lower ()); + goto fail; + } +@@ -263,7 +270,8 @@ + grub_relocator_chunk_t ch; + err = grub_relocator_alloc_chunk_addr (relocator, &ch, + grub_linux_real_target, +- GRUB_LINUX_SETUP_MOVE_SIZE); ++ GRUB_LINUX_CL_OFFSET ++ + maximal_cmdline_size); + if (err) + return err; + grub_linux_real_chunk = get_virtual_current_address (ch); +@@ -294,7 +302,7 @@ + grub_create_loader_cmdline (argc, argv, + (char *)grub_linux_real_chunk + + GRUB_LINUX_CL_OFFSET + sizeof (LINUX_IMAGE) - 1, +- GRUB_LINUX_CL_END_OFFSET - GRUB_LINUX_CL_OFFSET ++ maximal_cmdline_size + - (sizeof (LINUX_IMAGE) - 1)); + + if (grub_linux_is_bzimage) +Index: b/include/grub/i386/linux.h +=================================================================== +--- a/include/grub/i386/linux.h ++++ b/include/grub/i386/linux.h +@@ -41,7 +41,6 @@ + #define GRUB_LINUX_VID_MODE_ASK 0xFFFD + #define GRUB_LINUX_VID_MODE_VESA_START 0x0300 + +-#define GRUB_LINUX_SETUP_MOVE_SIZE 0x9100 + #define GRUB_LINUX_CL_MAGIC 0xA33F + + #ifdef __x86_64__ +@@ -130,6 +129,10 @@ + grub_uint16_t pad1; /* Unused */ + grub_uint32_t cmd_line_ptr; /* Points to the kernel command line */ + grub_uint32_t initrd_addr_max; /* Highest address for initrd */ ++ grub_uint32_t kernel_alignment; ++ grub_uint8_t relocatable; ++ grub_uint8_t pad[3]; ++ grub_uint32_t cmdline_size; + } __attribute__ ((packed)); + + /* Boot parameters for Linux based on 2.6.12. This is used by the setup --- grub2-1.99.orig/debian/patches/partition_performance.patch +++ grub2-1.99/debian/patches/partition_performance.patch @@ -0,0 +1,36 @@ +Description: Give up scanning partitions after ten consecutive open failures + Scanning all the way up to 10000 is excessive and can cause serious + performance problems in some configurations. +Author: Colin Watson +Bug-Ubuntu: https://bugs.launchpad.net/bugs/787461 +Forwarded: yes +Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3320 +Last-Update: 2011-05-27 + +Index: b/grub-core/kern/emu/hostdisk.c +=================================================================== +--- a/grub-core/kern/emu/hostdisk.c ++++ b/grub-core/kern/emu/hostdisk.c +@@ -564,6 +564,7 @@ + int i; + char real_dev[PATH_MAX]; + struct linux_partition_cache *cache; ++ int missing = 0; + + strcpy(real_dev, dev); + +@@ -602,7 +603,13 @@ + + fd = open (real_dev, O_RDONLY); + if (fd == -1) +- continue; ++ { ++ if (missing++ < 10) ++ continue; ++ else ++ return 0; ++ } ++ missing = 0; + close (fd); + + start = find_partition_start (real_dev); --- grub2-1.99.orig/debian/patches/kfreebsd-9_ada_devices.patch +++ grub2-1.99/debian/patches/kfreebsd-9_ada_devices.patch @@ -0,0 +1,71 @@ +2011-06-16 Robert Millan + + Detect `ataraid' devices on GNU/kFreeBSD. Fix for ATA devices using + `ata' driver on kernel of FreeBSD 9. + + * util/deviceiter.c [__FreeBSD_kernel__] (get_ada_disk_name) + (get_ataraid_disk_name): New functions. + [__FreeBSD_kernel__] (grub_util_iterate_devices): Scan for ataraid + (/dev/ar[0-9]+) and ada (/dev/ada[0-9]+) devices using + get_ataraid_disk_name() and get_ada_disk_name(). + +=== modified file 'util/deviceiter.c' +--- a/util/deviceiter.c ++++ b/util/deviceiter.c +@@ -286,6 +286,20 @@ + #endif + } + ++#ifdef __FreeBSD_kernel__ ++static void ++get_ada_disk_name (char *name, int unit) ++{ ++ sprintf (name, "/dev/ada%d", unit); ++} ++ ++static void ++get_ataraid_disk_name (char *name, int unit) ++{ ++ sprintf (name, "/dev/ar%d", unit); ++} ++#endif ++ + #ifdef __linux__ + static void + get_virtio_disk_name (char *name, int unit) +@@ -620,6 +634,35 @@ + } + } + ++#ifdef __FreeBSD_kernel__ ++ /* IDE disks using ATA Direct Access driver. */ ++ if (get_kfreebsd_version () >= 800000) ++ for (i = 0; i < 96; i++) ++ { ++ char name[16]; ++ ++ get_ada_disk_name (name, i); ++ if (check_device_readable_unique (name)) ++ { ++ if (hook (name, 0)) ++ goto out; ++ } ++ } ++ ++ /* ATARAID disks. */ ++ for (i = 0; i < 8; i++) ++ { ++ char name[20]; ++ ++ get_ataraid_disk_name (name, i); ++ if (check_device_readable_unique (name)) ++ { ++ if (hook (name, 0)) ++ goto out; ++ } ++ } ++#endif ++ + #ifdef __linux__ + /* Virtio disks. */ + for (i = 0; i < 26; i++) --- grub2-1.99.orig/debian/patches/btrfs_stat.patch +++ grub2-1.99/debian/patches/btrfs_stat.patch @@ -0,0 +1,36 @@ +Description: Cope with btrfs / inside an encrypted block device + If / is inside an encrypted block device, then grub-probe can't tell what + its filesystem type is. Work around this. +Author: alexeagar@gmail.com +Bug-Ubuntu: https://bugs.launchpad.net/bugs/757631 +Forwarded: no +Last-Update: 2011-06-15 + +Index: b/util/grub.d/10_linux.in +=================================================================== +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -56,7 +56,8 @@ + LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} + fi + +-if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ]; then ++if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ] \ ++ || [ "x`stat -f --printf=%T /`" = xbtrfs ]; then + rootsubvol="`make_system_path_relative_to_its_root /`" + rootsubvol="${rootsubvol#/}" + if [ "x${rootsubvol}" != x ]; then +Index: b/util/grub.d/20_linux_xen.in +=================================================================== +--- a/util/grub.d/20_linux_xen.in ++++ b/util/grub.d/20_linux_xen.in +@@ -56,7 +56,8 @@ + LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} + fi + +-if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ]; then ++if [ "x`${grub_probe} --device ${GRUB_DEVICE} --target=fs 2>/dev/null || true`" = xbtrfs ] \ ++ || [ "x`stat -f --printf=%T /`" = xbtrfs ]; then + rootsubvol="`make_system_path_relative_to_its_root /`" + rootsubvol="${rootsubvol#/}" + if [ "x${rootsubvol}" != x ]; then --- grub2-1.99.orig/debian/patches/grub.cfg_400.patch +++ grub2-1.99/debian/patches/grub.cfg_400.patch @@ -0,0 +1,15 @@ +Index: b/util/grub-mkconfig.in +=================================================================== +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -293,6 +293,10 @@ + esac + done + ++if [ "x${grub_cfg}" != "x" ] && ! grep -q "^password " ${grub_cfg}.new ; then ++ chmod 444 ${grub_cfg}.new || true ++fi ++ + if test "x${grub_cfg}" != "x" ; then + if ! ${grub_script_check} ${grub_cfg}.new; then + echo "Syntax errors are detected in generated GRUB config file." >&2 --- grub2-1.99.orig/debian/patches/olpc_prefix_hack.patch +++ grub2-1.99/debian/patches/olpc_prefix_hack.patch @@ -0,0 +1,50 @@ + +This sucks, but it's better than what OFW was giving us. + +Index: b/grub-core/kern/ieee1275/init.c +=================================================================== +--- a/grub-core/kern/ieee1275/init.c ++++ b/grub-core/kern/ieee1275/init.c +@@ -53,6 +53,7 @@ + grub_ieee1275_exit (); + } + ++#ifndef __i386__ + /* Translate an OF filesystem path (separated by backslashes), into a GRUB + path (separated by forward slashes). */ + static void +@@ -67,13 +68,16 @@ + backslash = grub_strchr (filepath, '\\'); + } + } ++#endif + + void + grub_machine_set_prefix (void) + { ++#ifndef __i386__ + char bootpath[64]; /* XXX check length */ + char *filename; + char *prefix; ++#endif + + if (grub_prefix[0]) + { +@@ -82,6 +86,9 @@ + return; + } + ++#ifdef __i386__ ++ grub_env_set ("prefix", "(sd,1)/"); ++#else + if (grub_ieee1275_get_property (grub_ieee1275_chosen, "bootpath", &bootpath, + sizeof (bootpath), 0)) + { +@@ -120,6 +127,7 @@ + + grub_free (filename); + grub_free (prefix); ++#endif + } + + /* Claim some available memory in the first /memory node. */ --- grub2-1.99.orig/debian/patches/branch_devmapper.patch +++ grub2-1.99/debian/patches/branch_devmapper.patch @@ -0,0 +1,286 @@ +Description: Support for partitioned loop devices; improved devmapper support +Author: Vladimir Serbinenko +Origin: upstream, http://bzr.sv.gnu.org/r/grub/branches/devmapper/ +Forwarded: not-needed +Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3302 +Last-Update: 2011-05-19 + +Index: b/grub-core/kern/emu/getroot.c +=================================================================== +--- a/grub-core/kern/emu/getroot.c ++++ b/grub-core/kern/emu/getroot.c +@@ -34,6 +34,10 @@ + #include + #include + ++#ifdef HAVE_DEVICE_MAPPER ++# include ++#endif ++ + #ifdef __GNU__ + #include + #include +@@ -634,32 +638,65 @@ + } + + static int +-grub_util_is_dmraid (const char *os_dev) ++grub_util_is_lvm (const char *os_dev) + { +- if (! strncmp (os_dev, "/dev/mapper/nvidia_", 19)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/isw_", 16)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/hpt37x_", 19)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/hpt45x_", 19)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/via_", 16)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/lsi_", 16)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/pdc_", 16)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/jmicron_", 20)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/asr_", 16)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/sil_", 16)) +- return 1; +- else if (! strncmp (os_dev, "/dev/mapper/ddf1_", 17)) +- return 1; ++ if ((strncmp ("/dev/mapper/", os_dev, 12) != 0)) ++ return 0; ++ ++#ifdef HAVE_DEVICE_MAPPER ++ { ++ struct dm_tree *tree; ++ uint32_t maj, min; ++ struct dm_tree_node *node = NULL; ++ const char *node_uuid; ++ struct stat st; + +- return 0; ++ if (stat (os_dev, &st) < 0) ++ return 0; ++ ++ tree = dm_tree_create (); ++ if (! tree) ++ { ++ grub_printf ("Failed to create tree\n"); ++ grub_dprintf ("hostdisk", "dm_tree_create failed\n"); ++ return 0; ++ } ++ ++ maj = major (st.st_rdev); ++ min = minor (st.st_rdev); ++ ++ if (! dm_tree_add_dev (tree, maj, min)) ++ { ++ grub_dprintf ("hostdisk", "dm_tree_add_dev failed\n"); ++ dm_tree_free (tree); ++ return 0; ++ } ++ ++ node = dm_tree_find_node (tree, maj, min); ++ if (! node) ++ { ++ grub_dprintf ("hostdisk", "dm_tree_find_node failed\n"); ++ dm_tree_free (tree); ++ return 0; ++ } ++ node_uuid = dm_tree_node_get_uuid (node); ++ if (! node_uuid) ++ { ++ grub_dprintf ("hostdisk", "%s has no DM uuid\n", os_dev); ++ dm_tree_free (tree); ++ return 0; ++ } ++ if (strncmp (node_uuid, "LVM-", 4) != 0) ++ { ++ dm_tree_free (tree); ++ return 0; ++ } ++ dm_tree_free (tree); ++ return 1; ++ } ++#else ++ return 1; ++#endif /* HAVE_DEVICE_MAPPER */ + } + + int +@@ -671,13 +708,11 @@ + return GRUB_DEV_ABSTRACTION_NONE; + + /* Check for LVM. */ +- if (!strncmp (os_dev, "/dev/mapper/", 12) +- && ! grub_util_is_dmraid (os_dev) +- && strncmp (os_dev, "/dev/mapper/mpath", 17) != 0) ++ if (grub_util_is_lvm (os_dev)) + return GRUB_DEV_ABSTRACTION_LVM; + + /* Check for RAID. */ +- if (!strncmp (os_dev, "/dev/md", 7)) ++ if (!strncmp (os_dev, "/dev/md", 7) && ! grub_util_device_is_mapped (os_dev)) + return GRUB_DEV_ABSTRACTION_RAID; + #endif + +Index: b/grub-core/kern/emu/hostdisk.c +=================================================================== +--- a/grub-core/kern/emu/hostdisk.c ++++ b/grub-core/kern/emu/hostdisk.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -331,18 +332,23 @@ + return GRUB_ERR_NONE; + } + +-#ifdef HAVE_DEVICE_MAPPER +-static int +-device_is_mapped (const char *dev) ++int ++grub_util_device_is_mapped (const char *dev) + { ++#ifdef HAVE_DEVICE_MAPPER + struct stat st; + ++ if (!grub_device_mapper_supported ()) ++ return 0; ++ + if (stat (dev, &st) < 0) + return 0; + + return dm_is_dm_major (major (st.st_rdev)); +-} ++#else ++ return 0; + #endif /* HAVE_DEVICE_MAPPER */ ++} + + #if defined (__FreeBSD__) || defined(__FreeBSD_kernel__) + /* FIXME: geom actually gives us the whole container hierarchy. +@@ -418,7 +424,7 @@ + # endif /* !defined(HAVE_DIOCGDINFO) */ + + # ifdef HAVE_DEVICE_MAPPER +- if (grub_device_mapper_supported () && device_is_mapped (dev)) { ++ if (grub_util_device_is_mapped (dev)) { + struct dm_task *task = NULL; + grub_uint64_t start, length; + char *target_type, *params, *space; +@@ -1161,6 +1167,54 @@ + return ret; + } + ++#ifdef HAVE_DEVICE_MAPPER ++static int ++grub_util_get_dm_node_linear_info (const char *dev, ++ int *maj, int *min) ++{ ++ struct dm_task *dmt; ++ void *next = NULL; ++ uint64_t length, start; ++ char *target, *params; ++ char *ptr; ++ int major, minor; ++ ++ dmt = dm_task_create(DM_DEVICE_TABLE); ++ if (!dmt) ++ return 0; ++ ++ if (!dm_task_set_name(dmt, dev)) ++ return 0; ++ dm_task_no_open_count(dmt); ++ if (!dm_task_run(dmt)) ++ return 0; ++ next = dm_get_next_target(dmt, next, &start, &length, ++ &target, ¶ms); ++ if (grub_strcmp (target, "linear") != 0) ++ return 0; ++ major = grub_strtoul (params, &ptr, 10); ++ if (grub_errno) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ return 0; ++ } ++ if (*ptr != ':') ++ return 0; ++ ptr++; ++ minor = grub_strtoul (ptr, 0, 10); ++ if (grub_errno) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ return 0; ++ } ++ if (maj) ++ *maj = major; ++ if (min) ++ *min = minor; ++ return 1; ++} ++#endif ++ + static char * + convert_system_partition_to_system_disk (const char *os_dev, struct stat *st) + { +@@ -1337,9 +1391,39 @@ + node = NULL; + goto devmapper_out; + } +- else if (strncmp (node_uuid, "DMRAID-", 7) != 0) ++ if (strncmp (node_uuid, "LVM-", 4) == 0) + { ++ grub_dprintf ("hostdisk", "%s is an LVM\n", path); ++ node = NULL; ++ goto devmapper_out; ++ } ++ if (strncmp (node_uuid, "mpath-", 6) == 0) ++ { ++ /* Multipath partitions have partN-mpath-* UUIDs, and are ++ linear mappings so are handled by ++ grub_util_get_dm_node_linear_info. Multipath disks are not ++ linear mappings and must be handled specially. */ ++ grub_dprintf ("hostdisk", "%s is a multipath disk\n", path); ++ mapper_name = dm_tree_node_get_name (node); ++ goto devmapper_out; ++ } ++ if (strncmp (node_uuid, "DMRAID-", 7) != 0) ++ { ++ int major, minor; ++ const char *node_name; + grub_dprintf ("hostdisk", "%s is not DM-RAID\n", path); ++ ++ if ((node_name = dm_tree_node_get_name (node)) ++ && grub_util_get_dm_node_linear_info (node_name, ++ &major, &minor)) ++ { ++ if (tree) ++ dm_tree_free (tree); ++ free (path); ++ char *ret = grub_find_device (NULL, (major << 8) | minor); ++ return ret; ++ } ++ + node = NULL; + goto devmapper_out; + } +Index: b/include/grub/emu/misc.h +=================================================================== +--- a/include/grub/emu/misc.h ++++ b/include/grub/emu/misc.h +@@ -54,6 +54,8 @@ + + char *grub_make_system_path_relative_to_its_root (const char *path) + __attribute__ ((warn_unused_result)); ++int ++grub_util_device_is_mapped (const char *dev); + + void * EXPORT_FUNC(xmalloc) (grub_size_t size) __attribute__ ((warn_unused_result)); + void * EXPORT_FUNC(xrealloc) (void *ptr, grub_size_t size) __attribute__ ((warn_unused_result)); --- grub2-1.99.orig/debian/patches/mkrescue_efi_modules.patch +++ grub2-1.99/debian/patches/mkrescue_efi_modules.patch @@ -0,0 +1,22 @@ +Description: Build part_msdos and vfat into EFI boot images +Author: Mario Limonciello +Bug-Ubuntu: https://bugs.launchpad.net/bugs/677758 +Forwarded: http://lists.gnu.org/archive/html/grub-devel/2011-01/msg00028.html +Last-Update: 2011-04-11 + +Index: b/util/grub-mkrescue.in +=================================================================== +--- a/util/grub-mkrescue.in ++++ b/util/grub-mkrescue.in +@@ -288,9 +288,9 @@ + mkdir -p "${efi_dir}/efi/boot" + + # build bootx64.efi +- make_image "${efi64_dir}" x86_64-efi "${efi_dir}"/efi/boot/bootx64.efi "" ++ make_image "${efi64_dir}" x86_64-efi "${efi_dir}"/efi/boot/bootx64.efi "part_msdos fat" + # build bootia32.efi +- make_image "${efi32_dir}" i386-efi "${efi_dir}"/efi/boot/bootia32.efi "" ++ make_image "${efi32_dir}" i386-efi "${efi_dir}"/efi/boot/bootia32.efi "part_msdos fat" + if [ -e "${efi_dir}"/efi/boot/bootia32.efi ]; then + # For old macs. Suggested by Peter Jones. + cp "${efi_dir}"/efi/boot/bootia32.efi "${efi_dir}"/efi/boot/boot.efi --- grub2-1.99.orig/debian/patches/branch_embed-sectors.patch +++ grub2-1.99/debian/patches/branch_embed-sectors.patch @@ -0,0 +1,247 @@ +Description: Detect other software using embedding area + When embedding the core image in a post-MBR gap, check for and avoid + sectors matching any of the signatures in embed_signatures. +Author: Colin Watson +Origin: upstream, http://bzr.sv.gnu.org/r/grub/branches/embed-sectors/ +Forwarded: http://lists.gnu.org/archive/html/grub-devel/2010-08/msg00137.html +Last-Update: 2011-04-21 + +Index: b/ChangeLog.embed-sectors +=================================================================== +--- /dev/null ++++ b/ChangeLog.embed-sectors +@@ -0,0 +1,12 @@ ++2011-03-14 Colin Watson ++ ++ * include/grub/partition.h (grub_partition_map): Change prototype of ++ embed to take a maximum value for nsectors. ++ * grub-core/partmap/msdos.c (embed_signatures): New array. ++ (pc_partition_map_embed): Check for and avoid sectors matching any ++ of the signatures in embed_signatures, up to max_nsectors. ++ * grub-core/partmap/gpt.c (gpt_partition_map_embed): Restrict ++ returned sector map to max_nsectors. ++ * util/grub-setup.c (setup): Allow for the embedding area being ++ split into multiple blocklists. Tell dest_partmap->embed the ++ maximum number of sectors we care about. +Index: b/grub-core/partmap/gpt.c +=================================================================== +--- a/grub-core/partmap/gpt.c ++++ b/grub-core/partmap/gpt.c +@@ -127,6 +127,7 @@ + #ifdef GRUB_UTIL + static grub_err_t + gpt_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, ++ unsigned int max_nsectors, + grub_embed_type_t embed_type, + grub_disk_addr_t **sectors) + { +@@ -176,6 +177,8 @@ + " embedding won't be possible!"); + + *nsectors = len; ++ if (*nsectors > max_nsectors) ++ *nsectors = max_nsectors; + *sectors = grub_malloc (*nsectors * sizeof (**sectors)); + if (!*sectors) + return grub_errno; +Index: b/grub-core/partmap/msdos.c +=================================================================== +--- a/grub-core/partmap/msdos.c ++++ b/grub-core/partmap/msdos.c +@@ -29,6 +29,66 @@ + static struct grub_partition_map grub_msdos_partition_map; + + ++#ifdef GRUB_UTIL ++#include ++ ++struct embed_signature ++{ ++ const char *name; ++ const char *signature; ++ int signature_len; ++ enum { TYPE_SOFTWARE, TYPE_RAID } type; ++}; ++ ++const char message_warn[][200] = { ++ [TYPE_RAID] = "Sector %llu is already in use by %s; avoiding it. " ++ "Please ask the manufacturer not to store data in MBR gap", ++ [TYPE_SOFTWARE] = "Sector %llu is already in use by %s; avoiding it. " ++ "This software may cause boot or other problems in " ++ "future. Please ask its authors not to store data " ++ "in the boot track" ++}; ++ ++ ++/* Signatures of other software that may be using sectors in the embedding ++ area. */ ++struct embed_signature embed_signatures[] = ++ { ++ { ++ .name = "ZISD", ++ .signature = "ZISD", ++ .signature_len = 4, ++ .type = TYPE_SOFTWARE ++ }, ++ { ++ .name = "FlexNet", ++ .signature = "\xd4\x41\xa0\xf5\x03\x00\x03\x00", ++ .signature_len = 8, ++ .type = TYPE_SOFTWARE ++ }, ++ { ++ .name = "FlexNet", ++ .signature = "\xd8\x41\xa0\xf5\x02\x00\x02\x00", ++ .signature_len = 8, ++ .type = TYPE_SOFTWARE ++ }, ++ { ++ /* from Ryan Perkins */ ++ .name = "HP Backup and Recovery Manager (?)", ++ .signature = "\x70\x8a\x5d\x46\x35\xc5\x1b\x93" ++ "\xae\x3d\x86\xfd\xb1\x55\x3e\xe0", ++ .signature_len = 16, ++ .type = TYPE_SOFTWARE ++ }, ++ { ++ .name = "HighPoint RAID controller", ++ .signature = "ycgl", ++ .signature_len = 4, ++ .type = TYPE_RAID ++ } ++ }; ++#endif ++ + grub_err_t + grub_partition_msdos_iterate (grub_disk_t disk, + int (*hook) (grub_disk_t disk, +@@ -148,6 +208,7 @@ + #ifdef GRUB_UTIL + static grub_err_t + pc_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, ++ unsigned int max_nsectors, + grub_embed_type_t embed_type, + grub_disk_addr_t **sectors) + { +@@ -236,13 +297,65 @@ + + if (end >= *nsectors + 2) + { +- unsigned i; ++ unsigned i, j; ++ char *embed_signature_check; ++ unsigned int orig_nsectors, avail_nsectors; ++ ++ orig_nsectors = *nsectors; + *nsectors = end - 2; ++ avail_nsectors = *nsectors; ++ if (*nsectors > max_nsectors) ++ *nsectors = max_nsectors; + *sectors = grub_malloc (*nsectors * sizeof (**sectors)); + if (!*sectors) + return grub_errno; + for (i = 0; i < *nsectors; i++) + (*sectors)[i] = 1 + i; ++ ++ /* Check for software that is already using parts of the embedding ++ * area. ++ */ ++ embed_signature_check = grub_malloc (GRUB_DISK_SECTOR_SIZE); ++ for (i = 0; i < *nsectors; i++) ++ { ++ if (grub_disk_read (disk, (*sectors)[i], 0, GRUB_DISK_SECTOR_SIZE, ++ embed_signature_check)) ++ continue; ++ ++ for (j = 0; j < ARRAY_SIZE (embed_signatures); j++) ++ if (! grub_memcmp (embed_signatures[j].signature, ++ embed_signature_check, ++ embed_signatures[j].signature_len)) ++ break; ++ if (j == ARRAY_SIZE (embed_signatures)) ++ continue; ++ grub_util_warn (message_warn[embed_signatures[j].type], ++ (*sectors)[i], embed_signatures[j].name); ++ avail_nsectors--; ++ if (avail_nsectors < *nsectors) ++ *nsectors = avail_nsectors; ++ ++ /* Avoid this sector. */ ++ for (j = i; j < *nsectors; j++) ++ (*sectors)[j]++; ++ ++ /* Have we run out of space? */ ++ if (avail_nsectors < orig_nsectors) ++ break; ++ ++ /* Make sure to check the next sector. */ ++ i--; ++ } ++ grub_free (embed_signature_check); ++ ++ if (*nsectors < orig_nsectors) ++ return grub_error (GRUB_ERR_OUT_OF_RANGE, ++ "Other software is using the embedding area, and " ++ "there is not enough room for core.img. Such " ++ "software is often trying to store data in a way " ++ "that avoids detection. We recommend you " ++ "investigate."); ++ + return GRUB_ERR_NONE; + } + +Index: b/include/grub/partition.h +=================================================================== +--- a/include/grub/partition.h ++++ b/include/grub/partition.h +@@ -49,6 +49,7 @@ + #ifdef GRUB_UTIL + /* Determine sectors available for embedding. */ + grub_err_t (*embed) (struct grub_disk *disk, unsigned int *nsectors, ++ unsigned int max_nsectors, + grub_embed_type_t embed_type, + grub_disk_addr_t **sectors); + #endif +Index: b/util/grub-setup.c +=================================================================== +--- a/util/grub-setup.c ++++ b/util/grub-setup.c +@@ -428,10 +428,8 @@ + } + + nsec = core_sectors; +- err = dest_partmap->embed (dest_dev->disk, &nsec, ++ err = dest_partmap->embed (dest_dev->disk, &nsec, 2 * core_sectors, + GRUB_EMBED_PCBIOS, §ors); +- if (nsec > 2 * core_sectors) +- nsec = 2 * core_sectors; + + if (err) + { +@@ -460,6 +458,13 @@ + save_blocklists (sectors[i] + grub_partition_get_start (container), + 0, GRUB_DISK_SECTOR_SIZE); + ++ /* Make sure that the last blocklist is a terminator. */ ++ if (block == first_block) ++ block--; ++ block->start = 0; ++ block->len = 0; ++ block->segment = 0; ++ + write_rootdev (core_img, root_dev, boot_img, first_sector); + + core_img = realloc (core_img, nsec * GRUB_DISK_SECTOR_SIZE); +@@ -476,12 +481,6 @@ + nsec * GRUB_DISK_SECTOR_SIZE + - core_size); + +- /* Make sure that the second blocklist is a terminator. */ +- block = first_block - 1; +- block->start = 0; +- block->len = 0; +- block->segment = 0; +- + /* Write the core image onto the disk. */ + for (i = 0; i < nsec; i++) + grub_disk_write (dest_dev->disk, sectors[i], 0, --- grub2-1.99.orig/debian/patches/mkconfig_skip_dmcrypt.patch +++ grub2-1.99/debian/patches/mkconfig_skip_dmcrypt.patch @@ -0,0 +1,30 @@ +Description: Warn and return without error if /boot is a dm-crypt device + With any luck the administrator knows what they're doing; in any event, we + probably can't improve matters by having update-grub exit non-zero. +Author: Marc Haber +Author: Colin Watson +Origin: other, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542165#25 +Bug-Debian: http://bugs.debian.org/542165 +Forwarded: no +Last-Update: 2010-06-05 + +Index: b/util/grub-mkconfig_lib.in +=================================================================== +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -105,6 +105,15 @@ + { + device="$1" + ++ if dmsetup status $device 2>/dev/null | grep -q 'crypt[[:space:]]$'; then ++ grub_warn \ ++ "$device is a crypto device, which GRUB cannot read directly. Some" \ ++ "necessary modules may be missing from /boot/grub/grub.cfg. You may" \ ++ "need to list them in GRUB_PRELOAD_MODULES in /etc/default/grub. See" \ ++ "http://bugs.debian.org/542165 for details." ++ return 0 ++ fi ++ + # Abstraction modules aren't auto-loaded. + abstraction="`"${grub_probe}" --device "${device}" --target=abstraction`" + for module in ${abstraction} ; do --- grub2-1.99.orig/debian/patches/lazy_stat.patch +++ grub2-1.99/debian/patches/lazy_stat.patch @@ -0,0 +1,73 @@ +Description: Don't stat devices unless we have to +Author: Vladimir Serbinenko +Author: Colin Watson +Bug-Debian: http://bugs.debian.org/627587 +Forwarded: yes +Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3318 +Last-Update: 2011-05-31 + +Index: b/grub-core/kern/emu/getroot.c +=================================================================== +--- a/grub-core/kern/emu/getroot.c ++++ b/grub-core/kern/emu/getroot.c +@@ -358,7 +358,7 @@ + + if (S_ISLNK (st.st_mode)) { + #ifdef __linux__ +- if (strcmp (dir, "mapper") == 0) { ++ if (strcmp (dir, "mapper") == 0 || strcmp (dir, "/dev/mapper") == 0) { + /* Follow symbolic links under /dev/mapper/; the canonical name + may be something like /dev/dm-0, but the names under + /dev/mapper/ are more human-readable and so we prefer them if +@@ -609,20 +609,27 @@ + + if (os_dev) + { +- if (stat (os_dev, &st) >= 0) +- dev = st.st_rdev; +- else +- grub_util_error ("cannot stat `%s'", os_dev); +- free (os_dev); ++ char *tmp = os_dev; ++ os_dev = canonicalize_file_name (os_dev); ++ free (tmp); + } +- else ++ ++ if (os_dev) + { +- if (stat (dir, &st) >= 0) +- dev = st.st_dev; +- else +- grub_util_error ("cannot stat `%s'", dir); ++ if (strncmp (os_dev, "/dev/dm-", sizeof ("/dev/dm-") - 1) != 0) ++ return os_dev; ++ if (stat (os_dev, &st) < 0) ++ grub_util_error ("cannot stat `%s'", os_dev); ++ free (os_dev); ++ dev = st.st_rdev; ++ return grub_find_device ("/dev/mapper", dev); + } + ++ if (stat (dir, &st) < 0) ++ grub_util_error ("cannot stat `%s'", dir); ++ ++ dev = st.st_dev; ++ + #ifdef __CYGWIN__ + /* Cygwin specific function. */ + os_dev = grub_find_device (dir, dev); +Index: b/grub-core/kern/emu/hostdisk.c +=================================================================== +--- a/grub-core/kern/emu/hostdisk.c ++++ b/grub-core/kern/emu/hostdisk.c +@@ -1420,7 +1420,8 @@ + if (tree) + dm_tree_free (tree); + free (path); +- char *ret = grub_find_device (NULL, (major << 8) | minor); ++ char *ret = grub_find_device ("/dev/mapper", ++ (major << 8) | minor); + return ret; + } + --- grub2-1.99.orig/debian/patches/grub_legacy_0_based_partitions.patch +++ grub2-1.99/debian/patches/grub_legacy_0_based_partitions.patch @@ -0,0 +1,43 @@ +Index: b/grub-core/kern/emu/hostdisk.c +=================================================================== +--- a/grub-core/kern/emu/hostdisk.c ++++ b/grub-core/kern/emu/hostdisk.c +@@ -1131,7 +1131,7 @@ + char *bsd_part_str = NULL; + + if (dos_part >= 0) +- dos_part_str = xasprintf (",%d", dos_part + 1); ++ dos_part_str = xasprintf (",%d", dos_part + (getenv ("GRUB_LEGACY_0_BASED_PARTITIONS") ? 0 : 1)); + + if (bsd_part >= 0) + bsd_part_str = xasprintf (",%d", bsd_part + 1); +@@ -1619,6 +1619,29 @@ + + if (start == part_start) + { ++ if (getenv ("GRUB_LEGACY_0_BASED_PARTITIONS")) ++ { ++ int dos_part, bsd_part; ++ char *fullname, *comma; ++ ++ if (partition->parent) ++ { ++ dos_part = partition->parent->number; ++ bsd_part = partition->number; ++ } ++ else ++ { ++ dos_part = partition->number; ++ bsd_part = -1; ++ } ++ ++ fullname = make_device_name (drive, dos_part, bsd_part); ++ comma = strchr (fullname, ','); ++ partname = comma ? xstrdup (comma + 1) : NULL; ++ free (fullname); ++ return 1; ++ } ++ + partname = grub_partition_get_name (partition); + return 1; + } --- grub2-1.99.orig/debian/patches/branch_parse-color.patch +++ grub2-1.99/debian/patches/branch_parse-color.patch @@ -0,0 +1,1310 @@ +Description: Add a background_color command + Move gfxmenu color handling to video, so that gfxterm can use it too; add a + background_color command. +Author: Colin Watson +Origin: upstream, http://bzr.sv.gnu.org/r/grub/branches/parse-color/ +Forwarded: http://lists.gnu.org/archive/html/grub-devel/2010-12/msg00045.html +Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3308 +Last-Update: 2011-05-19 + +Index: b/ChangeLog.parse-color +=================================================================== +--- /dev/null ++++ b/ChangeLog.parse-color +@@ -0,0 +1,44 @@ ++2010-12-23 Colin Watson ++ ++ Move gfxmenu color handling to video, so that gfxterm can use it ++ too. ++ ++ * grub-core/gfxmenu/named_colors.c: Move to ... ++ * grub-core/video/colors.c: ... here. Rename ++ grub_gui_get_named_color to grub_video_get_named_color. ++ * grub-core/gfxmenu/gui_string_util.c (my_isxdigit): Move to ... ++ * grub-core/video/colors.c (my_isxdigit): ... here. ++ * grub-core/gfxmenu/gui_string_util.c (parse_hex_color_component): ++ Move to ... ++ * grub-core/video/colors.c (parse_hex_color_component): ... here. ++ * grub-core/gfxmenu/gui_string_util.c (grub_gui_parse_color): Move ++ to ... ++ * grub-core/video/colors.c (grub_video_parse_color): ... here. ++ ++ * include/grub/gui.h (grub_gui_color_t): Move to ... ++ * include/grub/video.h (grub_video_rgba_color_t): ... here. ++ * include/grub/gui.h (grub_gui_color_rgb): Move to ... ++ * include/grub/video.h (grub_video_rgba_color_rgb): ... here. ++ * include/grub/gui.h (grub_gui_map_color): Move to ... ++ * include/grub/video.h (grub_video_map_rgba_color): ... here. ++ * include/grub/gui_string_util.h (grub_gui_get_named_color): Move ++ to ... ++ * include/grub/video.h (grub_video_get_named_color): ... here. ++ * include/grub/gui_string_util.h (grub_gui_parse_color): Move to ... ++ * include/grub/video.h (grub_video_parse_color): ... here. ++ ++ * grub-core/Makefile.core.def (kernel) [videoinkernel]: Add ++ video/colors.c. ++ (gfxmenu): Remove gfxmenu/named_colors.c. ++ (video) [videomodules]: Add video/colors.c. ++ ++ Add a background_color command. ++ ++ * grub-core/term/gfxterm.c (grub_gfxterm_background_color_cmd): New ++ function. ++ (GRUB_MOD_INIT): Register background_color command. ++ (GRUB_MOD_FINI): Unregister background_color command. ++ (redraw_screen_rect): Allow blend/replace of text layer to be ++ controlled independently from whether there is a background bitmap. ++ (grub_gfxterm_background_image_cmd): Change blend_text_bg when ++ changing bitmap. +Index: b/grub-core/Makefile.core.def +=================================================================== +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -178,6 +178,7 @@ + videoinkernel = io/bufio.c; + videoinkernel = video/bitmap.c; + videoinkernel = video/bitmap_scale.c; ++ videoinkernel = video/colors.c; + videoinkernel = video/fb/fbblit.c; + videoinkernel = video/fb/fbfill.c; + videoinkernel = video/fb/fbutil.c; +@@ -1056,7 +1057,6 @@ + common = gfxmenu/gui_progress_bar.c; + common = gfxmenu/gui_util.c; + common = gfxmenu/gui_string_util.c; +- common = gfxmenu/named_colors.c; + }; + + module = { +@@ -1463,6 +1463,7 @@ + module = { + name = video; + common = video/video.c; ++ common = video/colors.c; + enable = videomodules; + }; + +Index: b/grub-core/gfxmenu/gui_label.c +=================================================================== +--- a/grub-core/gfxmenu/gui_label.c ++++ b/grub-core/gfxmenu/gui_label.c +@@ -48,7 +48,7 @@ + char *text; + char *template; + grub_font_t font; +- grub_gui_color_t color; ++ grub_video_rgba_color_t color; + int value; + enum align_mode align; + }; +@@ -107,7 +107,7 @@ + grub_gui_set_viewport (&self->bounds, &vpsave); + grub_font_draw_string (self->text, + self->font, +- grub_gui_map_color (self->color), ++ grub_video_map_rgba_color (self->color), + left_x, + grub_font_get_ascent (self->font)); + grub_gui_restore_viewport (&vpsave); +@@ -186,7 +186,7 @@ + } + else if (grub_strcmp (name, "color") == 0) + { +- grub_gui_parse_color (value, &self->color); ++ grub_video_parse_color (value, &self->color); + } + else if (grub_strcmp (name, "align") == 0) + { +Index: b/grub-core/gfxmenu/gui_list.c +=================================================================== +--- a/grub-core/gfxmenu/gui_list.c ++++ b/grub-core/gfxmenu/gui_list.c +@@ -41,9 +41,9 @@ + int item_spacing; + grub_font_t item_font; + grub_font_t selected_item_font; +- grub_gui_color_t item_color; ++ grub_video_rgba_color_t item_color; + int selected_item_color_set; +- grub_gui_color_t selected_item_color; ++ grub_video_rgba_color_t selected_item_color; + + int draw_scrollbar; + int need_to_recreate_scrollbar; +@@ -269,13 +269,13 @@ + (is_selected && self->selected_item_font + ? self->selected_item_font + : self->item_font); +- grub_gui_color_t text_color = ++ grub_video_rgba_color_t text_color = + ((is_selected && self->selected_item_color_set) + ? self->selected_item_color + : self->item_color); + grub_font_draw_string (item_title, + font, +- grub_gui_map_color (text_color), ++ grub_video_map_rgba_color (text_color), + sel_leftpad + self->icon_width + icon_text_space, + (item_top + (item_height - (ascent + descent)) + / 2 + ascent)); +@@ -431,7 +431,7 @@ + } + else if (grub_strcmp (name, "item_color") == 0) + { +- grub_gui_parse_color (value, &self->item_color); ++ grub_video_parse_color (value, &self->item_color); + } + else if (grub_strcmp (name, "selected_item_color") == 0) + { +@@ -441,7 +441,7 @@ + } + else + { +- if (grub_gui_parse_color (value, &self->selected_item_color) ++ if (grub_video_parse_color (value, &self->selected_item_color) + == GRUB_ERR_NONE) + self->selected_item_color_set = 1; + } +@@ -564,7 +564,7 @@ + { + list_impl_t self; + grub_font_t default_font; +- grub_gui_color_t default_fg_color; ++ grub_video_rgba_color_t default_fg_color; + + self = grub_zalloc (sizeof (*self)); + if (! self) +@@ -576,7 +576,7 @@ + self->visible = 1; + + default_font = grub_font_get ("Unknown Regular 16"); +- default_fg_color = grub_gui_color_rgb (0, 0, 0); ++ default_fg_color = grub_video_rgba_color_rgb (0, 0, 0); + + self->icon_width = 32; + self->icon_height = 32; +Index: b/grub-core/gfxmenu/gui_progress_bar.c +=================================================================== +--- a/grub-core/gfxmenu/gui_progress_bar.c ++++ b/grub-core/gfxmenu/gui_progress_bar.c +@@ -40,10 +40,10 @@ + int show_text; + char *template; + grub_font_t font; +- grub_gui_color_t text_color; +- grub_gui_color_t border_color; +- grub_gui_color_t bg_color; +- grub_gui_color_t fg_color; ++ grub_video_rgba_color_t text_color; ++ grub_video_rgba_color_t border_color; ++ grub_video_rgba_color_t bg_color; ++ grub_video_rgba_color_t fg_color; + + char *theme_dir; + int need_to_recreate_pixmaps; +@@ -109,7 +109,7 @@ + f.height = self->bounds.height - 2; + + /* Border. */ +- grub_video_fill_rect (grub_gui_map_color (self->border_color), ++ grub_video_fill_rect (grub_video_map_rgba_color (self->border_color), + f.x - 1, f.y - 1, + f.width + 2, f.height + 2); + +@@ -117,12 +117,12 @@ + int barwidth = (f.width + * (self->value - self->start) + / (self->end - self->start)); +- grub_video_fill_rect (grub_gui_map_color (self->bg_color), ++ grub_video_fill_rect (grub_video_map_rgba_color (self->bg_color), + f.x + barwidth, f.y, + f.width - barwidth, f.height); + + /* Bar foreground. */ +- grub_video_fill_rect (grub_gui_map_color (self->fg_color), ++ grub_video_fill_rect (grub_video_map_rgba_color (self->fg_color), + f.x, f.y, + barwidth, f.height); + } +@@ -161,7 +161,8 @@ + if (self->template) + { + grub_font_t font = self->font; +- grub_video_color_t text_color = grub_gui_map_color (self->text_color); ++ grub_video_color_t text_color = ++ grub_video_map_rgba_color (self->text_color); + int width = self->bounds.width; + int height = self->bounds.height; + char *text; +@@ -298,19 +299,19 @@ + } + else if (grub_strcmp (name, "text_color") == 0) + { +- grub_gui_parse_color (value, &self->text_color); ++ grub_video_parse_color (value, &self->text_color); + } + else if (grub_strcmp (name, "border_color") == 0) + { +- grub_gui_parse_color (value, &self->border_color); ++ grub_video_parse_color (value, &self->border_color); + } + else if (grub_strcmp (name, "bg_color") == 0) + { +- grub_gui_parse_color (value, &self->bg_color); ++ grub_video_parse_color (value, &self->bg_color); + } + else if (grub_strcmp (name, "fg_color") == 0) + { +- grub_gui_parse_color (value, &self->fg_color); ++ grub_video_parse_color (value, &self->fg_color); + } + else if (grub_strcmp (name, "bar_style") == 0) + { +@@ -379,9 +380,9 @@ + self->progress.component.ops = &progress_bar_ops; + self->visible = 1; + self->font = grub_font_get ("Unknown Regular 16"); +- grub_gui_color_t black = { .red = 0, .green = 0, .blue = 0, .alpha = 255 }; +- grub_gui_color_t gray = { .red = 128, .green = 128, .blue = 128, .alpha = 255 }; +- grub_gui_color_t lightgray = { .red = 200, .green = 200, .blue = 200, .alpha = 255 }; ++ grub_video_rgba_color_t black = { .red = 0, .green = 0, .blue = 0, .alpha = 255 }; ++ grub_video_rgba_color_t gray = { .red = 128, .green = 128, .blue = 128, .alpha = 255 }; ++ grub_video_rgba_color_t lightgray = { .red = 200, .green = 200, .blue = 200, .alpha = 255 }; + self->text_color = black; + self->border_color = black; + self->bg_color = gray; +Index: b/grub-core/gfxmenu/gui_string_util.c +=================================================================== +--- a/grub-core/gfxmenu/gui_string_util.c ++++ b/grub-core/gfxmenu/gui_string_util.c +@@ -204,124 +204,3 @@ + + return grub_new_substring (file_path, 0, last_slash + 1); + } +- +-static __inline int +-my_isxdigit (char c) +-{ +- return ((c >= '0' && c <= '9') +- || (c >= 'a' && c <= 'f') +- || (c >= 'A' && c <= 'F')); +-} +- +-static int +-parse_hex_color_component (const char *s, unsigned start, unsigned end) +-{ +- unsigned len; +- char buf[3]; +- +- len = end - start; +- /* Check the limits so we don't overrun the buffer. */ +- if (len < 1 || len > 2) +- return 0; +- +- if (len == 1) +- { +- buf[0] = s[start]; /* Get the first and only hex digit. */ +- buf[1] = buf[0]; /* Duplicate the hex digit. */ +- } +- else if (len == 2) +- { +- buf[0] = s[start]; +- buf[1] = s[start + 1]; +- } +- +- buf[2] = '\0'; +- +- return grub_strtoul (buf, 0, 16); +-} +- +-/* Parse a color string of the form "r, g, b", "#RGB", "#RGBA", +- "#RRGGBB", or "#RRGGBBAA". */ +-grub_err_t +-grub_gui_parse_color (const char *s, grub_gui_color_t *color) +-{ +- grub_gui_color_t c; +- +- /* Skip whitespace. */ +- while (*s && grub_isspace (*s)) +- s++; +- +- if (*s == '#') +- { +- /* HTML-style. Number if hex digits: +- [6] #RRGGBB [3] #RGB +- [8] #RRGGBBAA [4] #RGBA */ +- +- s++; /* Skip the '#'. */ +- /* Count the hexits to determine the format. */ +- int hexits = 0; +- const char *end = s; +- while (my_isxdigit (*end)) +- { +- end++; +- hexits++; +- } +- +- /* Parse the color components based on the format. */ +- if (hexits == 3 || hexits == 4) +- { +- c.red = parse_hex_color_component (s, 0, 1); +- c.green = parse_hex_color_component (s, 1, 2); +- c.blue = parse_hex_color_component (s, 2, 3); +- if (hexits == 4) +- c.alpha = parse_hex_color_component (s, 3, 4); +- else +- c.alpha = 255; +- } +- else if (hexits == 6 || hexits == 8) +- { +- c.red = parse_hex_color_component (s, 0, 2); +- c.green = parse_hex_color_component (s, 2, 4); +- c.blue = parse_hex_color_component (s, 4, 6); +- if (hexits == 8) +- c.alpha = parse_hex_color_component (s, 6, 8); +- else +- c.alpha = 255; +- } +- else +- return grub_error (GRUB_ERR_BAD_ARGUMENT, +- "invalid HTML-type color string `%s'", s); +- } +- else if (grub_isdigit (*s)) +- { +- /* Comma separated decimal values. */ +- c.red = grub_strtoul (s, 0, 0); +- if ((s = grub_strchr (s, ',')) == 0) +- return grub_error (GRUB_ERR_BAD_ARGUMENT, +- "missing 1st comma separator in color `%s'", s); +- s++; +- c.green = grub_strtoul (s, 0, 0); +- if ((s = grub_strchr (s, ',')) == 0) +- return grub_error (GRUB_ERR_BAD_ARGUMENT, +- "missing 2nd comma separator in color `%s'", s); +- s++; +- c.blue = grub_strtoul (s, 0, 0); +- if ((s = grub_strchr (s, ',')) == 0) +- c.alpha = 255; +- else +- { +- s++; +- c.alpha = grub_strtoul (s, 0, 0); +- } +- } +- else +- { +- if (! grub_gui_get_named_color (s, &c)) +- return grub_error (GRUB_ERR_BAD_ARGUMENT, +- "invalid named color `%s'", s); +- } +- +- if (grub_errno == GRUB_ERR_NONE) +- *color = c; +- return grub_errno; +-} +Index: b/grub-core/gfxmenu/named_colors.c +=================================================================== +--- a/grub-core/gfxmenu/named_colors.c ++++ /dev/null +@@ -1,209 +0,0 @@ +-/* named_colors.c - Named color values. */ +-/* +- * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2008 Free Software Foundation, Inc. +- * +- * GRUB 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. +- * +- * GRUB 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 GRUB. If not, see . +- */ +- +-#include +-#include +-#include +-#include +- +-struct named_color +-{ +- const char *name; +- grub_gui_color_t color; +-}; +- +-/* +- Named color list generated from the list of SVG color keywords from +- , +- processed through the following Perl command: +- perl -ne 'chomp;split;print "{ \"$_[0]\", RGB_COLOR($_[2]) },\n"' +- */ +- +-#define RGB_COLOR(r,g,b) {.red = r, .green = g, .blue = b, .alpha = 255} +- +-static struct named_color named_colors[] = +-{ +- { "aliceblue", RGB_COLOR(240,248,255) }, +- { "antiquewhite", RGB_COLOR(250,235,215) }, +- { "aqua", RGB_COLOR(0,255,255) }, +- { "aquamarine", RGB_COLOR(127,255,212) }, +- { "azure", RGB_COLOR(240,255,255) }, +- { "beige", RGB_COLOR(245,245,220) }, +- { "bisque", RGB_COLOR(255,228,196) }, +- { "black", RGB_COLOR(0,0,0) }, +- { "blanchedalmond", RGB_COLOR(255,235,205) }, +- { "blue", RGB_COLOR(0,0,255) }, +- { "blueviolet", RGB_COLOR(138,43,226) }, +- { "brown", RGB_COLOR(165,42,42) }, +- { "burlywood", RGB_COLOR(222,184,135) }, +- { "cadetblue", RGB_COLOR(95,158,160) }, +- { "chartreuse", RGB_COLOR(127,255,0) }, +- { "chocolate", RGB_COLOR(210,105,30) }, +- { "coral", RGB_COLOR(255,127,80) }, +- { "cornflowerblue", RGB_COLOR(100,149,237) }, +- { "cornsilk", RGB_COLOR(255,248,220) }, +- { "crimson", RGB_COLOR(220,20,60) }, +- { "cyan", RGB_COLOR(0,255,255) }, +- { "darkblue", RGB_COLOR(0,0,139) }, +- { "darkcyan", RGB_COLOR(0,139,139) }, +- { "darkgoldenrod", RGB_COLOR(184,134,11) }, +- { "darkgray", RGB_COLOR(169,169,169) }, +- { "darkgreen", RGB_COLOR(0,100,0) }, +- { "darkgrey", RGB_COLOR(169,169,169) }, +- { "darkkhaki", RGB_COLOR(189,183,107) }, +- { "darkmagenta", RGB_COLOR(139,0,139) }, +- { "darkolivegreen", RGB_COLOR(85,107,47) }, +- { "darkorange", RGB_COLOR(255,140,0) }, +- { "darkorchid", RGB_COLOR(153,50,204) }, +- { "darkred", RGB_COLOR(139,0,0) }, +- { "darksalmon", RGB_COLOR(233,150,122) }, +- { "darkseagreen", RGB_COLOR(143,188,143) }, +- { "darkslateblue", RGB_COLOR(72,61,139) }, +- { "darkslategray", RGB_COLOR(47,79,79) }, +- { "darkslategrey", RGB_COLOR(47,79,79) }, +- { "darkturquoise", RGB_COLOR(0,206,209) }, +- { "darkviolet", RGB_COLOR(148,0,211) }, +- { "deeppink", RGB_COLOR(255,20,147) }, +- { "deepskyblue", RGB_COLOR(0,191,255) }, +- { "dimgray", RGB_COLOR(105,105,105) }, +- { "dimgrey", RGB_COLOR(105,105,105) }, +- { "dodgerblue", RGB_COLOR(30,144,255) }, +- { "firebrick", RGB_COLOR(178,34,34) }, +- { "floralwhite", RGB_COLOR(255,250,240) }, +- { "forestgreen", RGB_COLOR(34,139,34) }, +- { "fuchsia", RGB_COLOR(255,0,255) }, +- { "gainsboro", RGB_COLOR(220,220,220) }, +- { "ghostwhite", RGB_COLOR(248,248,255) }, +- { "gold", RGB_COLOR(255,215,0) }, +- { "goldenrod", RGB_COLOR(218,165,32) }, +- { "gray", RGB_COLOR(128,128,128) }, +- { "green", RGB_COLOR(0,128,0) }, +- { "greenyellow", RGB_COLOR(173,255,47) }, +- { "grey", RGB_COLOR(128,128,128) }, +- { "honeydew", RGB_COLOR(240,255,240) }, +- { "hotpink", RGB_COLOR(255,105,180) }, +- { "indianred", RGB_COLOR(205,92,92) }, +- { "indigo", RGB_COLOR(75,0,130) }, +- { "ivory", RGB_COLOR(255,255,240) }, +- { "khaki", RGB_COLOR(240,230,140) }, +- { "lavender", RGB_COLOR(230,230,250) }, +- { "lavenderblush", RGB_COLOR(255,240,245) }, +- { "lawngreen", RGB_COLOR(124,252,0) }, +- { "lemonchiffon", RGB_COLOR(255,250,205) }, +- { "lightblue", RGB_COLOR(173,216,230) }, +- { "lightcoral", RGB_COLOR(240,128,128) }, +- { "lightcyan", RGB_COLOR(224,255,255) }, +- { "lightgoldenrodyellow", RGB_COLOR(250,250,210) }, +- { "lightgray", RGB_COLOR(211,211,211) }, +- { "lightgreen", RGB_COLOR(144,238,144) }, +- { "lightgrey", RGB_COLOR(211,211,211) }, +- { "lightpink", RGB_COLOR(255,182,193) }, +- { "lightsalmon", RGB_COLOR(255,160,122) }, +- { "lightseagreen", RGB_COLOR(32,178,170) }, +- { "lightskyblue", RGB_COLOR(135,206,250) }, +- { "lightslategray", RGB_COLOR(119,136,153) }, +- { "lightslategrey", RGB_COLOR(119,136,153) }, +- { "lightsteelblue", RGB_COLOR(176,196,222) }, +- { "lightyellow", RGB_COLOR(255,255,224) }, +- { "lime", RGB_COLOR(0,255,0) }, +- { "limegreen", RGB_COLOR(50,205,50) }, +- { "linen", RGB_COLOR(250,240,230) }, +- { "magenta", RGB_COLOR(255,0,255) }, +- { "maroon", RGB_COLOR(128,0,0) }, +- { "mediumaquamarine", RGB_COLOR(102,205,170) }, +- { "mediumblue", RGB_COLOR(0,0,205) }, +- { "mediumorchid", RGB_COLOR(186,85,211) }, +- { "mediumpurple", RGB_COLOR(147,112,219) }, +- { "mediumseagreen", RGB_COLOR(60,179,113) }, +- { "mediumslateblue", RGB_COLOR(123,104,238) }, +- { "mediumspringgreen", RGB_COLOR(0,250,154) }, +- { "mediumturquoise", RGB_COLOR(72,209,204) }, +- { "mediumvioletred", RGB_COLOR(199,21,133) }, +- { "midnightblue", RGB_COLOR(25,25,112) }, +- { "mintcream", RGB_COLOR(245,255,250) }, +- { "mistyrose", RGB_COLOR(255,228,225) }, +- { "moccasin", RGB_COLOR(255,228,181) }, +- { "navajowhite", RGB_COLOR(255,222,173) }, +- { "navy", RGB_COLOR(0,0,128) }, +- { "oldlace", RGB_COLOR(253,245,230) }, +- { "olive", RGB_COLOR(128,128,0) }, +- { "olivedrab", RGB_COLOR(107,142,35) }, +- { "orange", RGB_COLOR(255,165,0) }, +- { "orangered", RGB_COLOR(255,69,0) }, +- { "orchid", RGB_COLOR(218,112,214) }, +- { "palegoldenrod", RGB_COLOR(238,232,170) }, +- { "palegreen", RGB_COLOR(152,251,152) }, +- { "paleturquoise", RGB_COLOR(175,238,238) }, +- { "palevioletred", RGB_COLOR(219,112,147) }, +- { "papayawhip", RGB_COLOR(255,239,213) }, +- { "peachpuff", RGB_COLOR(255,218,185) }, +- { "peru", RGB_COLOR(205,133,63) }, +- { "pink", RGB_COLOR(255,192,203) }, +- { "plum", RGB_COLOR(221,160,221) }, +- { "powderblue", RGB_COLOR(176,224,230) }, +- { "purple", RGB_COLOR(128,0,128) }, +- { "red", RGB_COLOR(255,0,0) }, +- { "rosybrown", RGB_COLOR(188,143,143) }, +- { "royalblue", RGB_COLOR(65,105,225) }, +- { "saddlebrown", RGB_COLOR(139,69,19) }, +- { "salmon", RGB_COLOR(250,128,114) }, +- { "sandybrown", RGB_COLOR(244,164,96) }, +- { "seagreen", RGB_COLOR(46,139,87) }, +- { "seashell", RGB_COLOR(255,245,238) }, +- { "sienna", RGB_COLOR(160,82,45) }, +- { "silver", RGB_COLOR(192,192,192) }, +- { "skyblue", RGB_COLOR(135,206,235) }, +- { "slateblue", RGB_COLOR(106,90,205) }, +- { "slategray", RGB_COLOR(112,128,144) }, +- { "slategrey", RGB_COLOR(112,128,144) }, +- { "snow", RGB_COLOR(255,250,250) }, +- { "springgreen", RGB_COLOR(0,255,127) }, +- { "steelblue", RGB_COLOR(70,130,180) }, +- { "tan", RGB_COLOR(210,180,140) }, +- { "teal", RGB_COLOR(0,128,128) }, +- { "thistle", RGB_COLOR(216,191,216) }, +- { "tomato", RGB_COLOR(255,99,71) }, +- { "turquoise", RGB_COLOR(64,224,208) }, +- { "violet", RGB_COLOR(238,130,238) }, +- { "wheat", RGB_COLOR(245,222,179) }, +- { "white", RGB_COLOR(255,255,255) }, +- { "whitesmoke", RGB_COLOR(245,245,245) }, +- { "yellow", RGB_COLOR(255,255,0) }, +- { "yellowgreen", RGB_COLOR(154,205,50) }, +- { 0, { 0, 0, 0, 0 } } /* Terminator. */ +-}; +- +-/* Get the color named NAME. If the color was found, returns 1 and +- stores the color into *COLOR. If the color was not found, returns 0 and +- does not modify *COLOR. */ +-int +-grub_gui_get_named_color (const char *name, +- grub_gui_color_t *color) +-{ +- int i; +- for (i = 0; named_colors[i].name; i++) +- { +- if (grub_strcmp (named_colors[i].name, name) == 0) +- { +- *color = named_colors[i].color; +- return 1; +- } +- } +- return 0; +-} +Index: b/grub-core/gfxmenu/theme_loader.c +=================================================================== +--- a/grub-core/gfxmenu/theme_loader.c ++++ b/grub-core/gfxmenu/theme_loader.c +@@ -135,11 +135,11 @@ + return grub_errno; + } + else if (! grub_strcmp ("title-color", name)) +- grub_gui_parse_color (value, &view->title_color); ++ grub_video_parse_color (value, &view->title_color); + else if (! grub_strcmp ("message-color", name)) +- grub_gui_parse_color (value, &view->message_color); ++ grub_video_parse_color (value, &view->message_color); + else if (! grub_strcmp ("message-bg-color", name)) +- grub_gui_parse_color (value, &view->message_bg_color); ++ grub_video_parse_color (value, &view->message_bg_color); + else if (! grub_strcmp ("desktop-image", name)) + { + struct grub_video_bitmap *raw_bitmap; +@@ -170,7 +170,7 @@ + view->desktop_image = scaled_bitmap; + } + else if (! grub_strcmp ("desktop-color", name)) +- grub_gui_parse_color (value, &view->desktop_color); ++ grub_video_parse_color (value, &view->desktop_color); + else if (! grub_strcmp ("terminal-box", name)) + { + grub_err_t err; +Index: b/grub-core/gfxmenu/view.c +=================================================================== +--- a/grub-core/gfxmenu/view.c ++++ b/grub-core/gfxmenu/view.c +@@ -50,8 +50,8 @@ + { + grub_gfxmenu_view_t view; + grub_font_t default_font; +- grub_gui_color_t default_fg_color; +- grub_gui_color_t default_bg_color; ++ grub_video_rgba_color_t default_fg_color; ++ grub_video_rgba_color_t default_bg_color; + + view = grub_malloc (sizeof (*view)); + if (! view) +@@ -63,8 +63,8 @@ + view->screen.height = height; + + default_font = grub_font_get ("Unknown Regular 16"); +- default_fg_color = grub_gui_color_rgb (0, 0, 0); +- default_bg_color = grub_gui_color_rgb (255, 255, 255); ++ default_fg_color = grub_video_rgba_color_rgb (0, 0, 0); ++ default_bg_color = grub_video_rgba_color_rgb (255, 255, 255); + + view->canvas = 0; + +@@ -131,7 +131,7 @@ + } + else + { +- grub_video_fill_rect (grub_gui_map_color (view->desktop_color), ++ grub_video_fill_rect (grub_video_map_rgba_color (view->desktop_color), + bounds->x, bounds->y, + bounds->width, bounds->height); + } +@@ -150,7 +150,7 @@ + int y = 40 + grub_font_get_ascent (view->title_font); + grub_font_draw_string (view->title_text, + view->title_font, +- grub_gui_map_color (view->title_color), ++ grub_video_map_rgba_color (view->title_color), + x, y); + } + +@@ -244,13 +244,13 @@ + return; + + grub_font_t font = view->message_font; +- grub_video_color_t color = grub_gui_map_color (view->message_color); ++ grub_video_color_t color = grub_video_map_rgba_color (view->message_color); + + /* Border. */ + grub_video_fill_rect (color, + f.x-1, f.y-1, f.width+2, f.height+2); + /* Fill. */ +- grub_video_fill_rect (grub_gui_map_color (view->message_bg_color), ++ grub_video_fill_rect (grub_video_map_rgba_color (view->message_bg_color), + f.x, f.y, f.width, f.height); + + /* Center the text. */ +Index: b/grub-core/term/gfxterm.c +=================================================================== +--- a/grub-core/term/gfxterm.c ++++ b/grub-core/term/gfxterm.c +@@ -130,6 +130,7 @@ + static unsigned int bitmap_width; + static unsigned int bitmap_height; + static struct grub_video_bitmap *bitmap; ++static int blend_text_bg; + + static struct grub_dirty_region dirty_region; + +@@ -476,26 +477,27 @@ + /* Render background layer. */ + grub_video_fill_rect (color, x, ty, width, h); + } +- +- /* Render text layer as blended. */ +- grub_video_blit_render_target (text_layer, GRUB_VIDEO_BLIT_BLEND, x, y, +- x - virtual_screen.offset_x, +- y - virtual_screen.offset_y, +- width, height); + } + else + { + /* Render background layer. */ + color = virtual_screen.bg_color_display; + grub_video_fill_rect (color, x, y, width, height); +- +- /* Render text layer as replaced (to get texts background color). */ +- grub_video_blit_render_target (text_layer, GRUB_VIDEO_BLIT_REPLACE, x, y, +- x - virtual_screen.offset_x, +- y - virtual_screen.offset_y, +- width, height); + } + ++ if (blend_text_bg) ++ /* Render text layer as blended. */ ++ grub_video_blit_render_target (text_layer, GRUB_VIDEO_BLIT_BLEND, x, y, ++ x - virtual_screen.offset_x, ++ y - virtual_screen.offset_y, ++ width, height); ++ else ++ /* Render text layer as replaced (to get texts background color). */ ++ grub_video_blit_render_target (text_layer, GRUB_VIDEO_BLIT_REPLACE, x, y, ++ x - virtual_screen.offset_x, ++ y - virtual_screen.offset_y, ++ width, height); ++ + /* Restore saved viewport. */ + grub_video_set_viewport (saved_view.x, saved_view.y, + saved_view.width, saved_view.height); +@@ -1127,6 +1129,7 @@ + { + grub_video_bitmap_destroy (bitmap); + bitmap = 0; ++ blend_text_bg = 0; + + /* Mark whole screen as dirty. */ + dirty_region_add (0, 0, window.width, window.height); +@@ -1166,6 +1169,8 @@ + /* If bitmap was loaded correctly, display it. */ + if (bitmap) + { ++ blend_text_bg = 1; ++ + /* Determine bitmap dimensions. */ + bitmap_width = grub_video_bitmap_get_width (bitmap); + bitmap_height = grub_video_bitmap_get_height (bitmap); +@@ -1180,6 +1185,48 @@ + return grub_errno; + } + ++static grub_err_t ++grub_gfxterm_background_color_cmd (grub_command_t cmd __attribute__ ((unused)), ++ int argc, char **args) ++{ ++ grub_video_rgba_color_t color; ++ struct grub_video_render_target *old_target; ++ ++ if (argc != 1) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, "missing operand"); ++ ++ /* Check that we have video adapter active. */ ++ if (grub_video_get_info (NULL) != GRUB_ERR_NONE) ++ return grub_errno; ++ ++ if (grub_video_parse_color (args[0], &color) != GRUB_ERR_NONE) ++ return grub_errno; ++ ++ /* Destroy existing background bitmap if loaded. */ ++ if (bitmap) ++ { ++ grub_video_bitmap_destroy (bitmap); ++ bitmap = 0; ++ ++ /* Mark whole screen as dirty. */ ++ dirty_region_add (0, 0, window.width, window.height); ++ } ++ ++ /* Set the background and border colors. The background color needs to be ++ compatible with the text layer. */ ++ grub_video_get_active_render_target (&old_target); ++ grub_video_set_active_render_target (text_layer); ++ virtual_screen.bg_color = grub_video_map_rgba_color (color); ++ grub_video_set_active_render_target (old_target); ++ virtual_screen.bg_color_display = grub_video_map_rgba_color (color); ++ blend_text_bg = 1; ++ ++ /* Mark whole screen as dirty. */ ++ dirty_region_add (0, 0, window.width, window.height); ++ ++ return GRUB_ERR_NONE; ++} ++ + static struct grub_term_output grub_video_term = + { + .name = "gfxterm", +@@ -1201,6 +1248,7 @@ + }; + + static grub_extcmd_t background_image_cmd_handle; ++static grub_command_t background_color_cmd_handle; + + GRUB_MOD_INIT(gfxterm) + { +@@ -1211,10 +1259,16 @@ + N_("[-m (stretch|normal)] FILE"), + N_("Load background image for active terminal."), + background_image_cmd_options); ++ background_color_cmd_handle = ++ grub_register_command ("background_color", ++ grub_gfxterm_background_color_cmd, ++ N_("COLOR"), ++ N_("Set background color for active terminal.")); + } + + GRUB_MOD_FINI(gfxterm) + { ++ grub_unregister_command (background_color_cmd_handle); + grub_unregister_extcmd (background_image_cmd_handle); + grub_term_unregister_output (&grub_video_term); + } +Index: b/include/grub/gfxmenu_view.h +=================================================================== +--- a/include/grub/gfxmenu_view.h ++++ b/include/grub/gfxmenu_view.h +@@ -87,11 +87,11 @@ + grub_font_t title_font; + grub_font_t message_font; + char *terminal_font_name; +- grub_gui_color_t title_color; +- grub_gui_color_t message_color; +- grub_gui_color_t message_bg_color; ++ grub_video_rgba_color_t title_color; ++ grub_video_rgba_color_t message_color; ++ grub_video_rgba_color_t message_bg_color; + struct grub_video_bitmap *desktop_image; +- grub_gui_color_t desktop_color; ++ grub_video_rgba_color_t desktop_color; + grub_gfxmenu_box_t terminal_box; + char *title_text; + char *progress_message_text; +Index: b/include/grub/gui.h +=================================================================== +--- a/include/grub/gui.h ++++ b/include/grub/gui.h +@@ -31,16 +31,6 @@ + status changes. */ + #define GRUB_GFXMENU_TIMEOUT_COMPONENT_ID "__timeout__" + +-/* A representation of a color. Unlike grub_video_color_t, this +- representation is independent of any video mode specifics. */ +-typedef struct grub_gui_color +-{ +- grub_uint8_t red; +- grub_uint8_t green; +- grub_uint8_t blue; +- grub_uint8_t alpha; +-} grub_gui_color_t; +- + typedef struct grub_gui_component *grub_gui_component_t; + typedef struct grub_gui_container *grub_gui_container_t; + typedef struct grub_gui_list *grub_gui_list_t; +@@ -242,23 +232,6 @@ + r->height); + } + +-static __inline grub_gui_color_t +-grub_gui_color_rgb (int r, int g, int b) +-{ +- grub_gui_color_t c; +- c.red = r; +- c.green = g; +- c.blue = b; +- c.alpha = 255; +- return c; +-} +- +-static __inline grub_video_color_t +-grub_gui_map_color (grub_gui_color_t c) +-{ +- return grub_video_map_rgba (c.red, c.green, c.blue, c.alpha); +-} +- + static inline int + grub_video_have_common_points (const grub_video_rect_t *a, + const grub_video_rect_t *b) +Index: b/include/grub/gui_string_util.h +=================================================================== +--- a/include/grub/gui_string_util.h ++++ b/include/grub/gui_string_util.h +@@ -30,8 +30,4 @@ + + char *grub_get_dirname (const char *file_path); + +-int grub_gui_get_named_color (const char *name, grub_gui_color_t *color); +- +-grub_err_t grub_gui_parse_color (const char *s, grub_gui_color_t *color); +- + #endif /* GRUB_GUI_STRING_UTIL_HEADER */ +Index: b/include/grub/video.h +=================================================================== +--- a/include/grub/video.h ++++ b/include/grub/video.h +@@ -27,6 +27,15 @@ + specific coding format. */ + typedef grub_uint32_t grub_video_color_t; + ++/* Video color in hardware independent format. */ ++typedef struct grub_video_rgba_color ++{ ++ grub_uint8_t red; ++ grub_uint8_t green; ++ grub_uint8_t blue; ++ grub_uint8_t alpha; ++} grub_video_rgba_color_t; ++ + /* This structure is driver specific and should not be accessed directly by + outside code. */ + struct grub_video_render_target; +@@ -428,4 +437,27 @@ + + grub_video_driver_id_t EXPORT_FUNC (grub_video_get_driver_id) (void); + ++static __inline grub_video_rgba_color_t ++grub_video_rgba_color_rgb (int r, int g, int b) ++{ ++ grub_video_rgba_color_t c; ++ c.red = r; ++ c.green = g; ++ c.blue = b; ++ c.alpha = 255; ++ return c; ++} ++ ++static __inline grub_video_color_t ++grub_video_map_rgba_color (grub_video_rgba_color_t c) ++{ ++ return grub_video_map_rgba (c.red, c.green, c.blue, c.alpha); ++} ++ ++int EXPORT_FUNC (grub_video_get_named_color) (const char *name, ++ grub_video_rgba_color_t *color); ++ ++grub_err_t EXPORT_FUNC (grub_video_parse_color) (const char *s, ++ grub_video_rgba_color_t *color); ++ + #endif /* ! GRUB_VIDEO_HEADER */ +Index: b/grub-core/video/colors.c +=================================================================== +--- /dev/null ++++ b/grub-core/video/colors.c +@@ -0,0 +1,330 @@ ++/* named_colors.c - Named color values. */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2008 Free Software Foundation, Inc. ++ * ++ * GRUB 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. ++ * ++ * GRUB 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 GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++ ++struct named_color ++{ ++ const char *name; ++ grub_video_rgba_color_t color; ++}; ++ ++/* ++ Named color list generated from the list of SVG color keywords from ++ , ++ processed through the following Perl command: ++ perl -ne 'chomp;split;print "{ \"$_[0]\", RGB_COLOR($_[2]) },\n"' ++ */ ++ ++#define RGB_COLOR(r,g,b) {.red = r, .green = g, .blue = b, .alpha = 255} ++ ++static struct named_color named_colors[] = ++{ ++ { "aliceblue", RGB_COLOR(240,248,255) }, ++ { "antiquewhite", RGB_COLOR(250,235,215) }, ++ { "aqua", RGB_COLOR(0,255,255) }, ++ { "aquamarine", RGB_COLOR(127,255,212) }, ++ { "azure", RGB_COLOR(240,255,255) }, ++ { "beige", RGB_COLOR(245,245,220) }, ++ { "bisque", RGB_COLOR(255,228,196) }, ++ { "black", RGB_COLOR(0,0,0) }, ++ { "blanchedalmond", RGB_COLOR(255,235,205) }, ++ { "blue", RGB_COLOR(0,0,255) }, ++ { "blueviolet", RGB_COLOR(138,43,226) }, ++ { "brown", RGB_COLOR(165,42,42) }, ++ { "burlywood", RGB_COLOR(222,184,135) }, ++ { "cadetblue", RGB_COLOR(95,158,160) }, ++ { "chartreuse", RGB_COLOR(127,255,0) }, ++ { "chocolate", RGB_COLOR(210,105,30) }, ++ { "coral", RGB_COLOR(255,127,80) }, ++ { "cornflowerblue", RGB_COLOR(100,149,237) }, ++ { "cornsilk", RGB_COLOR(255,248,220) }, ++ { "crimson", RGB_COLOR(220,20,60) }, ++ { "cyan", RGB_COLOR(0,255,255) }, ++ { "darkblue", RGB_COLOR(0,0,139) }, ++ { "darkcyan", RGB_COLOR(0,139,139) }, ++ { "darkgoldenrod", RGB_COLOR(184,134,11) }, ++ { "darkgray", RGB_COLOR(169,169,169) }, ++ { "darkgreen", RGB_COLOR(0,100,0) }, ++ { "darkgrey", RGB_COLOR(169,169,169) }, ++ { "darkkhaki", RGB_COLOR(189,183,107) }, ++ { "darkmagenta", RGB_COLOR(139,0,139) }, ++ { "darkolivegreen", RGB_COLOR(85,107,47) }, ++ { "darkorange", RGB_COLOR(255,140,0) }, ++ { "darkorchid", RGB_COLOR(153,50,204) }, ++ { "darkred", RGB_COLOR(139,0,0) }, ++ { "darksalmon", RGB_COLOR(233,150,122) }, ++ { "darkseagreen", RGB_COLOR(143,188,143) }, ++ { "darkslateblue", RGB_COLOR(72,61,139) }, ++ { "darkslategray", RGB_COLOR(47,79,79) }, ++ { "darkslategrey", RGB_COLOR(47,79,79) }, ++ { "darkturquoise", RGB_COLOR(0,206,209) }, ++ { "darkviolet", RGB_COLOR(148,0,211) }, ++ { "deeppink", RGB_COLOR(255,20,147) }, ++ { "deepskyblue", RGB_COLOR(0,191,255) }, ++ { "dimgray", RGB_COLOR(105,105,105) }, ++ { "dimgrey", RGB_COLOR(105,105,105) }, ++ { "dodgerblue", RGB_COLOR(30,144,255) }, ++ { "firebrick", RGB_COLOR(178,34,34) }, ++ { "floralwhite", RGB_COLOR(255,250,240) }, ++ { "forestgreen", RGB_COLOR(34,139,34) }, ++ { "fuchsia", RGB_COLOR(255,0,255) }, ++ { "gainsboro", RGB_COLOR(220,220,220) }, ++ { "ghostwhite", RGB_COLOR(248,248,255) }, ++ { "gold", RGB_COLOR(255,215,0) }, ++ { "goldenrod", RGB_COLOR(218,165,32) }, ++ { "gray", RGB_COLOR(128,128,128) }, ++ { "green", RGB_COLOR(0,128,0) }, ++ { "greenyellow", RGB_COLOR(173,255,47) }, ++ { "grey", RGB_COLOR(128,128,128) }, ++ { "honeydew", RGB_COLOR(240,255,240) }, ++ { "hotpink", RGB_COLOR(255,105,180) }, ++ { "indianred", RGB_COLOR(205,92,92) }, ++ { "indigo", RGB_COLOR(75,0,130) }, ++ { "ivory", RGB_COLOR(255,255,240) }, ++ { "khaki", RGB_COLOR(240,230,140) }, ++ { "lavender", RGB_COLOR(230,230,250) }, ++ { "lavenderblush", RGB_COLOR(255,240,245) }, ++ { "lawngreen", RGB_COLOR(124,252,0) }, ++ { "lemonchiffon", RGB_COLOR(255,250,205) }, ++ { "lightblue", RGB_COLOR(173,216,230) }, ++ { "lightcoral", RGB_COLOR(240,128,128) }, ++ { "lightcyan", RGB_COLOR(224,255,255) }, ++ { "lightgoldenrodyellow", RGB_COLOR(250,250,210) }, ++ { "lightgray", RGB_COLOR(211,211,211) }, ++ { "lightgreen", RGB_COLOR(144,238,144) }, ++ { "lightgrey", RGB_COLOR(211,211,211) }, ++ { "lightpink", RGB_COLOR(255,182,193) }, ++ { "lightsalmon", RGB_COLOR(255,160,122) }, ++ { "lightseagreen", RGB_COLOR(32,178,170) }, ++ { "lightskyblue", RGB_COLOR(135,206,250) }, ++ { "lightslategray", RGB_COLOR(119,136,153) }, ++ { "lightslategrey", RGB_COLOR(119,136,153) }, ++ { "lightsteelblue", RGB_COLOR(176,196,222) }, ++ { "lightyellow", RGB_COLOR(255,255,224) }, ++ { "lime", RGB_COLOR(0,255,0) }, ++ { "limegreen", RGB_COLOR(50,205,50) }, ++ { "linen", RGB_COLOR(250,240,230) }, ++ { "magenta", RGB_COLOR(255,0,255) }, ++ { "maroon", RGB_COLOR(128,0,0) }, ++ { "mediumaquamarine", RGB_COLOR(102,205,170) }, ++ { "mediumblue", RGB_COLOR(0,0,205) }, ++ { "mediumorchid", RGB_COLOR(186,85,211) }, ++ { "mediumpurple", RGB_COLOR(147,112,219) }, ++ { "mediumseagreen", RGB_COLOR(60,179,113) }, ++ { "mediumslateblue", RGB_COLOR(123,104,238) }, ++ { "mediumspringgreen", RGB_COLOR(0,250,154) }, ++ { "mediumturquoise", RGB_COLOR(72,209,204) }, ++ { "mediumvioletred", RGB_COLOR(199,21,133) }, ++ { "midnightblue", RGB_COLOR(25,25,112) }, ++ { "mintcream", RGB_COLOR(245,255,250) }, ++ { "mistyrose", RGB_COLOR(255,228,225) }, ++ { "moccasin", RGB_COLOR(255,228,181) }, ++ { "navajowhite", RGB_COLOR(255,222,173) }, ++ { "navy", RGB_COLOR(0,0,128) }, ++ { "oldlace", RGB_COLOR(253,245,230) }, ++ { "olive", RGB_COLOR(128,128,0) }, ++ { "olivedrab", RGB_COLOR(107,142,35) }, ++ { "orange", RGB_COLOR(255,165,0) }, ++ { "orangered", RGB_COLOR(255,69,0) }, ++ { "orchid", RGB_COLOR(218,112,214) }, ++ { "palegoldenrod", RGB_COLOR(238,232,170) }, ++ { "palegreen", RGB_COLOR(152,251,152) }, ++ { "paleturquoise", RGB_COLOR(175,238,238) }, ++ { "palevioletred", RGB_COLOR(219,112,147) }, ++ { "papayawhip", RGB_COLOR(255,239,213) }, ++ { "peachpuff", RGB_COLOR(255,218,185) }, ++ { "peru", RGB_COLOR(205,133,63) }, ++ { "pink", RGB_COLOR(255,192,203) }, ++ { "plum", RGB_COLOR(221,160,221) }, ++ { "powderblue", RGB_COLOR(176,224,230) }, ++ { "purple", RGB_COLOR(128,0,128) }, ++ { "red", RGB_COLOR(255,0,0) }, ++ { "rosybrown", RGB_COLOR(188,143,143) }, ++ { "royalblue", RGB_COLOR(65,105,225) }, ++ { "saddlebrown", RGB_COLOR(139,69,19) }, ++ { "salmon", RGB_COLOR(250,128,114) }, ++ { "sandybrown", RGB_COLOR(244,164,96) }, ++ { "seagreen", RGB_COLOR(46,139,87) }, ++ { "seashell", RGB_COLOR(255,245,238) }, ++ { "sienna", RGB_COLOR(160,82,45) }, ++ { "silver", RGB_COLOR(192,192,192) }, ++ { "skyblue", RGB_COLOR(135,206,235) }, ++ { "slateblue", RGB_COLOR(106,90,205) }, ++ { "slategray", RGB_COLOR(112,128,144) }, ++ { "slategrey", RGB_COLOR(112,128,144) }, ++ { "snow", RGB_COLOR(255,250,250) }, ++ { "springgreen", RGB_COLOR(0,255,127) }, ++ { "steelblue", RGB_COLOR(70,130,180) }, ++ { "tan", RGB_COLOR(210,180,140) }, ++ { "teal", RGB_COLOR(0,128,128) }, ++ { "thistle", RGB_COLOR(216,191,216) }, ++ { "tomato", RGB_COLOR(255,99,71) }, ++ { "turquoise", RGB_COLOR(64,224,208) }, ++ { "violet", RGB_COLOR(238,130,238) }, ++ { "wheat", RGB_COLOR(245,222,179) }, ++ { "white", RGB_COLOR(255,255,255) }, ++ { "whitesmoke", RGB_COLOR(245,245,245) }, ++ { "yellow", RGB_COLOR(255,255,0) }, ++ { "yellowgreen", RGB_COLOR(154,205,50) }, ++ { 0, { 0, 0, 0, 0 } } /* Terminator. */ ++}; ++ ++/* Get the color named NAME. If the color was found, returns 1 and ++ stores the color into *COLOR. If the color was not found, returns 0 and ++ does not modify *COLOR. */ ++int ++grub_video_get_named_color (const char *name, ++ grub_video_rgba_color_t *color) ++{ ++ int i; ++ for (i = 0; named_colors[i].name; i++) ++ { ++ if (grub_strcmp (named_colors[i].name, name) == 0) ++ { ++ *color = named_colors[i].color; ++ return 1; ++ } ++ } ++ return 0; ++} ++ ++static __inline int ++my_isxdigit (char c) ++{ ++ return ((c >= '0' && c <= '9') ++ || (c >= 'a' && c <= 'f') ++ || (c >= 'A' && c <= 'F')); ++} ++ ++static int ++parse_hex_color_component (const char *s, unsigned start, unsigned end) ++{ ++ unsigned len; ++ char buf[3]; ++ ++ len = end - start; ++ /* Check the limits so we don't overrun the buffer. */ ++ if (len < 1 || len > 2) ++ return 0; ++ ++ if (len == 1) ++ { ++ buf[0] = s[start]; /* Get the first and only hex digit. */ ++ buf[1] = buf[0]; /* Duplicate the hex digit. */ ++ } ++ else if (len == 2) ++ { ++ buf[0] = s[start]; ++ buf[1] = s[start + 1]; ++ } ++ ++ buf[2] = '\0'; ++ ++ return grub_strtoul (buf, 0, 16); ++} ++ ++/* Parse a color string of the form "r, g, b", "#RGB", "#RGBA", ++ "#RRGGBB", or "#RRGGBBAA". */ ++grub_err_t ++grub_video_parse_color (const char *s, grub_video_rgba_color_t *color) ++{ ++ grub_video_rgba_color_t c; ++ ++ /* Skip whitespace. */ ++ while (*s && grub_isspace (*s)) ++ s++; ++ ++ if (*s == '#') ++ { ++ /* HTML-style. Number if hex digits: ++ [6] #RRGGBB [3] #RGB ++ [8] #RRGGBBAA [4] #RGBA */ ++ ++ s++; /* Skip the '#'. */ ++ /* Count the hexits to determine the format. */ ++ int hexits = 0; ++ const char *end = s; ++ while (my_isxdigit (*end)) ++ { ++ end++; ++ hexits++; ++ } ++ ++ /* Parse the color components based on the format. */ ++ if (hexits == 3 || hexits == 4) ++ { ++ c.red = parse_hex_color_component (s, 0, 1); ++ c.green = parse_hex_color_component (s, 1, 2); ++ c.blue = parse_hex_color_component (s, 2, 3); ++ if (hexits == 4) ++ c.alpha = parse_hex_color_component (s, 3, 4); ++ else ++ c.alpha = 255; ++ } ++ else if (hexits == 6 || hexits == 8) ++ { ++ c.red = parse_hex_color_component (s, 0, 2); ++ c.green = parse_hex_color_component (s, 2, 4); ++ c.blue = parse_hex_color_component (s, 4, 6); ++ if (hexits == 8) ++ c.alpha = parse_hex_color_component (s, 6, 8); ++ else ++ c.alpha = 255; ++ } ++ else ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, ++ "invalid HTML-type color string `%s'", s); ++ } ++ else if (grub_isdigit (*s)) ++ { ++ /* Comma separated decimal values. */ ++ c.red = grub_strtoul (s, 0, 0); ++ if ((s = grub_strchr (s, ',')) == 0) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, ++ "missing 1st comma separator in color `%s'", s); ++ s++; ++ c.green = grub_strtoul (s, 0, 0); ++ if ((s = grub_strchr (s, ',')) == 0) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, ++ "missing 2nd comma separator in color `%s'", s); ++ s++; ++ c.blue = grub_strtoul (s, 0, 0); ++ if ((s = grub_strchr (s, ',')) == 0) ++ c.alpha = 255; ++ else ++ { ++ s++; ++ c.alpha = grub_strtoul (s, 0, 0); ++ } ++ } ++ else ++ { ++ if (! grub_video_get_named_color (s, &c)) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, ++ "invalid named color `%s'", s); ++ } ++ ++ if (grub_errno == GRUB_ERR_NONE) ++ *color = c; ++ return grub_errno; ++} --- grub2-1.99.orig/debian/patches/install_stage2_confusion.patch +++ grub2-1.99/debian/patches/install_stage2_confusion.patch @@ -0,0 +1,24 @@ +Description: If GRUB Legacy is still around, tell packaging to ignore it +Author: Colin Watson +Bug-Debian: http://bugs.debian.org/586143 +Forwarded: not-needed +Last-Update: 2010-06-18 + +Index: b/util/grub-install.in +=================================================================== +--- a/util/grub-install.in ++++ b/util/grub-install.in +@@ -660,6 +660,13 @@ + fi + fi + ++# If vestiges of GRUB Legacy still exist, tell the Debian packaging that ++# they can ignore them. ++if test -z "$rootdir" && \ ++ test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst; then ++ touch /boot/grub/grub2-installed ++fi ++ + echo "Installation finished. No error reported." + + # Bye. --- grub2-1.99.orig/debian/patches/gfxpayload_keep_default.patch +++ grub2-1.99/debian/patches/gfxpayload_keep_default.patch @@ -0,0 +1,38 @@ +Description: Disable gfxpayload=keep by default + Setting gfxpayload=keep has been known to cause efifb to be inappropriately + enabled. In any case, with the current Linux kernel the result of this + option is that early kernelspace will be unable to print anything to the + console, so (for example) if boot fails and you end up dumped to an + initramfs prompt, you won't be able to see anything on the screen. As such + it shouldn't be enabled by default in Debian, no matter what kernel options + are enabled. + . + gfxpayload=keep is a good idea but rather ahead of its time ... +Author: Colin Watson +Bug-Debian: http://bugs.debian.org/567245 +Forwarded: no +Last-Update: 2010-03-09 + +Index: b/util/grub.d/10_linux.in +=================================================================== +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -77,17 +77,7 @@ + + # Use ELILO's generic "efifb" when it's known to be available. + # FIXME: We need an interface to select vesafb in case efifb can't be used. +- if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then +- cat << EOF +- load_video +-EOF +- if grep -qx "CONFIG_FB_EFI=y" "${config}" 2> /dev/null \ +- && grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" "${config}" 2> /dev/null; then +- cat << EOF +- set gfxpayload=keep +-EOF +- fi +- else ++ if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ]; then + if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then + cat << EOF + load_video --- grub2-1.99.orig/debian/patches/branch_fuse.patch +++ grub2-1.99/debian/patches/branch_fuse.patch @@ -0,0 +1,613 @@ +Description: Add grub-mount utility +Author: Vladimir Serbinenko +Origin: upstream, http://bzr.sv.gnu.org/r/grub/branches/fuse/ +Forwarded: http://lists.gnu.org/archive/html/grub-devel/2011-01/msg00056.html +Last-Update: 2011-04-08 + +Index: b/Makefile.util.def +=================================================================== +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -216,6 +216,21 @@ + }; + + program = { ++ name = grub-mount; ++ mansection = 1; ++ common_nodist = grub_fstest_init.c; ++ common = util/grub-mount.c; ++ common = grub-core/kern/emu/hostfs.c; ++ common = grub-core/disk/host.c; ++ ++ ldadd = libgrubmods.a; ++ ldadd = libgrubkern.a; ++ ldadd = grub-core/gnulib/libgnu.a; ++ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR)' '-lfuse'; ++ condition = COND_GRUB_MOUNT; ++}; ++ ++program = { + name = grub-mkfont; + mansection = 1; + common = util/grub-mkfont.c; +Index: b/configure.ac +=================================================================== +--- a/configure.ac ++++ b/configure.ac +@@ -856,6 +856,37 @@ + AC_SUBST([freetype_cflags]) + AC_SUBST([freetype_libs]) + ++AC_ARG_ENABLE([grub-mount], ++ [AS_HELP_STRING([--enable-grub-mount], ++ [build and install the `grub-mount' utility (default=guessed)])]) ++if test x"$enable_grub_mount" = xno ; then ++ grub_mount_excuse="explicitly disabled" ++fi ++ ++if test x"$grub_mount_excuse" = x ; then ++ AC_CHECK_LIB([fuse], [fuse_main_real], [], ++ [grub_mount_excuse="need FUSE library"]) ++fi ++ ++if test x"$grub_mount_excuse" = x ; then ++ # Check for fuse headers. ++ SAVED_CPPFLAGS="$CPPFLAGS" ++ CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64" ++ AC_CHECK_HEADERS([fuse/fuse.h], [], ++ [grub_mount_excuse=["need FUSE headers"]]) ++ CPPFLAGS="$SAVED_CPPFLAGS" ++fi ++ ++if test x"$enable_grub_mount" = xyes && test x"$grub_mount_excuse" != x ; then ++ AC_MSG_ERROR([grub-mount was explicitly requested but can't be compiled]) ++fi ++if test x"$grub_mount_excuse" = x ; then ++enable_grub_mount=yes ++else ++enable_grub_mount=no ++fi ++AC_SUBST([enable_grub_mount]) ++ + AC_ARG_ENABLE([device-mapper], + [AS_HELP_STRING([--enable-device-mapper], + [enable Linux device-mapper support (default=guessed)])]) +@@ -967,6 +998,7 @@ + AM_CONDITIONAL([COND_GRUB_EMU_SDL], [test x$enable_grub_emu_sdl = xyes]) + AM_CONDITIONAL([COND_GRUB_EMU_PCI], [test x$enable_grub_emu_pci = xyes]) + AM_CONDITIONAL([COND_GRUB_MKFONT], [test x$enable_grub_mkfont = xyes]) ++AM_CONDITIONAL([COND_GRUB_MOUNT], [test x$enable_grub_mount = xyes]) + AM_CONDITIONAL([COND_HAVE_FONT_SOURCE], [test x$FONT_SOURCE != x]) + AM_CONDITIONAL([COND_GRUB_PE2ELF], [test x$TARGET_OBJ2ELF != x]) + AM_CONDITIONAL([COND_APPLE_CC], [test x$TARGET_APPLE_CC = x1]) +@@ -1043,5 +1075,10 @@ + else + echo grub-mkfont: No "($grub_mkfont_excuse)" + fi ++if [ x"$grub_mount_excuse" = x ]; then ++echo grub-mount: Yes ++else ++echo grub-mount: No "($grub_mount_excuse)" ++fi + echo "*******************************************************" + ] +Index: b/docs/man/grub-mount.h2m +=================================================================== +--- /dev/null ++++ b/docs/man/grub-mount.h2m +@@ -0,0 +1,2 @@ ++[NAME] ++grub-mount \- export GRUB filesystem with FUSE +Index: b/util/grub-mount.c +=================================================================== +--- /dev/null ++++ b/util/grub-mount.c +@@ -0,0 +1,508 @@ ++/* grub-mount.c - FUSE driver for filesystems that GRUB understands */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2008,2009,2010 Free Software Foundation, Inc. ++ * ++ * GRUB 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. ++ * ++ * GRUB 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 GRUB. If not, see . ++ */ ++#define FUSE_USE_VERSION 26 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "progname.h" ++#include "argp.h" ++ ++static char *root = NULL; ++grub_device_t dev = NULL; ++grub_fs_t fs = NULL; ++static char **images = NULL; ++static char *debug_str = NULL; ++static char **fuse_args = NULL; ++static int fuse_argc = 0; ++static int num_disks = 0; ++ ++static grub_err_t ++execute_command (char *name, int n, char **args) ++{ ++ grub_command_t cmd; ++ ++ cmd = grub_command_find (name); ++ if (! cmd) ++ grub_util_error (_("can\'t find command %s"), name); ++ ++ return (cmd->func) (cmd, n, args); ++} ++ ++/* Translate GRUB error numbers into OS error numbers. Print any unexpected ++ errors. */ ++static int ++translate_error (void) ++{ ++ int ret; ++ ++ switch (grub_errno) ++ { ++ case GRUB_ERR_NONE: ++ ret = 0; ++ break; ++ ++ case GRUB_ERR_OUT_OF_MEMORY: ++ grub_print_error (); ++ ret = -ENOMEM; ++ break; ++ ++ case GRUB_ERR_BAD_FILE_TYPE: ++ /* This could also be EISDIR. Take a guess. */ ++ ret = -ENOTDIR; ++ break; ++ ++ case GRUB_ERR_FILE_NOT_FOUND: ++ ret = -ENOENT; ++ break; ++ ++ case GRUB_ERR_FILE_READ_ERROR: ++ case GRUB_ERR_READ_ERROR: ++ case GRUB_ERR_IO: ++ grub_print_error (); ++ ret = -EIO; ++ break; ++ ++ case GRUB_ERR_SYMLINK_LOOP: ++ ret = -ELOOP; ++ break; ++ ++ default: ++ grub_print_error (); ++ ret = -EINVAL; ++ break; ++ } ++ ++ /* Any previous errors were handled. */ ++ grub_errno = GRUB_ERR_NONE; ++ ++ return ret; ++} ++ ++static int ++fuse_getattr (const char *path, struct stat *st) ++{ ++ char *filename, *pathname, *path2; ++ const char *pathname_t; ++ struct grub_dirhook_info file_info; ++ int file_exists = 0; ++ ++ /* A hook for iterating directories. */ ++ auto int find_file (const char *cur_filename, ++ const struct grub_dirhook_info *info); ++ int find_file (const char *cur_filename, ++ const struct grub_dirhook_info *info) ++ { ++ if ((info->case_insensitive ? grub_strcasecmp (cur_filename, filename) ++ : grub_strcmp (cur_filename, filename)) == 0) ++ { ++ file_info = *info; ++ file_exists = 1; ++ return 1; ++ } ++ return 0; ++ } ++ ++ if (path[0] == '/' && path[1] == 0) ++ { ++ st->st_dev = 0; ++ st->st_ino = 0; ++ st->st_mode = 0555 | S_IFDIR; ++ st->st_uid = 0; ++ st->st_gid = 0; ++ st->st_rdev = 0; ++ st->st_size = 0; ++ st->st_blksize = 512; ++ st->st_blocks = (st->st_blksize + 511) >> 9; ++ st->st_atime = st->st_mtime = st->st_ctime = 0; ++ return 0; ++ } ++ ++ file_exists = 0; ++ ++ pathname_t = grub_strchr (path, ')'); ++ if (! pathname_t) ++ pathname_t = path; ++ else ++ pathname_t++; ++ pathname = xstrdup (pathname_t); ++ ++ /* Remove trailing '/'. */ ++ while (*pathname && pathname[grub_strlen (pathname) - 1] == '/') ++ pathname[grub_strlen (pathname) - 1] = 0; ++ ++ /* Split into path and filename. */ ++ filename = grub_strrchr (pathname, '/'); ++ if (! filename) ++ { ++ path2 = grub_strdup ("/"); ++ filename = pathname; ++ } ++ else ++ { ++ filename++; ++ path2 = grub_strdup (pathname); ++ path2[filename - pathname] = 0; ++ } ++ ++ /* It's the whole device. */ ++ (fs->dir) (dev, path2, find_file); ++ ++ grub_free (path2); ++ if (!file_exists) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ return -ENOENT; ++ } ++ st->st_dev = 0; ++ st->st_ino = 0; ++ st->st_mode = file_info.dir ? (0555 | S_IFDIR) : (0444 | S_IFREG); ++ st->st_uid = 0; ++ st->st_gid = 0; ++ st->st_rdev = 0; ++ if (!file_info.dir) ++ { ++ grub_file_t file; ++ file = grub_file_open (path); ++ if (! file) ++ return translate_error (); ++ st->st_size = file->size; ++ grub_file_close (file); ++ } ++ else ++ st->st_size = 0; ++ st->st_blksize = 512; ++ st->st_blocks = (st->st_size + 511) >> 9; ++ st->st_atime = st->st_mtime = st->st_ctime = file_info.mtimeset ++ ? file_info.mtime : 0; ++ grub_errno = GRUB_ERR_NONE; ++ return 0; ++} ++ ++static int ++fuse_opendir (const char *path, struct fuse_file_info *fi) ++{ ++ return 0; ++} ++ ++/* FIXME */ ++static grub_file_t files[65536]; ++static int first_fd = 1; ++ ++static int ++fuse_open (const char *path, struct fuse_file_info *fi __attribute__ ((unused))) ++{ ++ grub_file_t file; ++ file = grub_file_open (path); ++ if (! file) ++ return translate_error (); ++ files[first_fd++] = file; ++ fi->fh = first_fd; ++ files[first_fd++] = file; ++ grub_errno = GRUB_ERR_NONE; ++ return 0; ++} ++ ++static int ++fuse_read (const char *path, char *buf, size_t sz, off_t off, ++ struct fuse_file_info *fi) ++{ ++ grub_file_t file = files[fi->fh]; ++ grub_ssize_t size; ++ ++ if (off > file->size) ++ return -EINVAL; ++ ++ file->offset = off; ++ ++ size = grub_file_read (file, buf, sz); ++ if (size < 0) ++ return translate_error (); ++ else ++ { ++ grub_errno = GRUB_ERR_NONE; ++ return size; ++ } ++} ++ ++static int ++fuse_release (const char *path, struct fuse_file_info *fi) ++{ ++ grub_file_close (files[fi->fh]); ++ files[fi->fh] = NULL; ++ grub_errno = GRUB_ERR_NONE; ++ return 0; ++} ++ ++static int ++fuse_readdir (const char *path, void *buf, ++ fuse_fill_dir_t fill, off_t off, struct fuse_file_info *fi) ++{ ++ char *pathname; ++ ++ auto int call_fill (const char *filename, ++ const struct grub_dirhook_info *info); ++ int call_fill (const char *filename, const struct grub_dirhook_info *info) ++ { ++ fill (buf, filename, NULL, 0); ++ return 0; ++ } ++ ++ pathname = xstrdup (path); ++ ++ /* Remove trailing '/'. */ ++ while (pathname [0] && pathname[1] ++ && pathname[grub_strlen (pathname) - 1] == '/') ++ pathname[grub_strlen (pathname) - 1] = 0; ++ ++ (fs->dir) (dev, pathname, call_fill); ++ free (pathname); ++ grub_errno = GRUB_ERR_NONE; ++ return 0; ++} ++ ++struct fuse_operations grub_opers = { ++ .getattr = fuse_getattr, ++ .open = fuse_open, ++ .release = fuse_release, ++ .opendir = fuse_opendir, ++ .readdir = fuse_readdir, ++ .read = fuse_read ++}; ++ ++static grub_err_t ++fuse_init (void) ++{ ++ int i; ++ ++ for (i = 0; i < num_disks; i++) ++ { ++ char *argv[2]; ++ char *host_file; ++ char *loop_name; ++ loop_name = grub_xasprintf ("loop%d", i); ++ if (!loop_name) ++ grub_util_error (grub_errmsg); ++ ++ host_file = grub_xasprintf ("(host)%s", images[i]); ++ if (!host_file) ++ grub_util_error (grub_errmsg); ++ ++ argv[0] = loop_name; ++ argv[1] = host_file; ++ ++ if (execute_command ("loopback", 2, argv)) ++ grub_util_error (_("loopback command fails")); ++ ++ grub_free (loop_name); ++ grub_free (host_file); ++ } ++ ++ grub_lvm_fini (); ++ grub_mdraid09_fini (); ++ grub_mdraid1x_fini (); ++ grub_raid_fini (); ++ grub_raid_init (); ++ grub_mdraid09_init (); ++ grub_mdraid1x_init (); ++ grub_lvm_init (); ++ ++ dev = grub_device_open (0); ++ if (! dev) ++ return grub_errno; ++ ++ fs = grub_fs_probe (dev); ++ if (! fs) ++ { ++ grub_device_close (dev); ++ return grub_errno; ++ } ++ ++ fuse_main (fuse_argc, fuse_args, &grub_opers, NULL); ++ ++ for (i = 0; i < num_disks; i++) ++ { ++ char *argv[2]; ++ char *loop_name; ++ ++ loop_name = grub_xasprintf ("loop%d", i); ++ if (!loop_name) ++ grub_util_error (grub_errmsg); ++ ++ argv[0] = "-d"; ++ argv[1] = loop_name; ++ ++ execute_command ("loopback", 2, argv); ++ ++ grub_free (loop_name); ++ } ++ ++ return GRUB_ERR_NONE; ++} ++ ++static struct argp_option options[] = { ++ {"root", 'r', N_("DEVICE_NAME"), 0, N_("Set root device."), 2}, ++ {"debug", 'd', "S", 0, N_("Set debug environment variable."), 2}, ++ {"verbose", 'v', NULL, OPTION_ARG_OPTIONAL, N_("Print verbose messages."), 2}, ++ {0, 0, 0, 0, 0, 0} ++}; ++ ++/* Print the version information. */ ++static void ++print_version (FILE *stream, struct argp_state *state) ++{ ++ fprintf (stream, "%s (%s) %s\n", program_name, PACKAGE_NAME, PACKAGE_VERSION); ++} ++void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version; ++ ++error_t ++argp_parser (int key, char *arg, struct argp_state *state) ++{ ++ char *p; ++ ++ switch (key) ++ { ++ case 'r': ++ root = arg; ++ return 0; ++ ++ case 'd': ++ debug_str = arg; ++ return 0; ++ ++ case 'v': ++ verbosity++; ++ return 0; ++ ++ case ARGP_KEY_ARG: ++ if (arg[0] != '-') ++ break; ++ ++ default: ++ if (!arg) ++ return 0; ++ ++ fuse_args = xrealloc (fuse_args, (fuse_argc + 1) * sizeof (fuse_args[0])); ++ fuse_args[fuse_argc] = xstrdup (arg); ++ fuse_argc++; ++ return 0; ++ } ++ ++ if (arg[0] != '/') ++ { ++ fprintf (stderr, "%s", _("Must use absolute path.\n")); ++ argp_usage (state); ++ } ++ images = xrealloc (images, (num_disks + 1) * sizeof (images[0])); ++ images[num_disks] = xstrdup (arg); ++ num_disks++; ++ ++ return 0; ++} ++ ++struct argp argp = { ++ options, argp_parser, N_("IMAGE1 [IMAGE2 ...] MOUNTPOINT"), ++ N_("Debug tool for filesystem driver."), ++ NULL, NULL, NULL ++}; ++ ++int ++main (int argc, char *argv[]) ++{ ++ char *default_root, *alloc_root; ++ ++ set_program_name (argv[0]); ++ ++ grub_util_init_nls (); ++ ++ fuse_args = xrealloc (fuse_args, (fuse_argc + 2) * sizeof (fuse_args[0])); ++ fuse_args[fuse_argc] = xstrdup (argv[0]); ++ fuse_argc++; ++ /* Run single-threaded. */ ++ fuse_args[fuse_argc] = xstrdup ("-s"); ++ fuse_argc++; ++ ++ argp_parse (&argp, argc, argv, 0, 0, 0); ++ ++ if (num_disks < 2) ++ grub_util_error ("need an image and mountpoint"); ++ fuse_args = xrealloc (fuse_args, (fuse_argc + 2) * sizeof (fuse_args[0])); ++ fuse_args[fuse_argc] = images[num_disks - 1]; ++ fuse_argc++; ++ num_disks--; ++ fuse_args[fuse_argc] = NULL; ++ ++ /* Initialize all modules. */ ++ grub_init_all (); ++ ++ if (debug_str) ++ grub_env_set ("debug", debug_str); ++ ++ default_root = (num_disks == 1) ? "loop0" : "md0"; ++ alloc_root = 0; ++ if (root) ++ { ++ if ((*root >= '0') && (*root <= '9')) ++ { ++ alloc_root = xmalloc (strlen (default_root) + strlen (root) + 2); ++ ++ sprintf (alloc_root, "%s,%s", default_root, root); ++ root = alloc_root; ++ } ++ } ++ else ++ root = default_root; ++ ++ grub_env_set ("root", root); ++ ++ if (alloc_root) ++ free (alloc_root); ++ ++ /* Do it. */ ++ fuse_init (); ++ if (grub_errno) ++ { ++ grub_print_error (); ++ return 1; ++ } ++ ++ /* Free resources. */ ++ grub_fini_all (); ++ ++ return 0; ++} --- grub2-1.99.orig/debian/patches/branch_squash.patch +++ grub2-1.99/debian/patches/branch_squash.patch @@ -0,0 +1,694 @@ +Description: Add squashfs 4 support +Author: Vladimir Serbinenko +Origin: upstream, http://bzr.sv.gnu.org/r/grub/branches/squash/ +Forwarded: not-needed +Applied-Upstream: http://bazaar.launchpad.net/~vcs-imports/grub/grub2-bzr/revision/3278 +Last-Update: 2011-05-19 + +Index: b/Makefile.util.def +=================================================================== +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -65,6 +65,7 @@ + common = grub-core/fs/ntfscomp.c; + common = grub-core/fs/reiserfs.c; + common = grub-core/fs/sfs.c; ++ common = grub-core/fs/squash4.c; + common = grub-core/fs/tar.c; + common = grub-core/fs/udf.c; + common = grub-core/fs/ufs2.c; +Index: b/grub-core/Makefile.core.def +=================================================================== +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -985,6 +985,11 @@ + }; + + module = { ++ name = squash4; ++ common = fs/squash4.c; ++}; ++ ++module = { + name = tar; + common = fs/tar.c; + }; +Index: b/grub-core/fs/squash4.c +=================================================================== +--- /dev/null ++++ b/grub-core/fs/squash4.c +@@ -0,0 +1,548 @@ ++/* squash4.c - SquashFS */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2010 Free Software Foundation, Inc. ++ * ++ * GRUB 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. ++ * ++ * GRUB 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 GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++/* ++ object format Pointed by ++ superblock RAW Fixed offset (0) ++ data RAW ? Fixed offset (60) ++ inode table Chunk superblock ++ dir table Chunk superblock ++ fragment table Chunk unk1 ++ unk1 RAW, Chunk superblock ++ unk2 RAW superblock ++ UID/GID Chunk exttblptr ++ exttblptr RAW superblock ++ ++ UID/GID table is the array ot uint32_t ++ unk1 contains pointer to unk3 followed by some chunk. ++ unk2 containts one uint64_t ++*/ ++ ++struct grub_squash_super ++{ ++ grub_uint32_t magic; ++#define SQUASH_MAGIC 0x73717368 ++ grub_uint32_t dummy1; ++ grub_uint32_t creation_time; ++ grub_uint32_t dummy2; ++ grub_uint64_t dummy3; ++ grub_uint8_t flags; ++#define SQUASH_FLAG_UNCOMPRESSED_INODES 1 ++#define SQUASH_FLAG_UNCOMPRESSED_DATA 2 ++#define SQUASH_FLAG_UNCOMPRESSED_FRAGMENTS 8 ++ grub_uint8_t dummy4[7]; ++ grub_uint16_t root_ino_offset; ++ grub_uint32_t root_ino_chunk; ++ grub_uint16_t dummy5; ++ grub_uint64_t total_size; ++ grub_uint64_t exttbloffset; ++ grub_uint64_t dummy6; ++ grub_uint64_t inodeoffset; ++ grub_uint64_t diroffset; ++ grub_uint64_t unk1offset; ++ grub_uint64_t unk2offset; ++} __attribute__ ((packed)); ++ ++ ++/* Chunk-based */ ++struct grub_squash_inode ++{ ++ /* Same values as direlem types. */ ++ grub_uint16_t type; ++ grub_uint16_t dummy[3]; ++ grub_uint32_t mtime; ++ union ++ { ++ struct { ++ grub_uint32_t dummy; ++ grub_uint32_t chunk; ++ grub_uint32_t fragment; ++ grub_uint32_t offset; ++ grub_uint32_t size; ++ } __attribute__ ((packed)) file; ++ struct { ++ grub_uint32_t dummy1; ++ grub_uint32_t chunk; ++ grub_uint32_t dummy2; ++ grub_uint16_t size; ++ grub_uint32_t offset; ++ grub_uint16_t dummy3; ++ } __attribute__ ((packed)) dir; ++ struct { ++ grub_uint64_t dummy; ++ grub_uint32_t namelen; ++ char name[0]; ++ } __attribute__ ((packed)) symlink; ++ } __attribute__ ((packed)); ++} __attribute__ ((packed)); ++ ++/* Chunk-based. */ ++struct grub_squash_dirent_header ++{ ++ /* Actually the value is the number of elements - 1. */ ++ grub_uint32_t nelems; ++ grub_uint64_t ino_chunk; ++} __attribute__ ((packed)); ++ ++struct grub_squash_dirent ++{ ++ grub_uint16_t ino_offset; ++ grub_uint16_t dummy; ++ grub_uint16_t type; ++#define SQUASH_TYPE_DIR 1 ++#define SQUASH_TYPE_REGULAR 2 ++#define SQUASH_TYPE_SYMLINK 3 ++ /* Actually the value is the length of name - 1. */ ++ grub_uint16_t namelen; ++ char name[0]; ++} __attribute__ ((packed)); ++ ++struct grub_squash_frag_desc ++{ ++ grub_uint64_t offset; ++ grub_uint64_t dummy; ++} __attribute__ ((packed)); ++ ++#define SQUASH_CHUNK_SIZE 0x2000 ++#define SQUASH_CHUNK_FLAGS 0x8000 ++#define SQUASH_CHUNK_UNCOMPRESSED 0x8000 ++ ++struct grub_squash_data ++{ ++ grub_disk_t disk; ++ struct grub_squash_super sb; ++ struct grub_squash_inode ino; ++ grub_uint64_t fragments; ++}; ++ ++struct grub_fshelp_node ++{ ++ struct grub_squash_data *data; ++ struct grub_squash_inode ino; ++ grub_uint32_t ino_chunk; ++ grub_uint16_t ino_offset; ++}; ++ ++static grub_err_t ++read_chunk (grub_disk_t disk, void *buf, grub_size_t len, ++ grub_uint64_t chunk, grub_off_t offset) ++{ ++ grub_uint64_t chunk_start; ++ chunk_start = grub_le_to_cpu64 (chunk); ++ while (len > 0) ++ { ++ grub_uint64_t csize; ++ grub_uint16_t d; ++ grub_err_t err; ++ while (1) ++ { ++ err = grub_disk_read (disk, chunk_start >> GRUB_DISK_SECTOR_BITS, ++ chunk_start & (GRUB_DISK_SECTOR_SIZE - 1), ++ sizeof (d), &d); ++ if (err) ++ return err; ++ if (offset < SQUASH_CHUNK_SIZE) ++ break; ++ offset -= SQUASH_CHUNK_SIZE; ++ chunk_start += 2 + (grub_le_to_cpu16 (d) & ~SQUASH_CHUNK_FLAGS); ++ } ++ ++ csize = SQUASH_CHUNK_SIZE - offset; ++ if (csize > len) ++ csize = len; ++ ++ if (grub_le_to_cpu16 (d) & SQUASH_CHUNK_UNCOMPRESSED) ++ { ++ grub_disk_addr_t a = chunk_start + 2 + offset; ++ err = grub_disk_read (disk, (a >> GRUB_DISK_SECTOR_BITS), ++ a & (GRUB_DISK_SECTOR_SIZE - 1), ++ csize, buf); ++ if (err) ++ return err; ++ } ++ else ++ { ++ char *tmp; ++ grub_size_t bsize = grub_le_to_cpu16 (d) & ~SQUASH_CHUNK_FLAGS; ++ grub_disk_addr_t a = chunk_start + 2; ++ tmp = grub_malloc (bsize); ++ if (!tmp) ++ return grub_errno; ++ /* FIXME: buffer uncompressed data. */ ++ err = grub_disk_read (disk, (a >> GRUB_DISK_SECTOR_BITS), ++ a & (GRUB_DISK_SECTOR_SIZE - 1), ++ bsize, tmp); ++ if (err) ++ { ++ grub_free (tmp); ++ return err; ++ } ++ ++ if (grub_zlib_decompress (tmp, bsize, offset, ++ buf, csize) < 0) ++ { ++ grub_free (tmp); ++ return grub_errno; ++ } ++ grub_free (tmp); ++ } ++ len -= csize; ++ offset += csize; ++ buf = (char *) buf + csize; ++ } ++ return GRUB_ERR_NONE; ++} ++ ++static struct grub_squash_data * ++squash_mount (grub_disk_t disk) ++{ ++ struct grub_squash_super sb; ++ grub_err_t err; ++ struct grub_squash_data *data; ++ grub_uint64_t frag; ++ ++ err = grub_disk_read (disk, 0, 0, sizeof (sb), &sb); ++ if (grub_errno == GRUB_ERR_OUT_OF_RANGE) ++ grub_error (GRUB_ERR_BAD_FS, "not a squash4"); ++ if (err) ++ return NULL; ++ if (grub_le_to_cpu32 (sb.magic) != SQUASH_MAGIC) ++ { ++ grub_error (GRUB_ERR_BAD_FS, "not squash4"); ++ return NULL; ++ } ++ ++ err = grub_disk_read (disk, grub_le_to_cpu32 (sb.unk1offset) ++ >> GRUB_DISK_SECTOR_BITS, ++ grub_le_to_cpu32 (sb.unk1offset) ++ & (GRUB_DISK_SECTOR_SIZE - 1), sizeof (frag), &frag); ++ if (grub_errno == GRUB_ERR_OUT_OF_RANGE) ++ grub_error (GRUB_ERR_BAD_FS, "not a squash4"); ++ if (err) ++ return NULL; ++ ++ data = grub_malloc (sizeof (*data)); ++ if (!data) ++ return NULL; ++ data->sb = sb; ++ data->disk = disk; ++ data->fragments = frag; ++ ++ return data; ++} ++ ++static char * ++grub_squash_read_symlink (grub_fshelp_node_t node) ++{ ++ char *ret; ++ grub_err_t err; ++ ret = grub_malloc (grub_le_to_cpu32 (node->ino.symlink.namelen) + 1); ++ ++ err = read_chunk (node->data->disk, ret, ++ grub_le_to_cpu32 (node->ino.symlink.namelen), ++ grub_le_to_cpu64 (node->data->sb.inodeoffset) ++ + node->ino_chunk, ++ node->ino_offset + (node->ino.symlink.name ++ - (char *) &node->ino)); ++ if (err) ++ { ++ grub_free (ret); ++ return NULL; ++ } ++ ret[grub_le_to_cpu32 (node->ino.symlink.namelen)] = 0; ++ return ret; ++} ++ ++static int ++grub_squash_iterate_dir (grub_fshelp_node_t dir, ++ int NESTED_FUNC_ATTR ++ (*hook) (const char *filename, ++ enum grub_fshelp_filetype filetype, ++ grub_fshelp_node_t node)) ++{ ++ grub_uint32_t off = grub_le_to_cpu16 (dir->ino.dir.offset); ++ grub_uint32_t endoff; ++ unsigned i; ++ ++ /* FIXME: why - 3 ? */ ++ endoff = grub_le_to_cpu32 (dir->ino.dir.size) + off - 3; ++ ++ while (off < endoff) ++ { ++ struct grub_squash_dirent_header dh; ++ grub_err_t err; ++ ++ err = read_chunk (dir->data->disk, &dh, sizeof (dh), ++ grub_le_to_cpu64 (dir->data->sb.diroffset) ++ + grub_le_to_cpu32 (dir->ino.dir.chunk), off); ++ if (err) ++ return 0; ++ off += sizeof (dh); ++ for (i = 0; i < (unsigned) grub_le_to_cpu16 (dh.nelems) + 1; i++) ++ { ++ char *buf; ++ int r; ++ struct grub_fshelp_node *node; ++ enum grub_fshelp_filetype filetype = GRUB_FSHELP_REG; ++ struct grub_squash_dirent di; ++ struct grub_squash_inode ino; ++ ++ err = read_chunk (dir->data->disk, &di, sizeof (di), ++ grub_le_to_cpu64 (dir->data->sb.diroffset) ++ + grub_le_to_cpu32 (dir->ino.dir.chunk), off); ++ if (err) ++ return 0; ++ off += sizeof (di); ++ ++ err = read_chunk (dir->data->disk, &ino, sizeof (ino), ++ grub_le_to_cpu64 (dir->data->sb.inodeoffset) ++ + grub_le_to_cpu32 (dh.ino_chunk), ++ grub_cpu_to_le16 (di.ino_offset)); ++ if (err) ++ return 0; ++ ++ buf = grub_malloc (grub_le_to_cpu16 (di.namelen) + 2); ++ if (!buf) ++ return 0; ++ err = read_chunk (dir->data->disk, buf, ++ grub_le_to_cpu16 (di.namelen) + 1, ++ grub_le_to_cpu64 (dir->data->sb.diroffset) ++ + grub_le_to_cpu32 (dir->ino.dir.chunk), off); ++ if (err) ++ return 0; ++ ++ off += grub_le_to_cpu16 (di.namelen) + 1; ++ buf[grub_le_to_cpu16 (di.namelen) + 1] = 0; ++ if (grub_le_to_cpu16 (di.type) == SQUASH_TYPE_DIR) ++ filetype = GRUB_FSHELP_DIR; ++ if (grub_le_to_cpu16 (di.type) == SQUASH_TYPE_SYMLINK) ++ filetype = GRUB_FSHELP_SYMLINK; ++ ++ node = grub_malloc (sizeof (*node)); ++ if (! node) ++ return 0; ++ *node = *dir; ++ node->ino = ino; ++ node->ino_chunk = grub_le_to_cpu32 (dh.ino_chunk); ++ node->ino_offset = grub_le_to_cpu16 (di.ino_offset); ++ ++ r = hook (buf, filetype, node); ++ ++ grub_free (buf); ++ if (r) ++ return r; ++ } ++ } ++ return 0; ++} ++ ++static grub_err_t ++make_root_node (struct grub_squash_data *data, struct grub_fshelp_node *root) ++{ ++ grub_memset (root, 0, sizeof (*root)); ++ root->data = data; ++ ++ return read_chunk (data->disk, &root->ino, sizeof (root->ino), ++ grub_le_to_cpu64 (data->sb.inodeoffset) ++ + grub_le_to_cpu16 (data->sb.root_ino_chunk), ++ grub_cpu_to_le16 (data->sb.root_ino_offset)); ++} ++ ++static grub_err_t ++grub_squash_dir (grub_device_t device, const char *path, ++ int (*hook) (const char *filename, ++ const struct grub_dirhook_info *info)) ++{ ++ auto int NESTED_FUNC_ATTR iterate (const char *filename, ++ enum grub_fshelp_filetype filetype, ++ grub_fshelp_node_t node); ++ ++ int NESTED_FUNC_ATTR iterate (const char *filename, ++ enum grub_fshelp_filetype filetype, ++ grub_fshelp_node_t node) ++ { ++ struct grub_dirhook_info info; ++ grub_memset (&info, 0, sizeof (info)); ++ info.dir = ((filetype & GRUB_FSHELP_TYPE_MASK) == GRUB_FSHELP_DIR); ++ info.mtimeset = 1; ++ info.mtime = grub_le_to_cpu32 (node->ino.mtime); ++ return hook (filename, &info); ++ } ++ ++ struct grub_squash_data *data = 0; ++ struct grub_fshelp_node *fdiro = 0; ++ struct grub_fshelp_node root; ++ grub_err_t err; ++ ++ data = squash_mount (device->disk); ++ if (! data) ++ return grub_errno; ++ ++ err = make_root_node (data, &root); ++ if (err) ++ return err; ++ ++ grub_fshelp_find_file (path, &root, &fdiro, grub_squash_iterate_dir, ++ grub_squash_read_symlink, GRUB_FSHELP_DIR); ++ if (!grub_errno) ++ grub_squash_iterate_dir (fdiro, iterate); ++ ++ grub_free (data); ++ ++ return grub_errno; ++} ++ ++static grub_err_t ++grub_squash_open (struct grub_file *file, const char *name) ++{ ++ struct grub_squash_data *data = 0; ++ struct grub_fshelp_node *fdiro = 0; ++ struct grub_fshelp_node root; ++ grub_err_t err; ++ ++ data = squash_mount (file->device->disk); ++ if (! data) ++ return grub_errno; ++ ++ err = make_root_node (data, &root); ++ if (err) ++ return err; ++ ++ grub_fshelp_find_file (name, &root, &fdiro, grub_squash_iterate_dir, ++ grub_squash_read_symlink, GRUB_FSHELP_REG); ++ if (grub_errno) ++ { ++ grub_free (data); ++ return grub_errno; ++ } ++ ++ file->data = data; ++ data->ino = fdiro->ino; ++ file->size = grub_le_to_cpu32 (fdiro->ino.file.size); ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_ssize_t ++grub_squash_read_data (struct grub_squash_data *data, ++ grub_disk_t disk, const struct grub_squash_inode *ino, ++ grub_off_t off, char *buf, grub_size_t len) ++{ ++ grub_err_t err; ++ grub_uint64_t a, b; ++ int compressed = 0; ++ ++ if (grub_le_to_cpu16 (ino->file.fragment) == 0xffff) ++ { ++ if (grub_le_to_cpu32 (ino->file.chunk)) ++ a = grub_le_to_cpu32 (ino->file.chunk); ++ else ++ a = sizeof (struct grub_squash_super); ++ compressed = !(data->sb.flags & SQUASH_FLAG_UNCOMPRESSED_DATA); ++ } ++ else ++ { ++ struct grub_squash_frag_desc frag; ++ err = read_chunk (disk, &frag, sizeof (frag), ++ data->fragments, sizeof (frag) ++ * grub_le_to_cpu16 (ino->file.fragment)); ++ if (err) ++ return -1; ++ a = grub_le_to_cpu64 (frag.offset) + grub_le_to_cpu32 (ino->file.chunk); ++ compressed = !(data->sb.flags & SQUASH_FLAG_UNCOMPRESSED_FRAGMENTS); ++ } ++ ++ b = grub_le_to_cpu32 (data->ino.file.offset) + off; ++ ++ /* FIXME: cache uncompressed chunks. */ ++ if (compressed) ++ err = grub_zlib_disk_read (disk, a, b, buf, len); ++ else ++ err = grub_disk_read (disk, (a + b) >> GRUB_DISK_SECTOR_BITS, ++ (a + b) & (GRUB_DISK_SECTOR_SIZE - 1), len, buf); ++ if (err) ++ return -1; ++ return len; ++} ++ ++static grub_ssize_t ++grub_squash_read (grub_file_t file, char *buf, grub_size_t len) ++{ ++ struct grub_squash_data *data = file->data; ++ ++ return grub_squash_read_data (data, file->device->disk, &data->ino, ++ file->offset, buf, len); ++} ++ ++static grub_err_t ++grub_squash_close (grub_file_t file) ++{ ++ grub_free (file->data); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_squash_mtime (grub_device_t dev, grub_int32_t *tm) ++{ ++ struct grub_squash_data *data = 0; ++ ++ data = squash_mount (dev->disk); ++ if (! data) ++ return grub_errno; ++ *tm = grub_le_to_cpu32 (data->sb.creation_time); ++ grub_free (data); ++ return GRUB_ERR_NONE; ++} ++ ++static struct grub_fs grub_squash_fs = ++ { ++ .name = "squash4", ++ .dir = grub_squash_dir, ++ .open = grub_squash_open, ++ .read = grub_squash_read, ++ .close = grub_squash_close, ++ .mtime = grub_squash_mtime, ++#ifdef GRUB_UTIL ++ .reserved_first_sector = 0, ++#endif ++ .next = 0 ++ }; ++ ++GRUB_MOD_INIT(squash4) ++{ ++ grub_fs_register (&grub_squash_fs); ++} ++ ++GRUB_MOD_FINI(squash4) ++{ ++ grub_fs_unregister (&grub_squash_fs); ++} ++ +Index: b/grub-core/io/gzio.c +=================================================================== +--- a/grub-core/io/gzio.c ++++ b/grub-core/io/gzio.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + #include + + GRUB_MOD_LICENSE ("GPLv3+"); +@@ -64,6 +65,9 @@ + /* If input is in memory following fields are used instead of file. */ + grub_size_t mem_input_size, mem_input_off; + grub_uint8_t *mem_input; ++ grub_disk_addr_t disk_input_off; ++ grub_disk_addr_t disk_input_start; ++ grub_disk_t disk_input; + /* The offset at which the data starts in the underlying file. */ + grub_off_t data_offset; + /* The type of current block. */ +@@ -384,8 +388,21 @@ + return 0; + } + +- if (grub_file_tell (gzio->file) == (grub_off_t) gzio->data_offset +- || gzio->inbuf_d == INBUFSIZ) ++ if (gzio->disk_input && (gzio->disk_input_off == gzio->data_offset ++ || gzio->inbuf_d == INBUFSIZ)) ++ { ++ grub_disk_addr_t d = gzio->disk_input_start + gzio->disk_input_off; ++ gzio->inbuf_d = 0; ++ grub_disk_read (gzio->disk_input, ++ d >> GRUB_DISK_SECTOR_BITS, ++ d & (GRUB_DISK_SECTOR_SIZE - 1), ++ INBUFSIZ, gzio->inbuf); ++ gzio->disk_input_off += INBUFSIZ; ++ } ++ ++ if (gzio->file && (grub_file_tell (gzio->file) ++ == (grub_off_t) gzio->data_offset ++ || gzio->inbuf_d == INBUFSIZ)) + { + gzio->inbuf_d = 0; + grub_file_read (gzio->file, gzio->inbuf, INBUFSIZ); +@@ -403,8 +420,10 @@ + grub_error (GRUB_ERR_OUT_OF_RANGE, + "attempt to seek outside of the file"); + else +- gzio->mem_input_off = gzio->data_offset; ++ gzio->mem_input_off = off; + } ++ else if (gzio->disk_input) ++ gzio->disk_input_off = off; + else + grub_file_seek (gzio->file, off); + } +@@ -1298,6 +1317,34 @@ + return ret; + } + ++grub_err_t ++grub_zlib_disk_read (grub_disk_t disk, grub_disk_addr_t zlibstart, ++ grub_off_t off, char *outbuf, grub_size_t outsize) ++{ ++ grub_gzio_t gzio = 0; ++ grub_ssize_t ret; ++ ++ gzio = grub_zalloc (sizeof (*gzio)); ++ if (! gzio) ++ return -1; ++ ++ gzio->disk_input_off = 0; ++ gzio->disk_input_start = zlibstart; ++ gzio->disk_input = disk; ++ ++ if (!test_zlib_header (gzio)) ++ { ++ grub_free (gzio); ++ return -1; ++ } ++ ++ ret = grub_gzio_read_real (gzio, off, outbuf, outsize); ++ grub_free (gzio); ++ ++ /* FIXME: Check Adler. */ ++ return ret < 0 ? grub_errno : GRUB_ERR_NONE; ++} ++ + + + static struct grub_fs grub_gzio_fs = +Index: b/include/grub/deflate.h +=================================================================== +--- a/include/grub/deflate.h ++++ b/include/grub/deflate.h +@@ -23,4 +23,8 @@ + grub_zlib_decompress (char *inbuf, grub_size_t insize, grub_off_t off, + char *outbuf, grub_size_t outsize); + ++grub_err_t ++grub_zlib_disk_read (grub_disk_t disk, grub_disk_addr_t zlibstart, ++ grub_off_t off, char *outbuf, grub_size_t outsize); ++ + #endif --- grub2-1.99.orig/debian/patches/core_in_fs.patch +++ grub2-1.99/debian/patches/core_in_fs.patch @@ -0,0 +1,31 @@ +Index: b/util/grub-setup.c +=================================================================== +--- a/util/grub-setup.c ++++ b/util/grub-setup.c +@@ -76,6 +76,7 @@ + + #define DEFAULT_BOOT_FILE "boot.img" + #define DEFAULT_CORE_FILE "core.img" ++#define CORE_IMG_IN_FS "setup_left_core_image_in_filesystem" + + #ifdef GRUB_MACHINE_SPARC64 + #define grub_target_to_host16(x) grub_be_to_cpu16(x) +@@ -489,6 +490,8 @@ + + grub_free (sectors); + ++ unlink (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS); ++ + goto finish; + } + #endif +@@ -514,6 +517,9 @@ + /* The core image must be put on a filesystem unfortunately. */ + grub_util_info ("will leave the core image on the filesystem"); + ++ fp = fopen (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS, "w"); ++ fclose (fp); ++ + /* Make sure that GRUB reads the identical image as the OS. */ + tmp_img = xmalloc (core_size); + core_path_dev_full = grub_util_get_path (dir, core_file); --- grub2-1.99.orig/debian/patches/series +++ grub2-1.99/debian/patches/series @@ -0,0 +1,23 @@ +olpc_prefix_hack.patch +core_in_fs.patch +dpkg_version_comparison.patch +grub_legacy_0_based_partitions.patch +disable_floppies.patch +grub.cfg_400.patch +gfxpayload_keep_default.patch +mkrescue_diet.patch +mkconfig_skip_dmcrypt.patch +install_stage2_confusion.patch +qemu_img_exists.patch +branch_devmapper.patch +branch_squash.patch +branch_longlinuxcmd.patch +branch_parse-color.patch +branch_embed-sectors.patch +branch_fuse.patch +mkrescue_efi_modules.patch +mkconfig_loopback.patch +lazy_stat.patch +btrfs_stat.patch +partition_performance.patch +kfreebsd-9_ada_devices.patch --- grub2-1.99.orig/debian/po/gl.po +++ grub2-1.99/debian/po/gl.po @@ -0,0 +1,448 @@ +# translation of grub2_1.98+20100804-2_gl.po to Galician +# Galician translation of grub2's debconf templates +# This file is distributed under the same license as the grub2 package. +# +# Jacobo Tarrio , 2007, 2008. +# Jorge Barreiro , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2_1.98+20100804-2_gl\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-08-13 02:53+0200\n" +"Last-Translator: Jorge Barreiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "¿Cargar en cadea desde menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Os scripts de actualización de GRUB detectaron unha configuración do GRUB " +"antigo en /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Para substituír a versión antiga de GRUB do sistema, recoméndase axustar /" +"boot/grub/menu.lst para cargar GRUB 2 en cadea desde a configuración " +"existente do GRUB antigo. Pódese realizar este paso automaticamente agora." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Recoméndase que acepte cargar en cadea GRUB 2 desde menu.lst, e que " +"verifique que a nova configuración de GRUB 2 funciona para vostede, antes de " +"instalalo directamente no MBR (rexistro mestre de inicio)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Non se puido instalar GRUB nos seguintes dispositivos:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Non se puido instalar GRUB nos seguintes dispositivos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Quere continuar de todas maneiras? Se o fai, pode que a súa computadora non " +"poida iniciar correctamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "A instalación de GRUB fallou. Quere tentalo de novo?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Ó mellor pode instalar GRUB en outro dispositivo, pero debería comprobar que " +"o seu sistema pode iniciar desde él. Se non, a instalación desde GRUB Legacy " +"cancelarase." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuar sen instalar GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Escolleu non instalar GRUB en ningún dispositivo. De continuar, o cargador " +"de arranque pode non quedar adecuadamente configurado, e a próxima vez que " +"arranque o sistema usarase o que houbese antes no sector de arranque. Se nel " +"hai unha versión antiga de GRUB 2 pode que esta sexa incapaz de cargar os " +"módulos ou de manexar o ficheiro de configuración actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Se xa está usando un cargador de arranque diferente e quere seguir usandoo, " +"ou se este é un ambiente especial onde non necesita un cargador de arranque, " +"debería continuar. En caso contrario debería instalar GRUB en algún lugar." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Rematar a conversión a GRUB 2 agora?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Este sistema aínda ten instalados ficheiros do cargador de arranque GRUB " +"Legacy, pero agora tamén ten rexistros de arranque de GRUB 2 nestes discos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Asemella que GRUB Legacy xa non se usa, e que debería actualizar as imaxes " +"de GRUB 2 nestes discos e rematar a conversión a GRUB2 eliminando os " +"ficheiros vellos de GRUB Legacy. Se non actualiza estas imaxes de GRUB 2, " +"poderían ser incompatibles cos novos paquetes e provocar que sistema non " +"arranque correctamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"En xeral, debería rematar a conversión a GRUB 2 a menos que estos rexistros " +"de inicio fosen creatos por unha instalación de GRUB 2 en outro sistema " +"operativo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Liña de comando de Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"A seguinte liña de comando de Linux sacouse de /etc/default/grub ou do " +"parámetro \"kopt\" no ficheiro menu.lst de GRUB Legacy. Verifique que sexa " +"correcta e modifíquea de ser preciso." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Liña de comando por defecto para Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"A seguinte liña será usada como parámetros para Linux na entrada por defecto " +"do menú, pero non no modo de recuperación." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Liña de comando de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"A seguinte liña de comando de kFreeBSD sacouse de /etc/default/grub, ou do " +"parámetro \"kopt\" no ficheiro menu.lst de GRUB Legacy. Verifique que sexa " +"correcta e modifíquea de ser preciso." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Liña de comando por defecto para kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"A seguinte cadea usarase como parámetros para kFreeBSD para a entrada por " +"defecto do menú, pero non para o modo de recuperación." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map foi rexenerado." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"O ficheiro /boot/grub/device.map foi reescrito para usar nomes de " +"dispostivos estables. Na maioría dos casos esto debería reducir " +"significativamente a necesidade de cambialos en un futuro, e as entradas no " +"menú de GRUB non se verían afectadas." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Porén, como ten máis de un disco no seu sistema, pode que dependa do vello " +"«device map». Comprobe se ten algunha entrada personalizada no menú de " +"arranque que use a numeración de GRUB (hdN) e actualícea de ser necesario." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se non comprende esta mensaxe, ou se non ten ningunha entrada personalizada " +"no menú de arranque, pode ignorala." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "En calquera caso, cando queira cargar GRUB 2 directamente desde o MBR, " +#~ "pode facelo executando (coma administrador) a seguinte orde:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "A instalación de GRUB fallou. Quere continuar?" --- grub2-1.99.orig/debian/po/nb.po +++ grub2-1.99/debian/po/nb.po @@ -0,0 +1,452 @@ +# Norwegian Bokmål translation for grub2. +# Copyright (C) 2010 grub2 +# This file is distributed under the same license as the grub2 package. +# Hans Nordhaug , 2010. +# +# Currently "Chainload" is kept untranslated (as in the Danish translation). +# If a good Norwegian word for "Chainload" is discovered, please update the +# translation. +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-08-04 00:39+0200\n" +"Last-Translator: Hans Nordhaug \n" +"Language-Team: Norwegian Bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Chainload fra menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Oppgraderingsskriptene til GRUB har funnet et GRUB Legacy-oppsett i /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"For å erstatte Legacy versjonen av GRUB på ditt system anbefales det at /" +"boot/grub/menu.lst justeres til å chainloade GRUB 2 fra ditt eksisterende " +"GRUB Legacy-oppsett. Dette steget kan utføres automatisk nå." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Det anbefales at du aksepter å chainloade GRUB 2 fra menu.lst og verifiserer " +"at ditt nye GRUB 2-oppsett virker for deg, før du installerer den direkte på " +"din MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Klarte ikke installere GRUB på følgende enheter:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Klarte ikke installere GRUB på følgende enheter:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Ønsker du å fortsette likevel? Hvis du fortsetter, vil kanskje ikke din " +"datamaskin starte opp skikkelig." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Klarte ikke installere GRUB. prøv igjen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Du kan klare å installere GRUB på en annen enhet, selvom du bør sjekke at " +"systemet ditt kan/vil starte opp fra den enheten. Ellers vil oppgraderingen " +"fra GRUB Legacy bli avbrutt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Fortsett uten å installere GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Du har valgt å ikke installere GRUB på noen enhet. Hvis du fortsetter, vil " +"oppstartslasteren kanskje ikke være skikkelig satt opp, og når din " +"datamaskin starter opp neste gang vil den bruke det tidligere innholdet i " +"din oppstartssektor. Hvis det er en tidligere versjon av GRUB 2 i " +"oppstartsektoren, vil den kanskje ikke være i stand til å laste inn moduler " +"eller håndtere den aktuelle konfigurasjonsfilen." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Hvis du allerede kjører en annen oppstartslaster og ønsker å fortsætte med " +"det, eller hvis dette er et spesielt miljø hvor du ikke har bruk for en " +"oppstartslaster, så skal du fortsette likevel. Ellers, bør du installere " +"GRUB et eller annet sted." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Avslutt konvertering til GRUB 2 nå?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Dette systemet har fremdeles installert filer fra GRUB Legacy-" +"oppstartslasteren, men systemet har nå også GRUB 2 oppstartsposter " +"installert på disse diskene:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Det virker sannsynlig at GRUB Legacy ikke lenger er i bruk, og at du i " +"steden for skal oppgradere GRUB 2-bildene på disse diskene og avslutte " +"konverteringen til GRUB 2 ved å fjerne eldre GRUB Legacy-filer. Hvis du ikke " +"oppgraderer disse GRUB 2-bildene, så er de kanskje ikke kompatible med de " +"nye pakkene og kan få ditt system til å stoppe å starte opp skikkelig." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Du bør generelt avslutte konverteringen til GRUB 2 med mindre disse " +"oppstartspostene ble opprettet av en GRUB 2-installasjon på et annet " +"operativsystem." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Kommandolinje i Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Den følgende Linux-kommandolinjen ble trukket ut fra /etc/default/grub eller " +"parameteren `kopt' i GRUB Legacys menu.lst. Verifiser at den er korrekt og " +"endre den om nødvendig." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standardkommandolinje i Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Den følgende teksten vil bli brukt som Linux-parametre for " +"standardmenupunktet, men ikke for gjenopprettelsesmodus." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Kommandolinje i kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Den følgende kFreeBSD-kommandolinjen ble trukket ut fra /etc/default/grub " +"eller fra parameteren `kopt' i GRUB Legacys menu.lst. Verifiser at den er " +"korrekt, og endre den om nødvendig." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standardkommandolinje i kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Den følgende teksten vil bli brukt som kFreeBSD-parametre for " +"standardmenupunktet men ikke for gjenopprettelsesmodus." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map er regenerert" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Filen /boot/grub/device.map er oppdatert til å bruke stabile enhetsnavn. I " +"de fleste tilfeller vil dette markant redusere behovet for å endre filen " +"fremover, og oppstartsmenupunkter opprettet av GRUB skal ikke bli påvirket." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Da du har mer enn en disk i ditt sytem, er det mulig at du er avhengig av " +"det gamle enhetskartet. Sjekk om du har noen tilpassede oppstartsmenupunkter " +"som er avhengig av GRUB's (hdn) disknummerering, og oppdater dem om " +"nødvendig." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Hvis du ikke forstår denne beskjeden, eller du ikke har noen tilpassede " +"oppstartsmenupunkter, kan du ignorere denne beskjeden." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Uansett hva, når du ønsker at GRUB 2 skal lastes inn direkte fra MBR, kan " +#~ "du gjøre ved å utføre følgende kommando (som root):" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Klarte ikke installere GRUB. Fortsett?" --- grub2-1.99.orig/debian/po/pt_BR.po +++ grub2-1.99/debian/po/pt_BR.po @@ -0,0 +1,419 @@ +# grub2 Brazilian Portuguese translation +# Copyright (C) 2009 THE grub2'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub2 package. +# Flamarion Jorge , 2009, 2010, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-05-29 17:13-0300\n" +"Last-Translator: Flamarion Jorge \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Carregar em cadeia a partir do menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Os scripts de atualização do GRUB detectaram uma configuração do GRUB Legado " +"em /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"A fim de substituir a versão Legada do GRUB no seu sistema, é recomendável " +"que o /boot/grub/menu.lst seja ajustado para carregar uma imagem do GRUB 2 a " +"partir da sua configuração existente do GRUB Legado. Este passo pode ser " +"executado automaticamente agora." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"É recomendado que você aceite o carregamento em cadeia do GRUB 2 a partir do " +"menu.lst, e verifique que sua nova configuração do GRUB 2 está funcional, " +"antes de gravá-lo na MBR (\"Master Boot Record\")." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Seja qual for sua decisão, você pode substituir a antiga imagem da MBR com o " +"GRUB 2 mais tarde executando o seguinte comando como root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Instalar o GRUB nos dispositivos:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"O pacote grub-pc está sendo atualizado. Este menu permite a você selecionar " +"em quais dispositivos você quer que seja executado automaticamente o grub-" +"install, se houver algum." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Executar o grub-install automaticamente é recomendado na maioria das " +"situações para prevenir que a imagem principal instalada do GRUB saia de " +"sincronia com os módulos do GRUB ou com o grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Se você não tiver certeza de qual unidade é designada como unidade de " +"inicialização pela sua BIOS, muitas vezes é uma boa ideia instalar o GRUB em " +"todas elas." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Nota: é possível instalar o GRUB em registros de inicialização de partições, " +"e algumas partições apropriadas para isso são oferecidas aqui. No entanto, " +"isto força o GRUB a usar o mecanismo de lista de blocos, que o torna menos " +"confiável, portanto, não é recomendado." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"O carregador de inicialização GRUB foi instalado anteriormente em um disco " +"que não está mais presente, ou seu identificador único foi modificado por " +"alguma razão. É importante certificar-se de que a imagem principal do GRUB " +"instalada está em sincronia com os módulos do GRUB e com o grub.cfg. Por " +"favor, verifique novamente e esteja certo de que o GRUB está gravado nos " +"dispositivos de inicialização apropriados." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "A gravação do GRUB no dispositivo de inicialização falhou - continuar?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Falha ao instalar o GRUB nos seguintes dispositivos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Você deseja continuar de qualquer maneira? Se você continuar, seu computador " +"talvez não inicialize corretamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"A gravação do GRUB no dispositivo de inicialização falhou - tentar novamente?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Você pode conseguir instalar o GRUB em outro dispositivo, mas você deve " +"verificar se o seu sistema vai conseguir inicializar a partir deste " +"dispositivo. Caso contrário, a atualização do GRUB Legado será cancelada." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuar sem instalar o GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Você escolheu não instalar o GRUB em nenhum dispositivo. Se você continuar, " +"o carregador de inicialização poderá não ser configurado corretamente, e na " +"próxima vez que este computador inicializar ele usará a versão que estava " +"anteriormente no setor de inicialização. Se houver uma versão anterior do " +"GRUB 2 no setor de inicialização, pode ser que ele não consiga carregar " +"módulos ou manipular corretamente o arquivo de configuração atual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Se você já estiver usando um carregador de inicialização diferente e quiser " +"continuar a fazê-lo, ou se este é um ambiente especial, onde você não " +"precisa de um carregador de inicialização, então você deve continuar de " +"qualquer maneira. Caso contrário, você deve instalar o GRUB em algum outro " +"lugar." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Remover o GRUB 2 do /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Você deseja ter todos os arquivos do GRUB 2 removidos de /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Isto fará com que seu sistema não inicialize a menos que outro carregador de " +"inicialização esteja instalado." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Completar a conversão para o GRUB 2 agora?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Este sistema ainda tem arquivos do carregador de inicialização do GRUB " +"Legado instalados, mas agora também tem registros de inicialização do GRUB 2 " +"instalados nestes discos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Parece provável que o GRUB Legado não está mais em uso, e que você deve " +"atualizar as imagens do GRUB 2 nestes discos e completar a conversão para o " +"GRUB 2, removendo arquivos antigos do GRUB Legado. Se você não atualizar " +"essas imagens do GRUB 2, então elas podem ser incompatíveis com os novos " +"pacotes e fazer com que o sistema deixe de inicializar corretamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Você normalmente deveria completar a conversão para o GRUB 2, a menos que " +"esses registros de inicialização tenham sido criados por uma instalação do " +"GRUB 2 em algum outro sistema operacional." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linha de comando Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"A linha de comando Linux a seguir foi extraída de /etc/default/grub ou do " +"parâmetro 'kopt' do menu.lst do GRUB Legado. Por favor, verifique se ela " +"está correta, e modifique-a se necessário. A linha de comando pode ser vazia." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linha de comando padrão Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"O seguinte texto será usado como lista de parâmetros do Linux para a entrada " +"padrão do menu, mas não para o modo de recuperação." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Linha de comando kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"A linha de comando kFreeBSD a seguir foi extraída de /etc/default/grub ou do " +"parâmetro 'kopt' do menu.lst do GRUB Legado. Por favor, verifique se ela " +"está correta, e modifique-a se necessário. A linha de comando pode ser vazia." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Linha de comando padrão kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"O seguinte texto será usado como lista de parâmetros do kFreeBSD para a " +"entrada padrão do menu, mas não para o modo de recuperação." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map foi gerado novamente" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"O arquivo /boot/grub/device.map foi reescrito para usar nomes estáveis de " +"dispositivo. Na maioria dos casos, isto pode reduzir de forma significativa " +"a necessidade de mudá-los no futuro, e as entradas do menu de inicialização " +"geradas pelo GRUB não devem ser afetadas." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Entretanto, como mais de um disco está presente no sistema, é possível que o " +"sistema esteja dependendo do antigo mapa de dispositivos. Por favor, " +"verifique se existem quaisquer outras entradas personalizadas no menu de " +"inicialização que dependam da numeração de unidade do GRUB (hdN), e atualize-" +"as se necessário." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se você não compreende esta mensagem, ou se não existem entradas " +"personalizadas no menu de inicialização, você pode ignorar esta mensagem." --- grub2-1.99.orig/debian/po/cs.po +++ grub2-1.99/debian/po/cs.po @@ -0,0 +1,416 @@ +# Czech translation of grub2 debconf messages. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub2 package. +# Miroslav Kure , 2008 -- 2011 +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-06-02 19:54+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Zavést přes menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Aktualizační skripty GRUBu rozpoznaly v /boot/grub nastavení pro předchozí " +"verzi GRUBu (tzv. GRUB Legacy)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Abyste na svém systému nahradili zastaralou verzi GRUBu, je doporučeno " +"upravit /boot/grub/menu.lst tak, aby zavedl obraz GRUBu 2 pomocí stávajícího " +"GRUB Legacy. Tento krok je nyní možné provést automaticky." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Před instalací GRUBu 2 přímo do MBR (Master Boot Record) se doporučuje " +"nejprve vyzkoušet zavedení GRUBu 2 skrze menu.lst a teprve po ověření, že " +"vše funguje očekávaným způsobem, zkusit instalaci do MBR." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Ať se rozhodnete jakkoliv, obraz v MBR můžete kdykoliv později nahradit " +"GRUBem 2. Stačí jako root spustit následující příkaz:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Zařízení pro instalaci GRUBu:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Balík grub-pc se právě aktualizuje. Tato nabídka vám umožňuje zvolit " +"zařízení, na kterých se má automaticky spouštět grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Automatické spouštění grub-install je ve většině případů doporučeno, protože " +"tak předcházíte tomu, aby se obraz jádra GRUBu rozcházel s GRUB moduly nebo " +"souborem grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Pokud si nejste jisti, který disk je v BIOSu označen jako zaváděcí, bývá " +"často dobrým nápadem nainstalovat GRUB na všechny disky." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Poznámka: GRUB je možné instalovat také do zaváděcích záznamů jednotlivých " +"oblastí, jejichž seznam zde vidíte. Tímto však donutíte GRUB, aby používal " +"mechanismus zvaný blocklist, který je méně spolehlivý tudíž se nedoporučuje." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Zavaděč GRUB byl dříve nainstalován na disk, který již není dostupný, nebo " +"jehož unikátní identifikátor se z nějakého důvodu změnil. Je důležité, aby " +"nainstalovaný obraz jádra GRUBu odpovídal GRUB modulům a souboru grub.cfg. " +"Ještě jednou se prosím ujistěte, že je GRUB zapsán na příslušných zaváděcích " +"zařízeních." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Zápis GRUBu na zaváděcí zařízení selhal - pokračovat?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB se nepodařilo nainstalovat na následující zařízení:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Chcete přesto pokračovat? Pokud ano, je možné, že počítač nemusí korektně " +"nastartovat." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Zápis GRUBu na zaváděcí zařízení selhal - zkusit znovu?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Je možné, že se povede instalace GRUBu na nějaké jiné zařízení, ovšem měli " +"byste se ujistit, že váš systém umí z daného zařízení zavádět. V opačném " +"případě bude aktualizace z GRUB Legacy zrušena." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Pokračovat bez instalace GRUBu?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Rozhodli jste se neinstalovat GRUB na žádné zařízení. Budete-li pokračovat, " +"zavaděč nemusí být nastaven správně a při příštím spuštění počítače se " +"použije cokoliv, co bylo dříve v zaváděcím sektoru. Pokud tam je dřívější " +"verze GRUBu 2, nemusí se jí podařit načíst moduly, nebo zpracovat současný " +"konfigurační soubor." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Pokud používáte jiný zavaděč a chcete ho používat i nadále, nebo pokud je " +"toto speciální prostředí, ve kterém zavaděč nepotřebujete, můžete " +"pokračovat. V opačném případě byste někam měli GRUB nainstalovat." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Odstranit GRUB 2 z /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Chcete z /boot/grub odstranit všechny soubory GRUBu 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Tímto se stane systém nezaveditelným do doby, než nainstalujete jiný zavaděč." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Dokončit nyní přechod na GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Tento systém stále obsahuje soubory starého zavaděče GRUB Legacy, ale na " +"následujících discích již má zaváděcí záznamy GRUBu 2:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Je dosti pravděpodobné, že se GRUB Legacy již nepoužívá a tudíž byste na " +"těchto discích měli aktualizovat obrazy GRUBu 2 a dokončit konverzi na GRUB " +"2 odstraněním starých souborů z GRUB Legacy. Neaktualizujete-li tyto obrazy " +"GRUBu 2, nemusí být kompatibilní s novými balíky a mohou způsobit, že se váš " +"systém přestane zavádět správně." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Obvykle byste měli konverzi na GRUB 2 dokončit, s výjimkou situace, kdy tyto " +"zaváděcí záznamy vytvořila instalace nějakého jiného operačního systému." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Parametry pro Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Následující řádka s parametry pro Linux byla získána ze starého souboru menu." +"lst z parametru „kopt“ nebo ze souboru /etc/default/grub. Zkontrolujte " +"prosím, zda jsou parametry v pořádku a případně je upravte do požadované " +"podoby. Řádka s parametry může být i prázdná." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Výchozí parametry pro Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Následující parametry pro Linux se použijí pro výchozí položku menu, ale ne " +"pro záchranný režim." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Parametry pro kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Následující řádka s parametry pro kFreeBSD byla získána ze starého souboru " +"menu.lst z parametru „kopt“ nebo ze souboru /etc/default/grub. Zkontrolujte " +"prosím, zda jsou parametry v pořádku a případně je upravte do požadované " +"podoby. Řádka s parametry může být i prázdná." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Výchozí parametry pro kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Následující parametry pro kFreeBSD se použijí pro výchozí položku menu, ale " +"ne pro záchranný režim." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map byl aktualizován" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Soubor /boot/grub/device.map byl přepsán tak, aby používal stabilní jména " +"zařízení. Ve většině případů by to mělo výrazně snížit potřebu jejich změny " +"v budoucnosti a položky v zaváděcí nabídce vygenerované GRUBem by neměly být " +"nijak ovlivněny." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Nicméně je možné (protože je v systému více než jeden disk), že se systém " +"spoléhal na starý soubor device.map. Zkontrolujte prosím, zda používáte " +"vlastní upravené položky zaváděcí nabídky, které spoléhají na GRUBovské " +"číslování disků (hdN) a podle potřeby je aktualizujte." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Nerozumíte-li této zprávě, nebo pokud žádné vlastní upravené položky " +"zaváděcí nabídky nemáte, můžete tuto zprávu ignorovat." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Až se rozhodnete zavádět GRUB 2 přímo z MBR, stačí jako uživatel root " +#~ "spustit příkaz:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Instalace GRUBu selhala. Pokračovat?" --- grub2-1.99.orig/debian/po/it.po +++ grub2-1.99/debian/po/it.po @@ -0,0 +1,429 @@ +# Italian (it) translation of debconf templates for grub2 +# This file is distributed under the same license as the grub2 package. +# Luca Monducci , 2007-2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100804-10 italian debconf templates\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-12 20:02+0100\n" +"Last-Translator: Luca Monducci \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Effettuare il caricamento in cascata da menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Gli script di aggiornamento hanno rilevato una installazione di GRUB Legacy " +"in /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Per sostituire la versione Legacy di GRUB sul proprio sistema si raccomanda " +"di modificare il file /boot/grub/menu.lst in modo da caricare l'immagine di " +"avvio di GRUB 2 dall'attuale installazione di GRUB Legacy. Questa modifica " +"può essere effettuata automaticamente adesso." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Si raccomanda di accettare il caricamento in cascata di GRUB 2 da menu.lst e " +"di verificare che la nuova installazione di GRUB 2 funzioni prima di " +"procedere con l'installazione diretta sul MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Qualsiasi sia la decisione, in seguito sarà possibile sostituire la vecchia " +"immagine sul MBR con GRUB 2 eseguendo da root il seguente comando:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Installare GRUB sui device:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"È in corso l'aggiornamento del pacchetto grub-pc. Questo menu permette di " +"scegliere su quali device, se specificati, si vuole eseguire automaticamente " +"grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Nella maggioranza dei casi si raccomanda l'esecuzione automatica di grub-" +"install in modo da prevenire la perdita di sincronia dell'immagine " +"principale di GRUB con i moduli di GRUB o con grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Se non si è sicuri di quale sia il disco impostato come disco di avvio nel " +"BIOS, è consigliabile installare GRUB su tutti i device." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Nota: è possibile installare GRUB anche nei boot record delle partizioni e " +"qui sono elencate le partizioni più appropriate. Purtroppo questo obbliga " +"GRUB a usare il meccanismo del \"blocklist\", che lo rende meno affidabile e " +"di conseguenza non è raccomandato." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"In precedenza il boot loader GRUB era installato su un disco non più " +"presente o che per qualche motivo ha cambiato identificatore univoco. È " +"importante assicurare che l'immagine principale di GRUB rimanga in sincronia " +"con i moduli di GRUB e con grub.cfg. Controllare nuovamente per essere " +"sicuri che GRUB sia scritto sui corretti device di avvio." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Scrittura di GRUB sul device di avvio non riuscita. Continuare?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "L'installazione di GRUB sui seguenti device non è riuscita:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Si vuole continuare? Continuando, il computer potrebbe non avviarsi più " +"correttamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Scrittura di GRUB sul device di avvio non riuscita. Riprovare?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"È possibile installare GRUB su un altro device, dopo aver verificato che il " +"proprio sistema si possa avviare da quel device. Altrimenti, l'aggiornamento " +"da GRUB Legacy verrà annullato." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuare senza installare GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Si è scelto di non installare GRUB su alcun device. Continuando, il boot " +"loader potrebbe non essere configurato correttamente e al prossimo avvio del " +"computer verrà usato il vecchio contenuto del settore di boot. Se nel " +"settore di boot è presente una versione precedente di GRUB 2, questa " +"potrebbe non essere in grado di caricare i moduli o di gestire l'attuale " +"file di configurazione." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Continuare solo se già si usa un boot loader diverso oppure se non si ha " +"necessità di un boot loader per questa macchina. Altrimenti è necessario " +"installare GRUB da qualche parte." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Rimuovere GRUB 2 da /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Rimuovere tutti i file di GRUB 2 da /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Questo potrebbe rendere il sistema non avviabile a meno che non sia " +"installato un altro boot loader." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Completare la conversione a GRUB 2 adesso?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Su questo sistema sono ancora presenti i file del boot loader GRUB Legacy ma " +"adesso sui seguenti dischi sono installati anche i boot record di GRUB 2:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Sembra che GRUB Legacy non sia più usato, per cui è consigliabile aggiornare " +"le immagini sui dischi con GRUB 2 e completare la conversione a GRUB 2 " +"eliminando i vecchi file di GRUB Legacy. Se non si aggiornano le immagini " +"con GRUB 2, in futuro potrebbero non essere più compatibili con i nuovi " +"pacchetti e potrebbero impedire il corretto avvio del sistema." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Si dovrebbe completare la conversione a GRUB 2 a meno che i boot record non " +"siano stati creati da un'altra installazione di GRUB 2 su un altro sistema " +"operativo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Riga di comando Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La seguente riga di comando Linux è stata estratta da /etc/default/grub " +"oppure dal parametro \"kopt\" presente nel file menu.lst del vecchio GRUB. " +"Controllare che sia corretta e modificarla se necessario." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Riga di comando Linux predefinita:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Questa stringa verrà usata come parametri per Linux nella voce di menu " +"predefinita, ma non nella modalità di ripristino." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Riga di comando kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La seguente riga di comando kFreeBSD è stata estratta da /etc/default/grub " +"oppure dal parametro \"kopt\" presente nel file menu.lst del vecchio GRUB. " +"Controllare che sia corretta e modificarla se necessario." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Riga di comando kFreeBSD predefinita:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Questa stringa verrà usata come parametri per kFreeBSD nella voce di menu " +"predefinita, ma non nella modalità di ripristino." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map è stato rigenerato" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Il file /boot/grub/device.map è stato riscritto in modo da usare i nomi " +"stabili dei device. In molti casi questo dovrebbe ridurre in modo " +"significativo la necessità di cambiarli in futuro e le voci nel menu di GRUB " +"non dovrebbero essere influenzate." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Comunque, visto che sul sistema ci sono più dischi, è possibile che il " +"sistema sia dipendente dalla vecchia mappa dei device. Controllare se nel " +"menu di GRUB ci sono delle voci personalizzate che usano la numerazione dei " +"dischi di GRUB (hdN) e, se necessario, aggiornarle." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se non si capisce questo messaggio o non ci sono voci di menu " +"personalizzate, ignorare questo messaggio." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "In ogni caso, per caricare GRUB 2 direttamente dal MBR, è necessario " +#~ "eseguire (da root) il seguente comando:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Installazione di GRUB non riuscita. Continuare?" --- grub2-1.99.orig/debian/po/nl.po +++ grub2-1.99/debian/po/nl.po @@ -0,0 +1,425 @@ +# translation of grub2.pot to Dutch +# Copyright (C) 2008-2010 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub2 package. +# +# Paul Gevers , 2008-2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2_1.96+20099829_nl\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-11 22:39+0100\n" +"Last-Translator: Paul Gevers \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Doorschakelen vanuit menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUBs opwaardeerscripts hebben een oude-stijl GRUB opstelling in /boot/grub " +"gedetecteerd." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Om de oude-stijl versie van GRUB op uw systeem te vervangen wordt het " +"aangeraden om het /boot/grub/menu.lst bestand zo te laten aanpassen dat er " +"een GRUB 2 opstartopname wordt geladen vanuit uw bestaande oude-stijl GRUB " +"opstelling. Deze stap kan nu automatisch worden uitgevoerd." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"U wordt aangeraden om het doorschakelen van GRUB 2 vanuit menu.lst te " +"accepteren, en daarna te verifiëren dat de nieuwe GRUB 2 opstelling werkt " +"voordat het in de MBR (Master Boot Record) wordt geïnstalleerd." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Waar u ook voor kiest, u kunt de oude MBR opname later door GRUB 2 vervangen " +"door het volgende commando uit te voeren (met beheerdersrechten (root)):" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB installatie apparaten:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Het grub-pc pakket wordt bijgewerkt. Dit menu stelt u in staat om de " +"apparaten te selecteren waar u wilt dat grub-install automatisch gedraaid " +"wordt." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Het wordt over het algemeen aanbevolen om grub-install automatisch te laten " +"draaien om te voorkomen dat de geïnstalleerde GRUB kernopname niet meer " +"gesynchroniseerd is met GRUB modules of grub.cfg. " + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Indien u niet zeker weet welk station door de BIOS wordt gebruikt als " +"opstartstation, is het vaak een goed idee om GRUB op alle stations te " +"installeren." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Merk op dat het ook mogelijk is om GRUB naar opstartstructuren op partities " +"te installeren. Enkele geschikte partities worden hier aangeboden. Dit wordt " +"echter niet aangeraden omdat het GRUB dwingt om een bloklijstmechanisme te " +"gebruiken waar het minder betrouwbaar van wordt." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Het GRUB opstartprogramma was voorheen geïnstalleerd op een schijf die niet " +"langer aanwezig is, of waarvan de unieke identificatie is veranderd. Het is " +"belangrijk om ervoor te zorgen dat de geïnstalleerde GRUB kernopname " +"gesynchroniseerd blijft met GRUB modules en grub.cfg. Controleer of GRUB wel " +"naar het juiste opstartapparaat wordt geschreven." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Schrijven van GRUB naar opstartapparaat mislukt. Doorgaan?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Het installeren van de volgende apparaten is mislukt: " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Wilt u desondanks verder gaan? Verder gaan kan ervoor zorgen dat uw computer " +"niet meer goed opstart." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Schrijven van GRUB naar opstartapparaat mislukt. Opnieuw proberen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"U kunt proberen om GRUB te installeren op een ander apparaat, maar het wordt " +"aangeraden om eerst te controleren of u kunt opstarten vanaf dat apparaat. " +"Als u dit niet probeert, zal het nu opwaarderen van de oude-stijl GRUB " +"geannuleerd worden." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Verder gaan zonder GRUB te installeren?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"U heeft ervoor gekozen om GRUB niet te installeren. Als u nu doorgaat zou " +"het kunnen dat het opstartprogramma niet correct geconfigureerd is en dat de " +"computer bij de volgende start de informatie gebruikt die vroeger in de " +"opstartsector stond. Indien daar een eerdere versie van GRUB 2 staat, kan " +"het zijn dat modules niet geladen kunnen worden of dat het huidige " +"configuratiebestand niet verwerkt kan worden." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"U kunt verder gaan als u al een ander opstartprogramma gebruikt en deze wilt " +"blijven gebruiken, of als dit een speciale omgeving is waar u geen " +"opstartprogramma nodig heeft. In de overige gevallen wilt u waarschijnlijk " +"GRUB installeren." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "GRUB 2 uit /boot/grub verwijderen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Wilt u dat alle GRUB 2 bestanden worden verwijderd uit /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Dit heeft tot gevolg dat het systeem niet opgestart kan worden tenzij er een " +"ander opstartprogramma is geïnstalleerd." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Wilt u de conversie naar GRUB 2 nu afronden?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Dit systeem heeft nog steeds bestanden van het oude-stijl GRUB " +"opstartprogramma geïnstalleerd, maar er zijn nu ook GRUB 2 opstartopnames " +"geïnstalleerd op de volgende schijven:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Het lijkt erop dat de oude-stijl GRUB niet langer gebruikt wordt en het " +"wordt aanbevolen dat u de conversie naar GRUB 2 afrond door de GRUB 2 " +"opnames op deze schijven op te waarderen en de oude-stijl GRUB bestanden te " +"verwijderen. Indien u de GRUB 2 opnames niet opwaardeert, is het mogelijk " +"dat ze incompatibel zijn met de nieuwe pakketten en kunnen ze uw systeem " +"verhinderen correct op te starten." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"In het algemeen zult u de conversie naar GRUB 2 willen afmaken, tenzij deze " +"opstartopnames gemaakt zijn door een GRUB 2 op een ander besturingssysteem." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux-commandoregel:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"De volgende Linux-commandoregel is gebaseerd op /etc/default/grub of op de " +"'kopt'-parameter gevonden in het menu.lst bestand van de oude-stijl GRUB. " +"Wilt u deze op correctheid controleren en indien nodig aanpassen?" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standaard Linux-commandoregel:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"De volgende regel zal, behalve in de herstelmodus, gebruikt worden voor de " +"Linux parameters in de standaard menuoptie." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD-commandoregel:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"De volgende kFreeBSD-commandoregel is gebaseerd op /etc/default/grub of op " +"de 'kopt'-parameter gevonden in het menu.lst bestand van de oude-stijl GRUB. " +"Wilt u deze op correctheid controleren en indien nodig aanpassen?" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standaard kFreeBSD-commandoregel:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"De volgende regel zal, behalve in de herstelmodus, gebruikt worden voor de " +"kFreeBSD parameters in de standaard menuoptie." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map is opnieuw aangemaakt" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Het bestand /boot/grub/device.map is zo herschreven dat het stabiele " +"apparaatnamen gebruikt. In de meeste gevallen zal dit de noodzaak van " +"toekomstige veranderingen verlagen en zullen door GRUB gegenereerde " +"opstartmenu-items ongewijzigd zijn." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Het is mogelijk dat het systeem afhankelijk was van de oude apparatenlijst, " +"aangezien er meer dan één schijf aanwezig is. Het wordt aanbevolen dat u de " +"opstartmenu-items controleert op het gebruik van GRUB's schijfbenummering " +"(hdN) en deze zo nodig aanpast." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"U kunt deze melding negeren indien u deze melding niet begrijpt, of als er " +"geen zelfgemaakte menu-items aanwezig zijn." --- grub2-1.99.orig/debian/po/el.po +++ grub2-1.99/debian/po/el.po @@ -0,0 +1,481 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Emmanuel Galatoulas , 2010. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-11-24 21:33+0200\n" +"Last-Translator: Emmanuel Galatoulas \n" +"Language-Team: Greek \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Να γίνει αλυσιδωτή φόρτωση από το αρχείο menu.lst;" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Τα σενάρια αναβάθμισης του GRUB έχουν εντοπίσει αρχεία ρύθμισης του GRUB " +"Legacy στον κατάλογο /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Για να αντικαταστήσετε την έκδοση Legacy του GRUB στο σύστημά σας, " +"συνιστάται η προσαρμογή του αρχείου /boot/grub/menu.lst ώστε να φορτώνεται " +"αλυσιδωτά το GRUB 2 μέσα από την υπάρχουσα ρύθμιση του GRUB Legacy. Το βήμα " +"αυτό μπορεί να πραγματοποιηθεί τώρα αυτόματα." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Συνιστάται η αποδοχή της αλυσιδωτής φόρτωσης του GRUB 2 από το αρχείο menu." +"lst και η επαλήθευση της λειτουργικότητας της νέας ρύθμισης του GRUB 2 πριν " +"να το εγκαταστήσετε απευθείας στο MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Απέτυχε η εγκατάσταση του GRUB στις ακόλουθες συσκευές:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "GRUB installation failed. Continue?" +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Η εγκατάσταση του GRUB απέτυχε. Να συνεχίσω;" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Απέτυχε η εγκατάσταση του GRUB στις ακόλουθες συσκευές:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "" +#| "Do you want to continue anyway? If you do, your computer may not start " +#| "up properly." +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Θέλετε να συνεχίσετε έτσι κι αλλιώς; Αν ναι, είναι πιθανόν ο υπολογιστής σας " +"να μην μπορεί να εκκινηθεί κανονικά." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Η εγκατάσταση του GRUB απέτυχε. Θα ξαναπροσπαθήσετε;" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "" +#| "You may be able to install GRUB to some other device, although you should " +#| "check that your system will boot from that device. Otherwise, the " +#| "upgrade from GRUB Legacy will be cancelled." +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Είναι πιθανόν να εγκαταστήσετε το GRUB σε κάποια άλλη συσκευή, αλλά θα " +"πρέπει να ελέγξετε ότι το σύστημά σας μπορεί να εκκινηθεί από αυτή τη " +"συσκευή. Διαφορετικά, η αναβάάθμιση από την έκδοση Legacy του GRUB θα " +"ακυρωθεί." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Συνέχεια χωρίς εγκατάσταση του GRUB;" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is " +#| "an earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Επιλέξατε να μην εγκαταστήσετε το GRUB σε οποιαδήποτε συσκευή. Αν " +"συνεχίσετε, ο φορτωτής εκκίνησης πιθανόν να μην έχει ρυθμιστεί σωστά και " +"στην επανεκκίνηση του υπολογιστή σας θα χρησιμοποιήσει οτιδήποτε υπήρχε πριν " +"στον τομέα εκκίνησης. Αν υπάρχει μια προηγούμενη έκδοση του GRUB 2 στον " +"τομέα εκκίνησης, πιθανόν να μην μπορεί να φορτώσει κάποια αρθρώματα ή να " +"χειριστεί το τρέχον αρχείο ρυθμίσεων." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Αν έχετε ήδη έναν διαφορετικό φορτωτή εκκίνησης και θέλετε να συνεχίσετε με " +"αυτόν ή αν αυτό το σύστημα είναι ένα ειδικό περιβάλλον στο οποίο δεν " +"χρειάζεστε έναν φορτωτή εκκίνησης, τότε θα πρέπει να συνεχίσετε έτσι κι " +"αλλιώς. Διαφορετικά, θα πρέπει να εγκαταστήσετε κάπου το GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Να τελειώσει τώρα η μετατροπή σε GRUB 2;" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Το σύστημα έχει ακόμα εγκατεστημένα αρχεία από τον φορτωτή εκκίνησης GRUB " +"Legacy, αλλά έχει τώρα επίσης εγκατεστημένα αρχεία εκκίνησης του GRUB 2 " +"στους εξής δίσκους:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +#, fuzzy +#| msgid "" +#| "It seems likely that GRUB Legacy is no longer in use, and that you should " +#| "instead upgrade the GRUB 2 images on these disks and finish the " +#| "conversion to GRUB 2 by removing old GRUB Legacy files. If you do not " +#| "upgrade these GRUB 2 images, then they may be incompatible with the new " +#| "packages and cause your system to stop booting properly." +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Φαίνεται πιθανόν ότι ο φορτωτής εκκίνησης GRUB Legacy δεν είναι πια σε χρήση " +"και ότι θα πρέπει να κάνετε την αναβάθμιση σε GRUB 2 στους παρακάτω δίσκους " +"και να ολοκληρώσετε την μετατροπή στο GRUB 2 αφαιρώντας οποιαδήποτε " +"παλιότερα αρχεία του GRUB Legacy. Αν δεν αναβαθμίσετε αυτές τις εικόνες του " +"GRUB 2, τότε πιθανόν να είναι ασύμβατες με τα νεώτερα πακέτα, με αποτέλεσμα " +"να σταματήσει η κανονική εκκίνηση του συστήματός σας." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Θα πρέπει γενικά να τελειώσετε την μετατροπή σε GRUB 2 εκτός κι αν αυτά τα " +"αρχεία εκκίνησης έχουν δημιουργηθεί από μια εγκατάσταση του GRUB 2 σε ένα " +"άλλο λειτουργικό σύστημα." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Γραμμή εντολής Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Η επόμενη γραμμή εντολών για Linux έχει εξαχθεί από το αρχείο /etc/default/" +"grub ή από την παράμετρο `kopt' στο αρχείο menu.lst του GRUB Legacy. " +"Παρακαλώ επιβεβαιώστε ότι είναι ορθή και τροποποιήστε την αν είναι " +"απαραίτητο." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Προκαθορισμένη γραμμή εντολών Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Η ακόλουθη συμβολοσειρά θα χρησιμοποιηθεί για τις παραμέτρους Linux στην " +"προκαθορισμένη είσοδο του μενού εκκίνησης αλλά όχι για την κατάσταση " +"διάσωσης (rescue mode)." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Γραμμή εντολών kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Η επόμενη γραμμή εντολών του kFreeBSD έχει εξαχθεί από το αρχείο /etc/" +"default/grub ή από την παράμετρο `kopt' στο αρχείο menu.lst του GRUB " +"Legacy. Παρακαλώ επιβεβαιώστε ότι είναι ορθή και τροποποιήστε την αν είναι " +"απαραίτητο." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Προκαθορισμένη γραμμή εντολών kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Η ακόλουθη συμβολοσειρά θα χρησιμοποιηθεί για τις παραμέτρους kFreeBSD στην " +"προκαθορισμένη είσοδο του μενού εκκίνησης αλλά όχι για την κατάσταση " +"διάσωσης (rescue mode)." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "Το αρχείο /boot/grub/device.map έχει αναδημιουργηθεί" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "The file /boot/grub/device.map has been rewritten to use stable device " +#| "names. In most cases, this should significantly reduce the need to " +#| "change it in future, and boot menu entries generated by GRUB should not " +#| "be affected." +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Το αρχείο /boot/grub/device.map έχει ξαναγραφεί ώστε να χρησιμοποιεί έγκυρα " +"και σταθερά ονόματα συσκευών. Στις περισσότερες περιπτώσεις αυτό θα μειώσει " +"αισθητά την ανάγκη αλλαγής του στο μέλλον, ενώ τα στοιχεία του μενού " +"εκκίνησης που παράγονται από το GRUB δεν θα επηρεάζονται." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Παρόλα αυτά και αφού έχετε περισσότερους από έναν δίσκους στο σύστημά σας, " +"είναι πιθανόν η δημιουργία του να εξαρτάται από το παλιότερο αρχείο συσκεών " +"device.map. Παρακαλώ ελέγξτε αν υπάρχουν οποιεσδήποτε ειδικές είσοδοι στο " +"μενού εκκίνησης που να στηρίζονται στην αρίθμηση των συσκευών από το GRUB " +"(hdN) και ενημερώστε τις αν είναι απαραίτητο." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Αν δεν καταλαβαίνετε το παρόν μήνυμα, ή αν δεν έχετε οποιεσδήποτε ειδικές " +"εισόδους στο μενού εκκίνησης, μπορείτε να το αγνοήσετε." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Σε οποιαδήποτε περίπτωση όποτε θελήσετε να φορτωθεί το GRUB 2 απευθείας " +#~ "από το MBR μπορείτε να το κάνετε τρέχοντας (ως χρήστης root) την ακόλουθη " +#~ "εντολή:" --- grub2-1.99.orig/debian/po/vi.po +++ grub2-1.99/debian/po/vi.po @@ -0,0 +1,447 @@ +# Vietnamese translation for Grub2_Debian. +# Copyright © 2010 Free Software Foundation, Inc. +# Clytie Siddall , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-09-28 19:02+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Nạp dãy từ menu.lst ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Văn lệnh nâng cấp GRUB phát hiện được một thiết lập GRUB Thừa Tự (GRUB " +"Legacy) trong « /boot/grub »." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Để thay thế phiên bản Thừ Tự của GRUB trong hệ thống này, khuyến khích điều " +"chỉnh « /boot/grub/menu.lst » để nạp dãy (chainload) GRUB 2 từ thiết lập " +"GRUB Thừa Tự đã có. Bước này có thể được tự động thực hiện ngay bây giờ." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Khuyên bạn đồng ý với nạp dãy GRUB 2 từ menu.lst, và thẩm tra thiết lập GRUB " +"2 mới có chức năng, trước khi ghi nó trực tiếp vào MBR (mục ghi khởi động " +"chủ)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUB không cài đặt được vào những thiết bị theo đây:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +# Variable: don't translate; Biến: đừng dịch +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +# Variable: don't translate; Biến: đừng dịch +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB không cài đặt được vào những thiết bị theo đây:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Bạn vẫn muốn tiếp tục không? Có thì máy tính có thể không khởi động đúng." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Lỗi cài đặt GRUB. Thử lại ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Có thể là bạn cài đặt được GRUB vào một thiết bị khác (trước tiên nên kiểm " +"tra nếu hệ thống sẽ khởi động từ thiết bị đó). Không thì tiến trình nâng cấp " +"từ GRUB Cũ (Legacy) sẽ bị thôi." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Tiếp tục lại mà không cài đặt GRUB ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Bạn đã chọn không cài đặt GRUB vào thiết bị nào. Tiếp tục thì có thể là bộ " +"nạp khởi động bị sai cấu hình, và máy tính khởi động lại sẽ sử dụng dữ liệu " +"nào đã có trong phân vùng khởi động. Nếu phiên bản khởi động chứa một phiên " +"bản GRUB2 cũ, có thể là nó không nạp được mô-đun hoặc không xử lý được tập " +"tin cấu hình hiện thời." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Nếu bạn muốn tiếp tục chạy một bộ nạp khởi động đã có, hoặc nếu đây là một " +"môi trường đặc biệt mà không cần thiết bộ nạp khởi động, thì bạn nên tiếp " +"tục. Khác thì bạn nên cài đặt GRUB vào một vị trí nào đó." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Kết thúc chuyển đổi sang GRUB2 ngay bây giờ ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Hệ thống này vẫn còn có tập tin được cài đặt bởi bộ nạp khởi động GRUB Cũ " +"(Legacy), nhưng mà cũng có mục ghi GRUB2 được cài đặt vào những đĩa này:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Rất có thể là GRUB Cũ (Legacy) không còn được sử dụng, vì thế bạn nên nâng " +"cấp các ảnh GRUB2 trên những đĩa này và kết thúc chuyển đổi sang GRUB2 bằng " +"cách gỡ bỏ tất cả các tập tin GRUB Cũ. Không nâng cấp các ảnh GRUB2 thì " +"chúng có thể không tương thích với gói mới và gây ra hệ thống này không khởi " +"động đúng." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Nói chung bạn nên kết thúc chuyển đổi sang GRUB2 nếu các mục ghi khởi động " +"này không được tạo bởi một bản cài đặt GRUB2 trên một hệ điều hành khác." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Dòng lệnh Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Dòng lệnh Linux theo đây đã được trích ra « /etc/default/grub » hoặc từ tham " +"số « kopt » trong menu.lst của GRUB Thừa Tự. Hãy thẩm tra nó vẫn đúng, không " +"thích hợp thì cũng sửa đổi." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Dòng lệnh Linux mặc định:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Chuỗi theo đây sẽ được sử dụng làm các tham số Linux cho mục nhập trình đơn " +"mặc định, mà không phải cho chế độ phục hồi." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Dòng lệnh kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Dòng lệnh kFreeBSD theo đây đã được trích ra « /etc/default/grub » hoặc từ " +"tham số « kopt » trong menu.lst của GRUB Thừa Tự. Hãy thẩm tra nó vẫn đúng, " +"không thích hợp thì cũng sửa đổi." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Dòng lệnh kFreeBSD mặc định:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Chuỗi theo đây sẽ được sử dụng làm các tham số kFreeBSD cho mục nhập trình " +"đơn mặc định, mà không phải cho chế độ phục hồi." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "Tập tin « /boot/grub/device.map » đã được tạo lại." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Tập tin « /boot/grub/device.map » đã được ghi nhớ lại để sử dụng tên thiết " +"bị kiểu ổn định. Trong phần lớn các trường hợp, bản cập nhật này nên giảm " +"một cách đáng kể sự cần sửa đổi về sau, và không nên tác động trình đơn khởi " +"động được GRUB tạo." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Tuy nhiên, vì bạn có nhiều đĩa trong hệ thống, có thể là bạn vẫn còn phụ " +"thuộc vào sơ đồ thiết bị cũ. Hãy kiểm tra nếu bạn có mục trình đơn khởi động " +"riêng mà dựa vào số thứ tự ổ đĩa của GRUB (hdN) và cập nhật nếu thích hợp." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Nếu bạn không hiểu thông điệp này, hoặc nếu bạn không có mục trình đơn khởi " +"động riêng nào, thì bạn có thể bỏ qua thông điệp này." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Trong cả hai trường hợp, khi nào bạn muốn nạp GRUB2 một cách trực tiếp từ " +#~ "MBR, chỉ cần chạy (dưới người chủ) câu lệnh theo đây:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Lỗi cài đặt GRUB. Tiếp tục ?" --- grub2-1.99.orig/debian/po/eu.po +++ grub2-1.99/debian/po/eu.po @@ -0,0 +1,412 @@ +# translation of grub2_1.99-5_eu.po to Basque +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Piarres Beobide , 2008. +# Iñaki Larrañaga Murgoitio , 2008, 2009, 2010. +# Iñaki Larrañaga Murgoitio , 2011. +msgid "" +msgstr "" +"Project-Id-Version: grub2_1.99-5_eu\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-05-31 18:21+0200\n" +"Last-Translator: Iñaki Larrañaga Murgoitio \n" +"Language-Team: Basque \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Kargatu menu.lst fitxategitik?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB eguneratzeko script-ek GRUB zahar baten konfigurazioa aurkitu dute /" +"boot/grub-en." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Sistemako GRUB zaharraren bertsioa behar bezala ordezkatzeko, gomendagarria " +"da /boot/grub/menu.lst doitzea GRUB 2 dagoeneko instalatuta duzun GRUB " +"zaharraren bidez kargatzeko. Urrats hau automatikoki egin daiteke orain." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Gomendagarria da GRUB 2 menu.lst bidez kargatzea onartzea, eta GRUB 2-ren " +"konfigurazioak zure beharrak betetzen dituela egiaztatzea MBRan (Master Boot " +"Record) idatzi aurretik." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Berdin dio zer erabakitzen duzun, MBRren irudi zaharra GRUB 2rekin ordeztu " +"dezakezu supererabiltzaile (root) gisa honako komandoa exekutatuz:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB instalatzeko gailuak:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"grub-pc paketea eguneratzen ari da. Menu honek zer gailuentzako automatikoki " +"grub-install exekutatzea nahi duzun hautatzea (hautatzen baduzu) uzten dizu." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Egoera gehienetan grub-install automatikoki exekutatzea gomendatzen da, " +"instalatutako GRUBaren bihotzaren irudia GRUBaren modulu edo grub.cfg " +"fitxategiarekin sinkronizatzetik kanpo gelditzea saihesteko." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Ez badakizu BIOSak zer gailu izendatuta daukan abioko gailu gisa, burutazio " +"ona izan ohi da GRUB guztietan instalatzea." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Oharra: GRUB, partizio bateko abioko erregistroan instala daiteke baita ere, " +"hori dela eta, partizio egoki batzuk eskaintzen dira hemen. Hala ere, honek " +"GRUBek bloke-zerrenden mekanismoa erabiltzera derrigortzen du, ondorioz " +"fidagarritasuna jaitsiz, eta gauzak horrela ez da bat ere gomendagarria." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Lehenago GRUB abioko kargatzailea agertzen ez den disko batean instalatu " +"zen, edo edozer arrazoirengatik identifikatzaile esklusiboa aldatuta dauka. " +"Garrantzitsua da instalatutako GRUBaren bihotzaren irudia sinkronizatuta " +"egotea GRUBaren modulu eta grub.cfg fitxategiarekin. Egiaztatu ezazu berriro " +"GRUB abioko gailu egokian idatzi dela." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Huts egin du GRUB abioko gailuan idaztean - jarraitu?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUBek huts egin du honako gailuetan instalatzean:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Jarraitzea nahi duzu dena den? Jarraituz gero, baliteke ordenagailua ongi ez " +"abiaraztea." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Huts egin du GRUB abioko gailuan idaztean - saiatu berriro?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"GRUB beste gailu batean instalatzeko aukera duzu, hala ere, sistema beste " +"gailu horretatik abiatzeko ahalmena duela egiaztatu behar duzu. Bestela, " +"'GRUB Legacy' eguneratzea bertan behera utz daiteke." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Jarraitu GRUB instalatu gabe?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"GRUB inolako gailuetan ez instalatzea aukeratu duzu. Jarraitzen baduzu, " +"baliteke abioko kargatzailea ongi konfiguratuta ez egotea, eta abioko " +"sektorean aurretik zegoena erabiliko da ordenagailua hurrengo batean " +"abiatzean. Abioko sektorean GRUB 2ren aurreko bertsio bat egonez gero, agian " +"ezin izango du moduluak kargatu edo uneko konfigurazioko fitxategia kudeatu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Unean bestelako abioko kargatzaile bat erabiltzean ari bazara, eta horrela " +"jarraitzea nahi baduzu, edo hau abioko kargatzailearen beharrik ez duen " +"ingurune berezi bat bada, aurrera jarrai dezakezu. Bestela, GRUB nonbaiten " +"instalatu beharko zenuke." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Kendu 'GRUB 2' /boot/grub direktoriotik?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Nahi duzu GRUB 2ren fitxategi guztiak /boot/grub-etik kentzea?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Honek sistema ezin abiaraztea eragingo du bestelako abioko kargatzaile bat " +"instalatzen ez bada." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Amaitu GRUB 2-rako bihurketa orain?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Sistemak oraindik 'GRUB Legacy' abioko kargatzailearen fitxategiak ditu " +"oraindik, baina orain GRUB 2 bertsioko abioko erregistroak ere baditu honako " +"diskoetan:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Badirudi 'GRUB Legacy' ez denez aurrerantzean erabiliko, disko hauetako GRUB " +"2 bertsioko irudiak eguneratu eta 'GRUB Legacy'-ko fitxategiak kenduz GRUB 2-" +"ren eguneraketa amaitu beharko zenuke. GRUB 2-ko irudi hauek ez badituzu " +"eguneratzen, pakete berriekin ez dira bateragarriak izango eta sistema ongi " +"abiatzea galaraz dezake." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"GRUB 2-rako bihurketa amaitu beharko zenuke, abioko erregistro hauek beste " +"sistema eragile batzuetako GRUB 2 bertsioaren instalazioan ez badira sortuak " +"izan." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux-eko komando-lerroa:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Linux-eko komando-lerro hau /etc/default/grub edo GRUB zaharraren menu.lst " +"fitxategiko 'kopt' parametrotik atera da. Egiaztatu zuzena dela, eta " +"eraldatu behar izanez gero. Komando-lerroa hutsik egotea baimenduta dago." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux-eko komando-lerro lehenetsia:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Honako katea menuko sarrera lehenetsiaren Linux-eko parametro gisa erabiliko " +"da, baina ez berreskuratzeko moduan." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "KFreeBSD-ko komando-lerroa:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"KFreeBSD-ko komando-lerro hau /etc/default/grub edo GRUB zaharraren menu.lst " +"fitxategiko 'kopt' parametrotik atera da. Egiaztatu zuzena dela, eta " +"eraldatu behar izanez gero. Komando-lerroa hutsik egotea baimenduta dago." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "KFreeBSD-ko komando-lerro lehenetsia:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Honako katea menuko sarrera lehenetsiaren KFreeBSD-ko parametro gisa " +"erabiliko da, baina ez berreskuratzeko moduan." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map berriro sortu da" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"/boot/grub/device.map fitxategia berriro idatzi da gailuen izen egonkorrak " +"erabiltzeko. Gehienetan, etorkizunean hau aldatzeko beharra asko murriztu " +"beharko luke, eta GRUBek sortutako menuko sarrerei ez die eragingo." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Hala ere, sisteman disko bat baino gehiago dagoenez, baliteke sistema " +"gailuen mapa zaharrean mende egotea. Egiaztatu ezazu GRUBen unitateko " +"zenbaketan oinarrituta abioaren menuko sarrera pertsonalizaturen bat duzun " +"edo ez, eta egunera itzazu beharrezkoa izanez gero." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Mezu hau ez baduzu ulertzen, edo abioaren menuko sarrera pertsonalizaturik " +"ez baduzu, ezikusi egin diezaiokezu mezu honi." --- grub2-1.99.orig/debian/po/pt.po +++ grub2-1.99/debian/po/pt.po @@ -0,0 +1,438 @@ +# Portuguese translation for grub2's debconf messages +# Copyright (C) 2007 Miguel Figueiredo +# This file is distributed under the same license as the grub2 package. +# +# Miguel Figueiredo , 2007, 2010. +# Ricardo Silva , 2008. +# Tiago Fernandes , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98-1\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-12 21:57+0000\n" +"Last-Translator: Miguel Figueiredo \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Carregar em cadeia a partir do menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Os scripts de actualização do GRUB detectaram uma configuração do GRUB " +"Legacy em /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Por forma a substituir a versão antiga do GRUB que se encontra no sistema, é " +"recomendado que o /boot/grub/menu.lst seja ajustado para permitir carregar " +"imagem de boot do GRUB 2 a partir da configuração actual do GRUB antigo. " +"Esta etapa agora pode ser feita automaticamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"É recomendado que aceite carregar em cadeia o GRUB 2 a partir do menu.lst, e " +"verificar que a configuração do novo GRUB 2 está funcional, antes de ser " +"escrito no MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Qualquer que seja a sua decisão, pode substituir mais tarde a antiga imagem " +"do MBR com o GRUB 2, executando como root o seguinte comando:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "dispositivos de instalação GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"O pacote grub-pc está a ser actualizado. Este menu permite-lhe seleccionar " +"quais os dispositivos onde gostaria que o grub-install corresse " +"automaticamente, se algum." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Correr o grub-install automaticamente é recomendado na maior parte das " +"situações, para prevenir que a imagem core do GRUB instalada não fique " +"dessincronizada com os módulos do GRUB ou grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Se não têm a certeza de qual a drive designada como driver de arranque pela " +"sua BIOS, é normalmente boa ideia instalar o GRUB em todas elas." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Nota: é possível instalar o GRUB no boot record de partições, e são " +"oferecidas algumas partições aqui. No entanto, isto força o GRUB a utilizar " +"o mecanismo blocklist, que o torna menos fiável. Assim não é recomendável." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"O boot loader do GRUB foi instalado num disco que não se encontra presente, " +"ou então o seu identificador único foi alterado por alguma razão. É " +"importante ter a certeza que a imagem core do GRUB se mantêm sincronizada " +"com os módulos do GRUB e grub.cfg. Por favor verifique de novo para ter a " +"certeza de que o GRUB é escrito nos dispositivos apropriados de arranque." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "A escrita do GRUB para o dispositivo de arranque falhou - continuar?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "A instalação do GRUB falhou nos seguintes dispositivos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Pretende continuar de qualquer modo? Em caso afirmativo, o seu computador " +"pode não arrancar em condições. " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"A escrita do GRUB para o dispositivo de arranque falhou - tentar de novo?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Poderá instalar o GRUB noutro dispositivo, no entanto deverá verificar que o " +"seu sistema arranca desse dispositivo. Se não o fizer, a actualização a " +"partir do GRUB Legacy será cancelada." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuar sem instalar o GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Escolheu não instalar o GRUB em qualquer dispositivo. Se continuar, o gestor " +"de arranque pode não ficar correctamente configurado, e quando o computador " +"arrancar da próxima vez irá usar o que estiver anteriormente no sector de " +"arranque. Se existir uma versão anterior do GRUB 2 no sector de arranque, " +"poderá não ser capaz de carregar os módulos e gerir o ficheiro de " +"configuração actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Se já estiver a utilizar um gestor de arranque diferente e quiser continuar " +"a fazê-lo, ou se se tratar de um ambiente especial onde não necessita de " +"gestor de arranque, deverá então continuar de qualquer modo. Caso contrário, " +"deverá instalar o GRUB em algum sitio." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Remover o GRUB 2 de /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Deseja remover todos os ficheiros do GRUB 2 de /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Isto fará com que o sistema não arranque até que seja instalado outro gestor " +"de arranque." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Finalizar a conversão para o GRUB 2 agora?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Este sistema ainda tem ficheiros instalados do gestor de arranque GRUB " +"Legacy, no entanto agora também tem registos de arranque do GRUB 2 " +"instalados nos discos seguintes:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Parece provável que o GRUB Legacy não esteja a ser usado, deve fazer a " +"actualização das imagens do GRUB 2 nestes discos e finalizar a conversão " +"para o GRUB 2 removendo os ficheiros antigos do GRUB Legacy. Se não " +"actualizar estas imagens GRUB 2 então estas podem ser incompatíveis com " +"novos pacotes e provocar uma falha no arranque do sistema." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Normalmente deverá finalizar a conversão para o GRUB 2 a não ser que estes " +"registos de arranque tenham sido criados por uma instalação do GRUB 2 noutro " +"sistema operativo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linha de comandos do Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"A seguinte linha de comandos Linux foi extraída a partir de /etc/default/" +"grub ou do parâmetro `kopt' no menu.lst do GRUB Legacy. Por favor verifique " +"que está correcta, e modifique se necessário." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linha de comandos padrão do Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"A seguinte linha será utilizada como parâmetros para o Linux na entrada " +"predefinida do menu, mas não para o modo de recuperação." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "linha de comandos kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"A seguinte linha de comandos kFreeBSD foi extraída a partir de /etc/default/" +"grub ou do parâmetro `kopt' no menu.lst do GRUB Legacy. Por favor verifique " +"que está correcta, e modifique se necessário." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Linha de comandos padrão do kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"A seguinte linha será utilizada como parâmetros para o kFreeBSD para a " +"entrada por omissão do menu, mas não para o modo de recuperação." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "O /boot/grub/device.map foi recriado" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"O ficheiro /boot/grub/device.map foi reescrito para usar nomes de " +"dispositivos estáveis. Na maioria dos casos, esta acção reduz " +"significativamente a necessidade de alterações no futuro e as entradas de " +"menu geradas pelo GRUB não deverão ser afectadas." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"No entanto, desde que está presente no sistema mais do que um disco, é " +"possível que o sistema esteja dependente do mapa antigo de dispositivos " +"(device map). Por favor verifique se tem algumas entradas personalizadas no " +"menu de arranque que dependam da numeração de drives do GRUB (hdN), e " +"actualize-as se necessário." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se não entende esta mensagem ou se não tiver entradas personalizadas no menu " +"de arranque, pode ignorar esta mensagem." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Em qualquer dos casos, quando quiser que o GRUB 2 seja carregado " +#~ "directamente a partir do MBR, pode fazê-lo executando (como root) o " +#~ "seguinte comando: " + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "A instalação do GRUB falhou. Continuar?" --- grub2-1.99.orig/debian/po/fr.po +++ grub2-1.99/debian/po/fr.po @@ -0,0 +1,438 @@ +# translation of fr.po to French +# Translation of grub2 debconf templates to French +# Copyright (C) 2008-2010 Debian French l10n +# This file is distributed under the same license as the grub2 package. +# +# Christian Perrier , 2007, 2008, 2009, 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-05-28 07:47+0200\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Faut-il enchaîner le chargement depuis menu.lst ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "Une installation standard de GRUB a été détectée dans /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Afin de remplacer cette installation, il est recommandé de modifier /boot/" +"grub/menu.lst pour charger GRUB 2 depuis l'installation standard de GRUB " +"(« chainload »). Veuillez choisir si vous souhaitez effectuer cette " +"modification." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Il est recommandé de choisir cette option pour pouvoir confirmer le bon " +"fonctionnement de GRUB 2 avant de l'installer directement sur le secteur " +"d'amorçage (MBR : « Master Boot Record »)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Quel que soit votre choix, vous pourrez, plus tard, remplacer l'ancien " +"secteur d'amorçage par GRUB 2 avec la commande suivante, exécutée avec les " +"privilèges du superutilisateur :" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Périphériques où installer GRUB :" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Le paquet grub-pc est en cours de mise à jour. Ce menu permet de choisir " +"pour quels périphériques vous souhaitez exécuter la commande grub-install " +"automatiquement." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Il est en général recommandé d'exécuter grub-install automatiquement, afin " +"d'éviter la situation où l'image de GRUB est désynchronisée avec les modules " +"de GRUB ou le fichier grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Si vous n'avez pas la certitude du périphérique utilisé comme périphérique " +"d'amorçage par le BIOS, il est en général conseillé d'installer GRUB sur " +"l'ensemble des périphériques." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Veuillez noter que GRUB peut également être installé sur les secteurs " +"d'amorçage de partitions. Certaines partitions où cela pourrait être " +"nécessaire sont indiquées ici. Cependant, cela impose que GRUB utilise le " +"mécanisme « blocklist », ce qui le rend moins fiable et n'est donc pas " +"recommandé." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Le chargeur d'amorçage GRUB était précédemment installé sur un disque qui " +"n'est plus présent ou dont l'identifiant unique a changé pour une raison ou " +"une autre. Il est important de vous assurer que l'image de GRUB qui est " +"installée reste synchronisée avec les modules de GRUB ou grub.cfg. Veuillez " +"vérifier à nouveau que GRUB sera bien installé sur les périphériques " +"d'amorçage pertinents." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} Mo; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} Mo; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" +"Échec de l'installation de GRUB sur le périphérique d'amorçage. Continuer ?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB n'a pas pu être installé sur les périphériques suivants :" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Veuillez confirmer si vous souhaitez continuer malgré le risque d'un " +"démarrage incorrect de la machine." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Échec de l'installation de GRUB sur le périphérique d'amorçage. Essayer à " +"nouveau ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Il est peut-être possible d'installer GRUB sur un autre périphérique après " +"avoir vérifié que le système pourra démarrer sur ce périphérique. Dans le " +"cas contraire, la mise à jour depuis l'ancienne version de GRUB va échouer." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Faut-il poursuivre sans installer GRUB ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Vous avez choisi de n'installer GRUB sur aucun périphérique. Si vous " +"poursuivez, il est possible que le programme de démarrage ne soit pas " +"configuré correctement et que la machine démarre avec ce qui était " +"précédemment installé sur le secteur d'amorçage. Si une ancienne version de " +"GRUB 2 s'y trouve, il est possible qu'elle ne puisse pas charger certains " +"modules ou lire le fichier de configuration actuel." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Si vous utilisez déjà un autre programme de démarrage et souhaitez " +"poursuivre ou si, en raison d'un environnement particulier, vous n'avez pas " +"besoin de programme de démarrage, vous pouvez continuer malgré tout. Dans le " +"cas contraire, il est nécessaire d'installer GRUB quelque part." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Faut-il supprimer GRUB 2 de /boot/grub ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" +"Veuillez choisir si vous voulez vraiment supprimer tous les fichiers de " +"GRUB 2 de /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Cela peut rendre le système impossible à démarrer tant qu'un autre chargeur " +"d'amorçage ne sera pas installé." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Faut-il terminer la migration vers GRUB 2 maintenant ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Ce système comporte encore des fichiers de la version précédente du " +"programme de démarrage GRUB mais comporte également des secteurs d'amorçage " +"de GRUB 2 sur les disques suivants :" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Il est très probable que la version précédente de GRUB ne soit plus utilisée " +"et il est donc conseillé de mettre à jour les images de GRUB 2 sur ces " +"disques, puis terminer la migration vers GRUB 2 en supprimant les anciens " +"fichiers de la version précédente. Si vous ne mettez pas ces images de " +"GRUB 2 à jour, elles pourraient être incompatibles avec de nouvelles " +"versions, ce qui pourrait empêcher un démarrage normal." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Il est donc très probablement nécessaire de terminer la migration vers " +"GRUB 2 à moins que ces secteurs d'amorçage n'aient été créés par une " +"installation de GRUB 2 d'un autre système d'exploitation." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Ligne de commande de Linux :" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La ligne de commande de Linux suivante a été récupérée via le fichier /etc/" +"default/grub ou le paramètre « kopt » du fichier menu.lst utilisé par la " +"version originelle de GRUB. Veuillez contrôler qu'elle est correcte et la " +"modifier si nécessaire. Cette ligne de commande peut être vide." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Ligne de commande par défaut de Linux :" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Les paramètres indiqués seront utilisés pour le noyau Linux de l'entrée de " +"menu par défaut mais pas pour le mode de secours." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Ligne de commande de kFreeBSD :" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La ligne de commande de kFreeBSD suivante a été récupérée via le fichier /" +"etc/default/grub ou le paramètre « kopt » du fichier menu.lst utilisé par la " +"version originelle de GRUB. Veuillez contrôler qu'elle est correcte et la " +"modifier si nécessaire. Cette ligne de commande peut être vide." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Ligne de commande par défaut de kFreeBSD :" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Les paramètres indiqués seront utilisés pour le noyau kFreeBSD de l'entrée " +"de menu par défaut mais pas pour le mode de secours." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "Recréation de /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Le fichier /boot/grub/device.map a été réécrit afin d'utiliser des noms de " +"périphériques stables. Dans la majorité des cas, cela devrait éviter d'avoir " +"à le modifier dans le futur et les entrées de menu créées par GRUB ne " +"devraient pas être affectées par ce changement." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Cependant, si la machine comporte plus d'un disque, il est possible que le " +"démarrage dépende de l'ancien système de cartographie des périphériques " +"(« device map »). Vous devriez vérifier s'il existe des entrées de menu de " +"démarrage personnalisées qui se servent encore de la numérotation de disques " +"de GRUB (hdN), puis les mettre à jour si nécessaire." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Si vous ne comprenez pas ces explications ou n'utilisez pas d'entrées " +"personnalisées dans le menu de démarrage, vous pouvez ignorer cet " +"avertissement. " + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Dans tous les cas, pour charger GRUB 2 directement depuis le secteur " +#~ "d'amorçage, vous devrez utiliser la commande suivante avec les privilèges " +#~ "du superutilisateur :" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Échec de l'installation de GRUB. Continuer ?" --- grub2-1.99.orig/debian/po/ca.po +++ grub2-1.99/debian/po/ca.po @@ -0,0 +1,425 @@ +# Catalan translation of grub2's debconf messages +# Copyright © 2009, 2010, 2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub2 package. +# +# Jordi Mallach , 2009, 2010, 2011. +# Juan Andrés Gimeno Crespo , 2009. +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.99-5\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-05-30 22:57+0200\n" +"Last-Translator: Jordi Mallach \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Voleu carregar en cadena des del menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Els scripts d'actualització del GRUB han detectat una configuració del GRUB " +"Legacy en /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"A l'hora de reemplaçar la versió Legacy del GRUB que hi ha al sistema, és " +"recomanable que es modifique /boot/grub/menu.lst per a carregar una imatge " +"d'arrencada del GRUB 2 des de la vostra configuració del GRUB Legacy " +"existent. Aquest pas es pot dur a terme ara." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"És recomanable que accepteu la càrrega en cadena del GRUB 2 des del menu." +"lst, per a verificar que la nova configuració del GRUB 2 funciona " +"correctament, abans de que s'escriga al registre mestre d'arrencada (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Independentment de la vostra decisió, podeu reemplaçar la imatge antiga de " +"l'MBR amb el GRUB2 executant l'ordre següent com a root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Dispositius d'instaŀlació del GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"S'està actualitzant el paquet grub-pc. Aquest menú us permet seleccionar " +"sobre quins dispositius voleu que s'execute el grub-install automàticament, " +"en cas de voler-ho." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"L'execució automàtica del grub-install és recomanable en la majoria de les " +"situacions, per a evitar que la imatge del nucli del GRUB es desincronitze " +"amb els mòduls del GRUB o el grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Si no esteu segur sobre quina és la unitat designada com a unitat " +"d'arrencada per la BIOS, normalment és una bona idea instaŀlar el GRUB a " +"tots ells." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Nota: també és possible instaŀlar el GRUB a registres d'arrencada de " +"particions, i s'ofereixen algunes particions addients. Tanmateix, això força " +"al GRUB a usar el mecanisme de llistes de blocs, que fa que siga menys " +"fiable, per la qual cosa no és recomanable." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"El carregador GRUB estava instaŀlat a un disc que ja no és present, o per al " +"qual ha canviat el seu identificador únic per alguna raó. És important " +"assegurar-se que la imatge del nucli del GRUB roman sincronitzada amb els " +"mòduls del GRUB i el grub.cfg. Comproveu de nou que el GRUB s'escriu als " +"dispositius d'arrencada apropiats." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Ha fallat l'escriptura del GRUB al dispositiu. Voleu continuar?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "El GRUB no s'ha pogut instaŀlar als dispositius següents:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Voleu continuar tot i això? Si ho feu, és possible que l'ordinador no " +"arrenque correctament." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Ha fallat l'escriptura del GRUB al dispositiu. Voleu tornar a provar-ho?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"És possible que pugueu instaŀlar el GRUB en un altre dispositiu, tot i que " +"hauríeu de comprovar que el sistema arrencarà des d'aquell dispositiu. En " +"cas contrari, es canceŀlarà l'actualització des del GRUB Legacy." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Voleu continuar sense instaŀlar el GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Heu triat no instaŀlar el GRUB en cap dispositiu. Si continueu, és possible " +"que el carregador no estiga configurat correctament, i quan s'arrenque " +"l'ordinador la pròxima vegada, emprarà allò que estigués al sector " +"d'arrencada. Si hi ha una versió anterior del GRUB2 al sector d'arrencada, " +"és possible que no puga carregar mòduls o gestionar el fitxer de " +"configuració actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Si ja esteu emprant un altre carregador i voleu continuar fent-ho, o aquest " +"és un entorn especial on no necessiteu un carregador, hauríeu de continuar. " +"Si no és així, hauríeu d'instaŀlar el GRUB en algun lloc." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Voleu suprimir el GRUB 2 de /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Voleu suprimir tots els fitxers del GRUB 2 de /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Això farà que el sistema no arrenque si no s'instaŀla un altre carregador." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Voleu finalitzar la conversió al GRUB 2 ara?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Aquest sistema encara té fitxers antics del carregador GRUB Legacy " +"instaŀlats, però ara també té registres d'arrencada del GRUB 2 instaŀlats " +"als discs següents:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Sembla probable que el GRUB Legacy no estiga ja en ús, i que hauríeu " +"d'actualitzar les imatges del GRUB 2 presents a aquests discs per a " +"finalitzar la conversió al GRUB 2, suprimint els fitxers vells del GRUB " +"Legacy. Si no actualitzeu aquestes imatges del GRUB 2, és possible que " +"romanen incompatibles amb els paquets nous i que causen que el sistema deixe " +"d'arrencar correctament." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"En general, hauríeu de finalitzar la conversió al GRUB 2 a no ser que " +"aquests registres d'arrencada els haja creat una instaŀlació del GRUB 2 des " +"d'un altre sistema operatiu." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Línia d'ordres de Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La línia d'ordres de Linux següent ha sigut extreta de /etc/default/grub o " +"del paràmetre «kopt» del fitxer menu.lst del GRUB Legacy. Verifiqueu que és " +"correcta, i modifiqueu-la si és necessari. La línia d'ordres pot ser buida." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Línia d'ordres de Linux per defecte:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"La cadena següent serà emprada com a paràmetres del Linux per al menú " +"d'entrada per defecte però no per al mode de recuperació." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Línia d'ordres de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La línia d'ordres de kFreeBSD següent ha sigut extreta de /etc/default/grub " +"o del paràmetre «kopt» del fitxer menu.lst del GRUB Legacy. Verifiqueu que " +"és correcta, i modifiqueu-la si és necessari. La línia d'ordres pot ser " +"buida." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Línia d'ordres de kFreeBSD per defecte:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"La cadena següent serà emprada com a paràmetres del kFreeBSD per al menú " +"d'entrada per defecte però no per al mode de recuperació." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "S'ha regenerat el fitxer «/boot/grub/device.map»" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"S'ha reescrit el fitxer «/boot/grub/device.map» per a usar noms estables de " +"dispositiu. En la majoria dels casos, això hauria de reduir la necessitat de " +"canviar-ho en el futur, i no hauria d'afectar les entrades del menú " +"d'arrencada generades pel GRUB." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Tanmateix, com hi ha més d'un disc al sistema, és possible que el sistema " +"depenga del mapa de dispositius antic. Comproveu si hi ha entrades del menú " +"d'arrencada personalitzades que requerisquen la numeració d'unitats del GRUB " +"(hdN), i actualitzeu-les si és necessari." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Si no enteneu aquest missatge, o si no hi ha cap entrada del menú " +"d'arrencada personalitzada, podeu descartar aquest missatge." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "En qualsevol cas, quan vulgueu que es carregue el GRUB 2 directament des " +#~ "de l'MBR, podeu fer-ho executant (com a root) l'ordre següent:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Ha fallat la instaŀlació del GRUB. Voleu continuar?" --- grub2-1.99.orig/debian/po/sl.po +++ grub2-1.99/debian/po/sl.po @@ -0,0 +1,430 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-09 10:50+0100\n" +"Last-Translator: Vanja Cvelbar \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" +"%100==4 ? 3 : 0);\n" +"X-Poedit-Language: Slovenian\n" +"X-Poedit-Country: SLOVENIA\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Verižno nalaganje iz menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "Skript za nadgradnjo je zaznal namestitev GRUB Legacy v /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Da zamenjate različico GRUB Legacy na vašem sistemu vam priporočamo, da se /" +"boot/grub/menu.lst spremeni tako, da verižno naloži GRUB 2 iz vaše obstoječe " +"namestitve GRUB Legacy. To dejanje lahko zdaj izvedete samodejno." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Priporočamo vam, da sprejmete verižno nalaganje GRUB 2 iz datoteke menu.lst " +"in preverite delovanje namestitve GRUB2 preden ga namestite na MBR (Master " +"Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Kakorkoli se odločite, stari MBR lahko kasneje vedno zamenjate z GRUB 2, če " +"izvedete kot root sledeči ukaz:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Namestitvene naprave za GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Nadgrajevanje paketa grub-pc. Ta meni vam omogoči izbiro naprav za katere " +"želite samodejno zagnati grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"V večini primerov je priporočen samodejni zagon grub-install, da preprečite " +"neskladja med jedrom GRUBa in moduli ali grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"V primeru, da niste prepričani kateri pogon je označuje vaš BIOS za " +"zagonskega, je ponavadi dobro, da namestite GRUB kar na vse." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Opomba: GRUB je mogoče namestiti tudi na zagonski zapis razdelka. Primerni " +"razdelki so na tem spisku. To pa zahteva uporabo mehanizma blocklist, ki je " +"manj zanesljiv in zato ni priporočen." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Zagonski nalagalnik GRUB je bil nameščen na disku, ki ni več prisoten ali se " +"mu je spremenil enolični identifikator. Važno je, da so jedro GRUBa in " +"moduli ter grub.cfg skladni. Preverite prosim, da je GRUB zapisan na " +"pravilno zagonsko napravo." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Napaka pri pisanju na zagonsko napravo za GRUB. Želite nadaljevati?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Napaka pri nameščanju GRUBa na sledeče naprave:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Želite vseeno nadaljevati? V primeru, da boste nadaljevali se računalnik " +"mogoče ne bo pravilno zagnal." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Nameščanje GRUBa na zagonsko napravo ni uspelo. Želite še enkrat poskusiti?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Mogoče lahko namestite GRUB na katero drugo napravo, preveriti pa morate, da " +"se bo lahko vaš sistem zagnal iz te naprave. Drugače bo posodobitev iz " +"zastarelega GRUB prekinjena ." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Želite nadaljevati, ne da bi namestili GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Izbrali ste, da ne boste namestili GRUBa na nobeno napravo. V primeru, da " +"nadaljujete zagonski nalagalnik ne bo pravilno nastavljen. Računalnik bo ob " +"naslednjem zagonu uporabil karkoli je bilo prej nameščeno na zagonskem " +"sektorju. V primeru, da se tam nahaja starejša različica GRUB 2 mogoče ta ne " +"bo uspela naložiti modulov ali brati sedanje nastavitvene datoteke." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"V primeru, da že uporabljate različen zagonski nalagalnik in želite s tem " +"nadaljevati ali pa je to posebno zagonsko okolje kjer ne rabite zagonskega " +"nalagalnika lahko vsekakor nadaljujete. V ostalih primerih bi morali nekam " +"namestiti GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Želite odstraniti GRUB 2 iz /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" +"Želite odstraniti iz /boot/grub vse datoteke, ki se nanašajo na GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Zaradi tega se sistem ne bo mogel zagnati, razen, če uporabite drugi " +"zagonski nalagalnik." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Želite zdaj dokončati pretvorbo v GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Na tem sistemu so še nameščene datoteke iz zastarelega GRUBa, a zdaj je " +"nameščen tudi zagonski zapis GRUB 2 na sledečih diskih:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Zdi se verjetno, da zastareli GRUB ni več v uporabi in da bi morali namesto " +"tega nadgraditi te diske na GRUB 2 ter dokončati pretvorbo v GRUB 2 z " +"odstranitvijo datotek za zastareli GRUB. V primeru, da ne boste izvedli " +"nadgradnje na GRUB 2 lahko pride do nezdružljivosti z novimi paketi in težav " +"pri zagonu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Običajno bi morali dokončati pretvorbo v GRUB 2 razen, če so bili ti " +"zagonski zapisi ustvarjeni pri nameščanju GRUB 2 na drugem operacijskem " +"sistemu." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Ukazna vrstica Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Sledeči ukaz za Linux je vzet iz datoteke /etc/default/grub ali iz parametra " +"`kopt' v datoteki menu.lst sistema GRUB Legacy. Preverite prosim, da je " +"točen in ga po potrebi popravite." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Privzeta ukazna vrstica Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Sledeča vrstica bo uporabljena kot parameter Linuxa za privzeti vnos v " +"meniju, ne pa za reševalni način." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Ukazna vrstica kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Sledeči ukaz za kFreeBSD je vzet iz datoteke /etc/default/grub ali iz " +"parametra `kopt' v datoteki menu.lst sistema GRUB Legacy. Preverite " +"prosim, da je točen in ga po potrebi popravite." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Privzeta ukazna vrstica kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Sledeča vrstica bo uporabljena kot parameter kFreeBSD za privzeti vnos v " +"meniju, ne pa za reševalni način." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "ustvarjena je bila datoteka /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Datoteka /boot/grub/device.map je bila prepisana s stabilnimi imeni naprav. " +"V večini primerov bo to v prihodnosti močno zmanjšalo potrebo po njenih " +"spremembah. Na vnose v zagonskem meniju, ki jih ustvari GRUB to ne bi smelo " +"imeti učinka." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Ker imate več kot en disk na vašem sistemu je možno, da ste bili odvisni od " +"starega spiska naprav. Preverite prosim ali imate kakšen vnos po meri v " +"zagonskem meniju, ki se naslanja na poimenovanje diskov (hdN) v GRUBu in ga " +"posodobite, če je to potrebno." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"V primeru, da tega sporočila ne razumete ali nimate nobenih vnosov po meri " +"v zagonskem meniju se za to sporočilo ne menite." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "V primeru, da želite, da se GRUB 2 naloži neposredno iz MBRja, lahko v " +#~ "obeh primerih zaženete (kot sistemski skrbnik) sledeči ukaz:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB ni bil nameščen. Želite nadaljevati?" --- grub2-1.99.orig/debian/po/de.po +++ grub2-1.99/debian/po/de.po @@ -0,0 +1,431 @@ +# Translation of GRUB 2 debconf templates to German +# Copyright (C) Helge Kreutzmann , 2007-2009. +# Martin Eberhard Schauer , 2010. +# This file is distributed under the same license as the grub2 package. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100710-2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-11 11:07+0100\n" +"Last-Translator: Martin Eberhard Schauer \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Aus »menu.lst« laden (Chainload)?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Die Upgrade-Skripte von GRUB haben eine Installation von »GRUB Legacy« in /" +"boot/grub gefunden." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Um die Legacy-Version von GRUB auf Ihrem System zu ersetzen, wird die " +"Anpassung von /boot/grub/menu.lst empfohlen, so dass GRUB 2 aus Ihrer " +"bestehenden GRUB-Legacy-Konfiguration heraus geladen wird. Dieser Schritt " +"kann jetzt automatisch vollzogen werden." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Es wird empfohlen, dass Sie dem Laden von GRUB 2 aus menu.lst zustimmen und " +"überprüfen, dass Ihre neue »GRUB 2«-Installation funktioniert, bevor diese " +"in den MBR (Master Boot Record) geschrieben wird." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Unabhängig von Ihrer Entscheidung können Sie den alten MBR später durch GRUB " +"2 ersetzen. Geben Sie dazu als »root« den folgenden Befehl ein:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Geräte für die GRUB-Installation:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Für das Paket grub-pc wird gerade ein Upgrade durchgeführt. In diesem Menü " +"können Sie auswählen, ob und für welche Geräte grub-install automatisch " +"ausgeführt werden soll." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Für die Mehrzahl der Fälle wird empfohlen, grub-install automatisch laufen " +"zu lassen. So wird vermieden, dass das installierte GRUB-Image nicht zu den " +"GRUB-Modulen oder grub.cfg passt." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Wenn Sie nicht sicher sind, welches Gerät das BIOS zum Booten benutzt, ist " +"es oft eine gute Idee, GRUB auf allen Geräten zu installieren." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Hinweis: Sie können GRUB auch in die Boot-Blöcke von Partionen schreiben." +"Hier werden auch einige geeignete Partitionen angeboten. Das zwingt GRUB " +"allerdings dazu, den Blocklist-Mechanismus zu verwenden. Dieser ist weniger " +"zuverlässig und wird daher nicht empfohlen." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Der GRUB-Bootloader wurde zuvor auf einem Datenträger, der nicht mehr im " +"System vorhanden ist oder dessen eindeutige Kennung aus irgendeinem Grund " +"geändert wurde, installiert. Es ist wichtig, sicherzustellen, dass das " +"installierte GRUB-Core-Image synchron mit den GRUB-Modulen und grub.cfg " +"bleibt. Bitte prüfen Sie erneut, um sicherzustellen, dass GRUB auf die " +"entsprechenden Boot-Geräte geschrieben wird." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "GRUB konnte nicht auf das Boot-Gerät geschrieben werden - fortfahren?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB konnte nicht auf den folgenden Geräten installiert werden:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Wollen Sie trotzdem fortfahren? Falls ja, wird Ihr Rechner vielleicht nicht " +"problemlos hochfahren." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Das Schreiben von GRUB auf das Boot-Gerät ist fehlgeschlagen. Noch einmal " +"versuchen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Vielleicht können Sie GRUB auf einem anderen Gerät installieren. Sie sollten " +"aber prüfen, ob Ihr System von diesem Gerät startet. Sonst wird das Upgrade " +"von GRUB Legacy abgebrochen." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Fortsetzen, ohne Grub zu installieren?" + +# (mes) Seht Ihr einen Unterschied zwischen der alten und der neuen Version. +# Ich habe jetzt nur das fuzzy rausgenommen. +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Sie haben sich entschieden, GRUB auf kein Gerät zu installieren. Wenn Sie " +"fortfahren, könnte der Boot-Loader nicht richtig konfiguriert sein. Beim " +"nächsten Hochfahren dieses Computers wird der Boot-Loader benutzen, was " +"immer sich vorher im Boot-Sektor befand. Wenn sich schon eine ältere Version " +"von GRUB 2 im Boot-Sektor befindet, kann sie möglicherweise keine Module " +"laden oder nicht mehr mit der aktuellen Konfigurationsdatei umgehen." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Falls Sie bereits einen anderen Boot-Loader einsetzen und diesen beibehalten " +"wollen oder Ihre spezielle Umgebung keinen Boot-Loader erfordert, dann " +"sollten Sie trotzdem fortfahren. Anderenfalls sollten Sie GRUB irgendwo " +"installieren." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "GRUB 2 aus /boot/grub entfernen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Wollen Sie alle Daten von GRUB 2 aus /boot/grub entfernen lassen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Wenn kein anderer Boot-Loader installiert ist, kann Ihr System anschließend " +"nicht mehr booten (hochfahren)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Jetzt die Umstellung auf GRUB 2 abschließen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Auf diesem System sind noch Dateien des GRUB-Legacy-Boot-Loaders " +"installiert, aber es sind nun auch GRUB-2-Boot-Sektoren auf den folgenden " +"Datenträgern installiert:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Es sieht so aus, als ob Sie GRUB Legacy nicht mehr verwenden. Daher sollten " +"Sie stattdessen ein Upgrade der GRUB-2-Images auf diesen Datenträgern " +"durchführen und die Umstellung auf GRUB 2 abschließen, indem Sie die alten " +"GRUB-Legacy-Dateien entfernen. Falls Sie das Upgrade für diese GRUB-2-Images " +"nicht durchführen, könnten diese mit den neuen Paketen nicht kompatibel sein " +"und dazu führen, dass Ihr System nicht mehr einwandfrei startet." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Grundsätzlich sollten Sie die Umstellung auf GRUB 2 abschließen, es sei " +"denn, diese GRUB-2-Boot-Sektoren wurden von einem anderen Betriebssystem " +"installiert." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux-Befehlszeile:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Die folgende Linux-Befehlszeile wurde aus /etc/default/grub oder dem " +"Parameter »kopt« in der Datei menu.lst von GRUB Legacy extrahiert. Bitte " +"überprüfen Sie, ob die Befehlszeile korrekt ist und ändern Sie diese, wenn " +"es notwendig ist." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standard-Befehlszeile für Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Die folgende Zeichenkette wird als Linux-Parameter für den " +"Standardmenüeintrag, nicht aber für den Rettungsmodus verwandt." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Befehlszeile für kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Die folgende kFreeBSD-Befehlszeile wurde aus /etc/default/grub oder dem " +"Parameter »kopt« in der Datei menu.lst von GRUB Legacy extrahiert. Bitte " +"überprüfen Sie, ob diese korrekt ist und passen Sie sie an, wenn das " +"erforderlich ist. " + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standard-Befehlszeile für kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Die folgende Zeichenkette wird als kFreeBSD-Parameter für den " +"Standardmenüeintrag, nicht aber für den Rettungsmodus verwandt." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map wurde neu erstellt." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Die Datei /boot/grub/device.map wurde umgeschrieben, um stabile Gerätenamen " +"zu verwenden. In der Mehrzahl der Fälle sollte dies die Notwendigkeit " +"zukünftiger Änderungen deutlich verringern. Von GRUB erstellte Boot-Menü-" +"Einträge sollten nicht betroffen sein." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Da sich in diesem System mehrere Festplatten befinden, ist es möglich, dass " +"das System von der alten »device map« abhängig ist. Bitte überprüfen Sie, " +"obbenutzerdefinierte Boot-Menü-Einträge mit der (hdn)-Laufwerkszählung von " +"GRUB vorhanden sind und aktualisieren Sie diese gegebenenfalls." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Wenn Sie diese Nachricht nicht verstehen oder wenn keine modifizierten Boot-" +"Menü-Einträge vorhanden sind, können Sie diese Nachricht ignorieren." --- grub2-1.99.orig/debian/po/be.po +++ grub2-1.99/debian/po/be.po @@ -0,0 +1,470 @@ +# Belarusian translation of grub2 templates +# Copyright (C) 2009 respective translators (see below) +# This file is distributed under the same license as the grub2 package. +# Hleb Rubanau , 2009, +# Viktar Siarheichyk , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: be\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-12 17:08+0300\n" +"Last-Translator: Viktar Siarheichyk \n" +"Language-Team: Debian Belarusian (Official spelling) \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Belarusian\n" +"X-Poedit-Country: BELARUS\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Ланцуговая загрузка з menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Скрыпты абнаўлення GRUB выявілі папярэднюю версію GRUB, усталяваную ў /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Каб замяніць папярэднюю версію GRUB у Вашай сістэме, пажадана выправіць " +"файл /boot/grub/menu.lst такім чынам, каб GRUB 2 загружаўся з існуючай " +"папярэдняй версіі GRUB. Зараз можна зрабіць гэтую наладку аўтаматычна." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Раім абраць ланцуговую загрузку GRUB 2 з menu.lst, і праверыць, што нанова " +"ўсталяваны GRUB 2 працуе, перад тым як усталёўваць яго ў галоўны загрузачны " +"запіс (MBR, Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Як бы вы ні вырашылі, можна пазней замяніць стары вобраз MBR на GRUB 2, калі " +"выканаць як root наступныя каманды:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Прылады, на якія ўсталёўваць GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"x`Пакет grub-pc абнаўляецца. Гэтае меню дазваляе абраць, для якіх прыладаў " +"трэба, калі ўвогуле трэба, аўтаматычна запускаць grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"У большасці выпадкаў рэкамендуецца запускаць grub-install аўтаматычна, каб " +"усталяваны асноўны вобраз GRUB заставаўся ў адпаведнасці з модулямі GRUB і " +"grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Калі вы не пэўныя, якая прылада ў вашым BIOS прызначаная як галоўная, то " +"хутчэй за ўсё лепей будзе ўсталяваць GRUB на іх усіх." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Увага: таксама магчыма ўсталяваць GRUB у сектары пачатковай загрузкі " +"падзелаў, і некаторыя адпаведныя падзелы тут прапануюцца. Аднак, для гэтага " +"GRUB мусіць карыстацца механізмам спісаў блокаў, што змяншае надзейнасць і " +"таму не рэкамендуецца." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Пачатковы запускальнік GRUB раней быў усталяваны на дыск, які зараз " +"адсутнічае, альбо чый унікальны ідэнтыфікатар па нейкай прычыне змяніўся. " +"Важна, каб усталяваны асноўны вобраз GRUB адпавядаў модулям GRUB і grub.cfg. " +"Калі ласка, праверце яшчэ раз, каб упэўніцца, што GRUB запісаны ў адпаведныя " +"загрузкавыя прылады." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} Мб; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Запіс GRUB на загрузкавую прыладу не ўдаўся - працягваць?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Не атрымалася ўсталяваць GRUB на наступныя прылады:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Вы жадаеце працягваць, не зважаючы на гэта? Калі працягнеце, ваш кампутар " +"можа не запусціцца." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Не атрымалася запісаць GRUB у загрузкавую прыладу - паспрабаваць ізноў?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Магчыма, што вы зможаце ўсталяваць GRUB на нейкую іншую прыладу, але вам " +"варта спраўдзіць, што вашая сістэма запусціцца з гэтае прылады. Іначай, " +"абнаўленне з папярэдняе версіі GRUB будзе адмененае." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Працягваць, не ўсталёўваючы GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Вы выбралі не ўсталёўваць GRUB ні на якую прыладу. Калі Вы працягнеце далей, " +"пачатковы запускальнік, магчыма, не будзе сканфігураваны належным чынам, і " +"калі гэты кампутар запусціцца наступным разам, ён загрузіцца з таго, што " +"было раней у сектары запуску. Калі там была старая версія GRUB 2, ён можа не " +"здолець загрузіць модулі альбо не разабраць цяперашні канфігурацыйны файл." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Калі Вы ўжо карыстаецеся іншым пачатковым запускальнікам і хочаце так рабіць " +"і надалей альбо калі гэта адмысловае асяроддзе, дзе загрузчык непатрэбны, то " +"вам варта ўсё ж працягваць. Іначай вам трэба некуды ўсталяваць GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Выдаліць GRUB 2 з /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Хочаце выдаліць усе файлы GRUB 2 з /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"З-за гэтага сістэма будзе не ў стане запусціцца, пакуль не будзе ўсталяваны " +"іншы пачатковы запускальнік." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Скончыць зараз перавод на GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"На гэтай сістэме ўсё яшчэ ўсталяваныя файлы з папярэдняе версіі загрузчыка " +"GRUB, але зараз тут таксама ўсталяваныя загрузчыкі GRUB 2 на наступных " +"дысках:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Падаецца, што папярэдняя версія GRUB болей не выкарыстоўваецца, і што вы " +"павінны замест гэтага абнавіць вобразы GRUB 2 на гэтых дысках і скончыць " +"пераход на GRUB 2, выдаліўшы старыя файлы папярэдняй версіі GRUB. Калі вы не " +"абновіце гэтыя вобразы GRUB 2, то яны могуць стаць несумяшчальнымі з новымі " +"пакетамі і ваша сістэма перастане нармальна запускацца." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Звычайна, Вы павінны скончыць пераход на GRUB 2, калі толькі гэтыя " +"загрузчыкі не былі створаныя ўсталёўкай GRUB 2 на нейкай іншай аперацыйнай " +"сістэме." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Радок камандаў для ядра Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Гэты радок камандаў для ядра Linux узяты з файлу /etc/default/grub або з " +"параметру `kopt' у файле наладак (menu.lst) папярэдняй версіі GRUB. Калі " +"ласка, пераканайцеся, што каманды запісаныя правільна, або папраўце іх, калі " +"трэба." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Прадвызначаны радок камандаў для ядра Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Наступны радок будзе выкарыстаны ў якасці параметраў ядра Linux для " +"прадвызначанага пункту меню (але не для рэжыму аднаўлення)." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Радок камандаў для ядра kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Гэты радок камандаў для kFreeBSD узяты з файлу /etc/default/grub або з " +"параметру `kopt' у файле наладак (menu.lst) папярэдняй версіі GRUB. Калі " +"ласка, пераканайцеся, што каманды запісаныя правільна, або папраўце іх, калі " +"трэба." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Прадвызначаны радок камандаў для ядра kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Наступны радок будзе выкарыстаны ў якасці параметраў ядра kFreeBSD для " +"прадвызначанага пункту меню (але не для рэжыму аднаўлення)." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map быў перагенераваны" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Файл /boot/grub/device.map быў перапісаны, каб выкарыстоўваць стабільныя " +"імёны прыладаў. У бальшыні выпадкаў гэта значна знізіць неабходнасць змяняць " +"яго ў будучыні, і пункты загрузачнага меню, згенераваныя GRUB, не давядзецца " +"закрануць." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Аднак, паколькі ў вашай сістэме больш за адзін дыск, то магчыма, што ў " +"сістэме выкарыстоўваецца старая табліца прыладаў. Праверце, ці ёсць пункты " +"загрузкавага меню, што ўжываюць нумарацыю прыладаў GRUB (hdN) і абнавіце іх, " +"калі патрэбна." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Калі вы не зразумелі гэтае паведамленне, альбо калі вы не маеце ўласных " +"пунктаў загрузкавага меню, вы можаце ігнараваць гэтае паведамленне." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Калі ж Вы хочаце, каб GRUB 2 запускаўся непасрэдна з MBR, дастаткова " +#~ "запусціць з правамі карыстальніка root наступную каманду:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Не атрымалася ўсталяваць GRUB. Працягваць?" + +#~ msgid "GRUB 1.95 numbering scheme transition" +#~ msgstr "Змена схемы нумарацыі GRUB 1.95" + +#~ msgid "" +#~ "As of version 1.95, GRUB 2 has changed its numbering scheme. Partitions " +#~ "are now counted starting from 1 rather than 0. This is to make it " +#~ "consistent with device names of Linux and the other kernels used in " +#~ "Debian. For example, when using Linux as the kernel, \"(hd0,1)\" refers " +#~ "to the same partition as the /dev/sda1 device node." +#~ msgstr "" +#~ "Схема нумарацыі ў GRUB 2 змянілася ў параўнанні з версіяй 1.95 . Зараз " +#~ "падзелы дыску адлічваюцца пачынаючы з 1 замест 0. Гэта зроблена, каб " +#~ "адпавядаць назвам прыладаў у Linux і іншых ядрах, якія выкарыстоўваюцца ў " +#~ "Debian. Напрыклад, калі ў якасці ядра выкарыстоўваецца Linux, радок " +#~ "\"(hd0,1)\" датычыцца таго самага падзелу дыску, як і файл прылады /dev/" +#~ "sda1." + +#~ msgid "" +#~ "Because of this, there's a chance your system becomes unbootable if " +#~ "update-grub(8) is run before GRUB is updated, generating a grub.cfg file " +#~ "that your installed GRUB won't yet be able to parse correctly. To ensure " +#~ "your system will be able to boot, you have to:" +#~ msgstr "" +#~ "З гэтай прычыны Ваша сістэма можа стаць няздольнай да загрузкі, калі " +#~ "праграма update-grub(8), запушчаная да абнаўлення GRUB, стварыла файл " +#~ "grub.cfg, які немагчыма карэктна апрацаваць усталяваным GRUB. Каб " +#~ "пераканацца, што Ваша сістэма здольная да загрузкі, варта: " + +#~ msgid "" +#~ " - Reinstall GRUB (typically, by running grub-install).\n" +#~ " - Rerun update-grub to generate a new grub.cfg." +#~ msgstr "" +#~ " - Пераўсталяваць GRUB (звычайна, праз запуск grub-install).\n" +#~ " - Перазапусціць update-grub, каб стварыць новы grub.cfg." --- grub2-1.99.orig/debian/po/da.po +++ grub2-1.99/debian/po/da.po @@ -0,0 +1,422 @@ +# Danish translation grub2. +# Copyright (C) 2011 grub2 & nedenstående oversættere. +# This file is distributed under the same license as the grub2 package. +# Joe Hansen , 2010, 2011. +# Korrekturlæst Kenneth Nielsen, Keld Jørn Simonsen, Torben Grøn Helligsø. +# +# Chain loading -> Chain loading is a method used by computer programs +# to replace the currently executing program with a new program, +# using a common data area (a so-called core common area) to pass +# information from the current program to the new program. It occurs +# in several areas of computing. Et dansk navn? +# man kunne måske med nogen rimelighed kalde det for kædeindlæsning, men +# egentlig er det her jo et af de ord som jeg ikke mener at behøver at +# oversætte. Dem der har brug for at vide hvad det er, kender kun det +# engelsk ord og det danske vil måske endda forvirre mere end det vil +# gøre gavn. I hvert fald, hvis du vil oversætte vil jeg anbefale at +# sætte chainloade i parentes der hvor du kan. Beholdt uoversat. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-05-28 17:30+01:00\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Chainload fra menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Opgraderingsskripterne til GRUB har fundet en GRUB Legacy-opsætning i /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"For at erstatte GRUB-versionen Legacy på dit system, anbefales det at /boot/" +"grub/menu.lst justeres til at indlæse GRUB 2's opstartsaftryk fra din " +"eksisterende GRUB Legacy-opsætning. Dette trin kan udføres automatisk nu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Det anbefales, at du accepterer at chainloade GRUB 2 fra menu.lst, og " +"verificerer at din nye GRUB 2-opsætning virker for dig, før du installerer " +"den direkte til din MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Uanset din beslutning kan du senere erstatte dit gamle MBR-aftryk med GRUB 2 " +"ved at foretage den følgende kommando som administrator (root):" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUBs installationsenheder:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Pakken grub-pc bliver opgraderet. Denne menu tillader dig at vælge, hvilke " +"enheder om nogen, du vil have at grub-install automatisk skal køres for." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Automatisk kørsel af grub-install anbefales i de fleste situationer, for at " +"forhindre at det installerede GRUB-kerneaftryk kommer ud af synkronisering " +"med GRUB-moduler eller grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Hvis du er usikker på hvilket drev, der er bestemt som opstartsdrev af din " +"BIOS, er det ofte en god ide at installere GRUB på dem alle." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Bemærk: Det er også muligt at installere GRUB til partitioners " +"opstartspunkter, og nogle egnede partitioner tilbydes her. Dette tvinger dog " +"GRUB til at bruge blokeringslistemekanismen, som gør den mindre pålidelig, " +"og dette anbefales derfor ikke." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"GRUB-opstartsindlæseren blev tidligere installeret til en disk, som ikke " +"længere er tilgængelig, eller hvis unikke identifikation er blevet ændret. " +"Det er vigtigt at sikre sig, at det installerede GRUB-kerneaftryk forbliver " +"i synkronisering med GRUB-moduler og grub-cfg. Kontroller venligst en ekstra " +"gang så du er sikker på, at GRUB skrives til de relevante opstartsenheder." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Skrivning af GRUB til opstartsenhed fejlede - vil du fortsætte?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Kunne ikke installere GRUB på de følgende enheder:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Ønsker du at fortsætte alligevel? Hvis du fortsætter, kan din computer måske " +"ikke starte korrekt op." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Skrivning af GRUB til opstartsenhed fejlede - forsøg igen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Du kan måske installere GRUB til en anden enhed, selvom du skal tjekke at " +"dit system kan/vil opstarte fra denne enhed. Ellers vil opgraderingen fra " +"GRUB Legacy blive afbrudt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Fortsæt uden at installere GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Du har valgt ikke at installere GRUB på nogen enhed. Hvis du fortsætter, vil " +"opstarteren (boot loader) måske ikke være korrekt konfigureret, og når din " +"computer starter op næste gang, vil den bruge det tidligere indhold i din " +"opstartssektor (boot sector). Hvis der er en tidligere version af GRUB 2 i " +"opstartsektoren, vil den måske ikke være i stand til at indlæse moduler " +"eller håndtere den aktuelle konfigurationsfil." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Hvis du allerede kører en anden opstarter (boot loader) og ønsker at " +"fortsætte sådan, eller hvis dette er et specielt miljø, hvor du ikke har " +"brug for en opstarter, så skal du fortsætte alligevel. Ellers skal du " +"installere GRUB et eller andet sted." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Fjern GRUB 2 fra /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Ønsker du at alle GRUB 2-filer skal fjernes fra /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Dette vil medføre, at systemet ikke kan opstartes med mindre en anden " +"opstarter (boot loader) er installeret." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Afslut konvertering til GRUB 2 nu?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Dette system har stadig filer fra GRUB Legacy-opstarteren installeret, men " +"systemet har nu også GRUB 2 opstartsposter installeret på disse diske:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Det virker sandsynligt at GRUB Legacy ikke længere er i brug, og at du i " +"steden fir skal opgradere GRUB 2-billederne på disse diske og afslutte " +"konverteringen til GRUB 2 ved af fjerne ældre GRUB Legacy-filer. Hvis du " +"ikke opgraderer disse GRUB 2-billeder, så er de måske ikke kompatible med de " +"nye pakker og får dit system til at holde op med at starte korrekt op." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Du bør generelt afslutte konverteringen til GRUB 2 medmindre disse " +"opstartsposter blev oprettet af en GRUB 2-installation på et andet " +"operativsystem." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Kommandolinje til Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Den følgende kommandolinje i Linux blev udtrukket fra /etc/default/grub " +"eller parameteren `kopt' i GRUB Legacys menu.lst. Verificer venligst at den " +"er korrekt, og ændre den om nødvendigt. Kommandolinjen må være tom." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standardkommandolinje i Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Den følgende streng vil blive brugt som Linuxparametre for " +"standardmenupunktet men ikke for gendannelsestilstanden." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Kommandolinje for kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Den følgende kommandolinje i kFreeBSD blev udtrukket fra /etc/default/grub " +"eller fra parameteren `kopt' i GRUB Legacys menu.lst. Verificer venligst at " +"den er korrekt, og ændre den om nødvendigt. Kommandolinjen må være tom." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standardkommandolinje i kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Den følgende streng vil blive brugt som kFreeBSD-parametre for " +"standardmenupunktet men ikke for gendannelsestilstanden." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map er blevet gendannet" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Filen /boot/grub/device.map er blevet genskrevet til at bruge stabile " +"enhedsnavne. I de fleste tilfælde vil dette markant reducere behovet for at " +"ændre filen fremover, og opstartsmenupunkter oprettet af GRUB vil ikke blive " +"påvirket." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Da du har mere end en disk i dit sytem, er det dog muligt, at du har en " +"afhængighed af det gamle enhedskort. Tjek venligst om der er nogle " +"tilpassede opstartsmenupunkter som afhænger af GRUB's (hdn) drevnummerering, " +"og opdater dem om nødvendigt." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Hvis du ikke forstår denne besked, eller der ikke er nogen tilpassede " +"opstartsmenupunkter, kan du ignorere denne besked." --- grub2-1.99.orig/debian/po/uk.po +++ grub2-1.99/debian/po/uk.po @@ -0,0 +1,424 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Олександр Яценко, 2010. +# Yatsenko Alexandr , 2010. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-09 23:57+0200\n" +"Last-Translator: Yatsenko Alexandr \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.1\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Завантажити послідовно з menu.lst? " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "Скрипт оновлення GRUB знайшов попередню Legacy версію в /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Перед повною заміною попередньої версії GRUB у вашій системі рекомендовано " +"приєднати GRUB 2 як варіант завантаження у наявному меню GRUB Legacy. Цей " +"крок може бути виконано автоматично зараз." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Рекомендовано спробувати послідовне завантаження GRUB 2 з menu.lst щоб " +"переконатися, що ваш новий GRUB 2 функціонує, до того як встановити його " +"напряму до MBR (Головного завантажувального сектору)" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Залежно від вашого бажання, можна замінити старий завантажувач в MBR на GRUB " +"2 пізніше увівши наступну команду користувачем root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Дискові пристрої для встановлення GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Пакунок grub-pc було оновлено. Це меню дозволить вам обрати дискові пристрої " +"з яких grub-install буде автоматично запускатися." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Автоматичний запуск grub-install рекомендовано в більшості випадків, щоб " +"запобігти розсинхронізації встановленого базового ядра GRUB з його модулями " +"чи grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Якщо ви не знаєте напевне, який дисковий пристрій призначено " +"завантажувальним у вашому BIOS, можете встановити GRUB на всі наявні." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Увага: є можливим встановити GRUB до завантажувальних записів дискових " +"розділів і деякі підходящі розділи запропоновано нижче. Проте, це заставить " +"GRUB вжити механізм блокування, що зробить його менш надійним, а тому не " +"рекомендується." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Завантажувач GRUB раніше було встановлено на дисковий пристрій, що наразі " +"відсутній, або його унікальний ідентифікатор з якихось причин було змінено. " +"Важливо переконатися, що встановлене базове ядро GRUB відповідає наявним " +"модулям та grub.cfg. Будь ласка, перевірте знову чи GRUB записано на " +"відповідні завантажувальні дискові розділи." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} МБ; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} МБ; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Не вдалося записати GRUB до завантажувального пристрою. Продовжити?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Не вдалося встановити GRUB до наступних дискових пристроїв:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Ви всеодно бажаєте продовжити? Не виключено, що ваш комп'ютер не зможе " +"завантажитися нормально." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Не вдалося записати GRUB до завантажувальних пристроїв. Спробувати знову?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Ви можете встановити GRUB до іншого завантажувального пристрою, але для " +"цього потрібно переконатися, що система завантажиться з нього. Інакше, " +"оновлення з GRUB Legacy не буде виконано." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Продовжити без встановлення GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Ви обрали не встановлювати GRUB на жоден пристрій. Якщо так продовжувати, " +"завантажувач може бути не до кінця налаштований і при наступному запуску " +"комп'ютера буде використано те, що є наразі у завантажувальному секторі. " +"Якщо там виявиться попередня версія GRUB 2, вона, можливо, не зможе " +"завантажити модулі чи опрацювати поточний конфігураційний файл." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Якщо ви використовуєте інший завантажувач і хочете залишити його, або маєте " +"особливе оточення, де немає потреби в завантажувачі, можете продовжити, " +"інакше маєте встановити GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Вилучити GRUB 2 з /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Ви бажаєте вилучити всі файли GRUB 2 з /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Ця дія зробить систему не здатною завантажитися, доки інший завантажувач не " +"буде встановлено." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Завершити перехід до GRUB 2 зараз?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Ваша система містить встановлені файли з GRUB Legacy, але на наступних " +"дисках присутній завантажувач GRUB 2:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Схоже, GRUB 2 більше не використовується, тому ви можете замінити його, " +"оновивши образи GRUB 2 на цих дисках та завершити перехід до GRUB 2, " +"вилучивши старі файли від GRUB Legacy. Якщо ви не оновите ці образи, вони " +"можуть бути несумісні з новими пакунками і ваша система не зможе нормально " +"завантажуватися." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Ви маєте повністю завершити перехід на GRUB 2, якщо ці завантажувальні " +"записи було створено GRUB 2 іншої операційної системи." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Рядок параметрів ядра Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Наступний рядок параметрів ядра Linux було взято із /etc/default/grub чи з " +"параметру 'kopt' в menu.lst із GRUB Legacy. Перевірте будь ласка його " +"правильність і, за потреби, внесіть зміни." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Типовий рядок параметрів ядра Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Даний рядок буде використано як параметри ядра Linux для типового пункту " +"меню, проте не для режиму відновлення." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Рядок параметрів ядра kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Наступний рядок параметрів ядра kFreeBSD було взято із /etc/default/grub чи " +"з параметру 'kopt' в menu.lst із GRUB Legacy. Перевірте будь ласка його " +"правильність і, за потреби, внесіть зміни." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Типовий рядок параметрів ядра kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Даний рядок буде використано як параметри ядра kFreeBSD для типового пункту " +"меню, проте не для режиму відновлення." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map було створено наново" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Файл /boot/grub/device.map було переписано з використанням сталих імен " +"пристроїв. В більшості випадків це значно зменшить потребу змінювати його в " +"майбутньому і пункти меню завантажувача GRUB не будуть змінюватися." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Якщо в системі наявний більше, ніж один дисковий пристрій, можливо вона " +"налаштована на стару карту пристроїв. Будь ласка, перевірте, чи не " +"використано в користувацьких пунктах меню завантажувача нумерації дисків " +"типу hdN, та оновіть їх, якщо потрібно." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Якщо ви не розумієте цього повідомлення, або не маєте користувацьких пунктів " +"меню завантажувача, проігноруйте це повідомлення." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "В іншому випадку, якщо ви бажаєте завантажити GRUB 2 прямо до MBR, ви " +#~ "можете зробити це, задавши (з правами root) наступну команду:" --- grub2-1.99.orig/debian/po/dz.po +++ grub2-1.99/debian/po/dz.po @@ -0,0 +1,444 @@ +# Translation of grub2 debconf templates to Dzongkha +# Copyright (C) 2010 Dzongkha Localization +# This file is distributed under the same license as the PACKAGE package. +# Jurmey Rabgay , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-11-19 12:16+0530\n" +"Last-Translator: dawa pemo \n" +"Language-Team: Dzongkha \n" +"Language: dz\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2;plural=(n!=1)\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "menu.lst ནང་ལས་ ཅེན་ལོཌི་འབད་ནི་ཨིན་ན?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB དུས་མཐུན་ཡིག་ཚུགས་ཚུ་གིས་ /boot/grub ནང་ལུ་ GRUB སྔོན་བཤུལ་གཞི་སྒྲིག་ཅིག་སྐྱོན་འཛིན་འབད་ནུག" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"ཁྱོད་རའི་རིམ་ལུགས་ནང་ལུ་ GRUB གི་སྔོན་བཤུལ་ཐོན་རིམ་ཚབ་བཙུགས་འབད་ནི་གི་དོན་ལུ་ /boot/grub/menu." +"lst འདི་ ཁྱོད་རའི་ཡོད་བཞིན་པའི་སྔོན་བཤུལ་གཞི་སྒྲིག་ནང་ལས་ ཅེན་ལོཌི་ GRUB ༢ ལུ་ བདེ་སྒྲིག་འབད་དགོཔ་སྦེ་" +"འོས་སྦྱོར་འབད་ནུག གཞི་སྒྲིག་འདི་ ཡང་ཅིན་ འཕྲལ་ར་རང་བཞིན་གྱིས་ལཱ་འབད་འོང་།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"ཁྱོད་ཀྱིས་ menu.lst ནང་ལས་ ཅེན་ལོ་ཌིང་དང་ལེན་འབད་དེ་ GRUB ༢ གཞི་སྒྲིག་གསརཔ་འདི་ MBR " +"(Master Boot Record) ལུ་ཐད་ཀར་གཞི་བཙུགས་མ་འབད་བའི་ཧེ་མ་ གཡོག་བཀོལ་བཏུབ་མི་བཏུབ་བལྟ་དགོ་" +"པའི་འོས་སྦྱོར་འབད་དེ་ཡོད།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUB འདི་ འོག་གི་ཐབས་འཕྲུལ་ཚུ་ནང་གཞི་བཙུགས་འབད་མ་ཚུགས་པས:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +#, fuzzy +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} ཨེམ་བི་ ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} ཨེམ་བི་ ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB འདི་ འོག་གི་ཐབས་འཕྲུལ་ཚུ་ནང་གཞི་བཙུགས་འབད་མ་ཚུགས་པས:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"ག་དེ་འབད་རུང་ འཕྲོ་མཐུད་འབད་ནི་ཨིན་ན? འཕྲོ་མཐུད་འབད་བ་ཅིན་ ཁྱོད་ཀྱི་གློག་རིག་འདི་ལེགས་ཤོམ་སྦེ་འགོ་" +"བཙུགས་མི་ཚུགས།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "GRUB གཞི་བཙུགས་འཐུས་ཤོར་བྱུང་ཡོདཔ། ལོག་འབད་རྩོལ་བསྐྱེད་ནི་ཨིན་ན?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"ཁྱོད་ཀྱིས་ ཐབས་འཕྲུལ་གཞན་ཚུ་ནང་ GRUB གཞི་བཙུགས་འབད་ཚུགསཔ་འོང་ ཨིན་རུང་ ཁྱོད་རའི་རིམ་ལུགས་འདི་ " +"ཐབས་འཕྲུལ་དེ་ལས་བུཊི་འབད་བཏུབ་ག་ཞིབ་དཔྱད་འབད་དགོ། དེ་མེན་པ་ཅིན་ GRUB སྔོན་བཤུལ་ལས་དུས་མཐུན་" +"འབད་མི་དེ་ཆ་མེད་འགྱོ་འོང་།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "GRUB གཞི་བཙུགས་མ་འབད་བར་འཕྲོ་མཐུད་ནི་ཨིན་ན?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"ཁྱོད་ཀྱིས་ ཐབས་འཕྲུལ་གང་རུང་ནང་ GRUB གཞི་བཙུགས་མ་འབད་ནི་སྦེ་གདམ་ཁ་བརྐྱབས་ནུག འཕྲོ་མཐུད་དེ་འབད་བ་" +"ཅིན་ བུཊི་མངོན་གསལ་པ་འདི་ ལེགས་ཤོམ་སྦེ་རིམ་སྒྲིག་མི་འབད་་འོང་། དེ་ལས་ ཁྱོད་ཀྱི་གློག་རིག་འདི་ཤུལ་ལས་འགོ་" +"བཙུགསཔ་ད་ ཧེ་མ་ལས་བུཊི་ས་ཁོངས་ག་ཅི་ཡོད་རུང་ ལག་ལེན་འཐབ་འོང་། གལ་སྲིད་ བུཊི་ས་ཁོངས་ ནང་ ཧེ་མའི་" +"ཐོན་རིམ་ GRUB ༢ འདི་ཡོད་པ་ཅིན་ མོ་ཌུལ་འདི་མངོན་གསལ་འབད་མི་ཚུགས་ནི་ ཡང་ན་ ད་ལྟོའི་རིམ་སྒྲིག་ཡིག་" +"སྣོད་འདི་ལེགས་སྐྱོང་འཐབ་མི་ཚུགསཔ་འོང་།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"ཁྱོད་ཀྱིས་ ཧེ་མ་ལས་ བུཊི་མངོན་གསལ་འབད་མི་སོར་སོ་ཅིག་གཡོག་བཀོལ་འདོད་ཡོད་པ་ཅིན་ ཡང་ན་ འ་ནི་འདི་ " +"བུཊི་མངོན་གསལ་འབད་མི་ཅིག་དགོཔ་མེད་པའི་དམིགས་བསལ་གྱི་ས་ཁོངས་མེན་པ་ཅིན་ འཕྲོ་མཐུད་མ་འབད། དེ་མེན་པ་" +"ཅིན་ ག་ཏེ་འབད་རུང་ GRUB གཞི་བཙུགས་འབད་དགོ།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "ད་ལྟོ་ར་ GRUB ༢ ལུ་གཞི་བསྒྱུར་མཇུག་བསྡུ་ནི་ཨིན་ན?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"རིམ་ལུགས་འདི་ལུ་ གཞི་བཙུགས་འབད་ཡོད་པའི་ GRUB སྔོན་བཤུལ་བུཊི་མངོན་གསལ་འབད་མིའི་ནང་ལས་ཡིག་སྣོད་ཚུ་" +"འདུག ཨིན་རུང་ ད་ལྟོ་འབདཝ་ད་ ཌིཀསི་ཚུ་གུ་ GRUB ༢ བུཊི་དྲན་ཐོ་གཞི་བཙུགས་འབད་དེ་ཡོད:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"GRUB སྤྱོད་ཤུལ་འདི་ ལག་ལེན་འཐབ་སྟེ་མེདཔ་བཟུམ་ཅིག་ཡོདཔ་དང་ འདི་གི་ཚབ་ལུ་ ཌིཀསི་གུ་ཡོད་མི་ GRUB 2 " +"གཟུགས་བརྙན་ཚུ་དུས་མཐུན་བཟོ་ཞིནམ་ལས་ GRUB སྤྱོད་ཤུལ་ཡིག་སྣོད་རྙིངམ་ཚུ་ གཞི་བསྒྱུར་འབད་ནི་མཇུག་བསྡུ། ཁྱོད་" +"ཀྱིས་ GRUB 2 གཟུགས་བརྙན་ཚུ་དུས་མཐུན་མ་བཟོ་བ་ཅིན་ འདི་ཚུ་ ཐུམ་སྒྲིལ་གསརཔ་ཚུ་དང་གཅིག་ཁར་མཐུན་འགྱུར་" +"ཅན་མི་འོང་ནི་ཨིནམ་དང་ ཁྱོད་ཀྱི་རིམ་ལུགས་ཚུལ་མཐུན་སྦེ་ བུཊི་འབད་ནི་ལས་བཀག་ཆ་འབད་འོང་།" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"GRUB 2 གཞི་བཙུགས་ཀྱིས་ བཀོད་སྤྱོད་རིམ་ལུགས་ གཞན་གཅིག་གུ་ བུཊི་དྲན་ཐོ་འདི་ཚུ་ གསར་བསྐྲུན་མ་འབདཝ་" +"ལས་ GRUB 2 ལུ་ གཞི་བསྒྱུར་འབད་ཚར་དགོ།" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "ལི་ནགསི་བརྡ་བཀོད་གྲལ་ཐིག་:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"འོག་གི་ ལི་ནགསི་བརྡ་བཀོད་གྲལཐིག་འདི་ from from /etc/default/grub or the `kopt' " +"parameter in GRUB Legacy's menu.lst. ལས་ ཕྱིར་དོན་འབད་འབདཝ་ཨིན། འདི་ངེས་བདེན་ཨིནམ་" +"བདེན་སྦྱོར་འབད་ཞིནམ་ལས་ དགོས་མཁོ་ཡོད་པ་ཅིན་ལེགས་བཅོས་འབད།" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "ལི་ནགསི་སྔོན་སྒྲིག་བརྡ་བཀོད་གྲལ་ཐིག་:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"འོག་གི་ཡིག་རྒྱུན་འདི་ སྔོན་སྒྲིག་དཀར་ཆག་ཐོ་བཀོད་ཀྱི་དོན་ལུ་ ལི་ནགསི་ཚད་འཛིན་སྦེ་ལག་ལེན་འཐབ་ནི་ཨིན་ དེ་" +"འབདཝ་ད་ སླར་གསོ་ཐབས་ལམ་གྱི་དོན་ལུ་མེན།" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD བརྡ་བཀོད་གྲལ་ཐིག་:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"འོག་གི་ kFreeBSD བརྡ་བཀོད་གྲལ་ཐིག་འདི་ /etc/default/grub or the `kopt' parameter " +"in GRUB Legacy's menu.lst ལས་ ཕྱིར་འདོན་འབད་འབདཝ་ཨིན། འདི་ངེས་དེན་ཨིནམ་བདེན་སྦྱོར་འབད་" +"ཞིནམ་ལས་ དགོས་མཁོ་ཡོད་པ་ཅིན་ ལེགས་བཅོས་འབད།" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD སྔོན་སྒྲིག་བརྡ་བཀོད་གྲལ་ཐིག་:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"འོག་གི་ཡིག་རྒྱུན་ཚུ་ སྔོན་སྒྲིག་དཀར་ཆག་ཐོ་བཀོད་ཀྱི་དོན་ལུ་ kFreeBSD སྦེ་ལག་ལེན་འཐབ་འོང་ དེ་འབདཝད་ " +"སླར་གསོ་ཐབས་ལམ་གྱི་དོན་ལུ་ལག་ལེན་མི་འཐབ།" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map འདི་ ལོག་བཟོ་ཡོདཔ།" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"ཡིག་སྣོད་ /boot/grub/device.map འདི་ རྩ་བརྟན་ ཐབས་འཕྲུལ་མིང་ཚུ་ལག་ལེན་འཐབ་སྦེ་ལོག་འབྲི་ཡོདཔ་" +"ཨིན། གནད་དོན་མང་ཤོས་ཅིག་ནང་ འདི་གིས་ མ་འོངས་པའི་ནང་བསྒྱུར་བཅོས་འབད་ནི་མར་ཕབ་འབད་དགོཔ་་ཨིནམ་" +"དང་ GRUB གིས་ བཟོ་བཏོན་འབད་ཡོད་པའི་ བུཊི་དཀར་ཆག་ཐོ་བཀོད་ཚུ་ལུ་གནོད་སྐྱོན་འབྱུ་ཕཅུག་ནི་མི་འོང་།" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"ག་དེ་སྦེ་རངུ་ ཁྱོད་ཀྱི་རིམ་ལུགས་ནང་ ཌིཀསི་གཅིག་ལས་ལྷགཔ་སྦེ་ཡོདཔ་ལས་ ཁྱོད་ ཐབས་འཕྲུ་ས་ཁྲ་རྙིངམ་འདི་ལུ་" +"བརྟེན་ཚུགས། ཁྱོད་ལུ་ GRUB's (hdN) འདྲེན་འཕྲུལ་ ཨང་བཏགས་ནིའི་་སྲོལ་སྒྲིག་ བུཊི་དཀར་ཆག་ཐོ་བཀོད་ཚུ་ཡོད་" +"མེད་ཞིབ་དཔྱད་འབད་ཞིནམ་ལས་ དགོས་མཁོ་དང་བསྟུན་ཏེ་ དུས་མཐུན་བཟོ།" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"འཕྲིན་དོན་འདི་ཧ་མ་གོཝ་ ཡང་ན་ ཁྱོད་ལུ་ སྲོལ་སྒྲིག་དཀར་ཆག་ཐོ་བཀོད་གང་རངུ་མེད་པ་ཅིན་ འཕྲིན་དོན་འདི་སྣང་" +"མེད་སྦེ་བཞག།" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "ཡང་ཅིན་ ཁྱོད་ར་ལུ་ GRUB ༢ འདི་ MBR ལས་ ནམ་ཨིན་རུང་ མངོན་གསལ་འབད་འདོད་ཡོད་པ་ཅིན་ འོག་" +#~ "གི་བརྡ་བཀོད་འདི་ རྩ་བའི་ཐོག་ལས་འབད་བཏུབ:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB གཞི་བཙུགས་འཐུས་ཤོར་བྱུང་ཡོདཔ། འཕྲོ་མཐུད་འབད་ནི་ཨིན་ན?" --- grub2-1.99.orig/debian/po/ka.po +++ grub2-1.99/debian/po/ka.po @@ -0,0 +1,386 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2009-08-30 18:05+0400\n" +"Last-Translator: Aiet Kolkhi \n" +"Language-Team: Georgian \n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: georgian\n" +"X-Poedit-Country: GEORGIA\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "გსურთ Chainload ჩატვირთვა menu.lst-დან?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB-ის განახლების სკრიფტები GRUB-ის ძველ ინსტალაციას გადააწყდა /boot/grub " +"მდებარეობაში." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"იმისათვის, რომ თქვენს სისტემაზე ჩანაცვლდეს ძველი GRUB-ის ინსტალაცია, " +"სასურველია /boot/grub/menu.lst ჩასწორდეს, რომ შეასრულოს GRUB 2-ის chainload " +"ჩატვირთვა თქვენი არსებული GRUB-ის ძველი ინსტალაციიდან. ეს საფეხური " +"შესაძლებელია ახლა შესრულდეს ავტომატურად." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"სასურველია მიიღოთ menu.lst-დან GRUB 2-ის chainload მეთოდით ჩატვირთვა, ასევე " +"გადაამოწმოთ, რომ თქვენი ახალი GRUB 2-ის ინსტალაცია ფუნქციონირებდეს, სანამ " +"მას პირდაპირ Master Boot Record (MBR)-ში ჩაწერდეთ." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "ლინუქსის ბრძანების სტრიქონი:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"ლინუქსის შემდეგი ბრძანება მოძიებულ იქნა /etc/default/grub-დან ან `kopt' " +"პარამეტრიდან ძველი GRUB-ის menu.lst-ში. გადაამოწმეთ, რომ იგი სწორია, ან " +"შეცვალეთ შესაბამისად." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "ლინუქსის სტანდარტული ბრძანების სტრიქონი:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"შემდეგი სტრიქონი გამოყენებულ იქნება როგორც ლინუქსის პარამეტრები მენიუს " +"სტანდარტული შენატანისათვის, მაგრამ არა აღდგენის რეჟიმისათვის." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD ბრძანების სტრიქონი:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"შემდეგი kFreeBSD-ის ბრძანების სტრიქონი ამოღებულ იქნა /etc/default/grub-დან " +"ან `kopt' პარამეტრიდან ძველი GRUB-ის menu.lst-ში. გადაამოწმეთ, რომ იგი " +"სწორია, ან შეცვალეთ შესაბამისად." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD-ის სტანდარტული ბრძანების სტრიქონი:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"შემდეგი სტრიქონი გამოყენებულ იქნება როგორც kFreeBSD-ს პარამეტრები მენიუს " +"სტანდარტული შენატანისათვის, მაგრამ არა აღდგენის რეჟიმისათვის." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "ნებისმიერ შემთხვევაში, როდესაც მოისურვებთ GRUB 2 პირდაპირ MBR-დან " +#~ "ჩაიტვირთოს, ამისათვის გაუშვით შემდეგი ბრძანება (root პრივილეგიებით):" --- grub2-1.99.orig/debian/po/th.po +++ grub2-1.99/debian/po/th.po @@ -0,0 +1,396 @@ +# Thai translation of grub. +# Copyright (C) 2010 Software in the Public Interest, Inc. +# This file is distributed under the same license as the grub package. +# Theppitak Karoonboonyanan , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-21 17:12+0700\n" +"Last-Translator: Theppitak Karoonboonyanan \n" +"Language-Team: Thai \n" +"Language: th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "จะโหลดแบบลูกโซ่จาก menu.lst หรือไม่?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "สคริปต์ปรับรุ่นของ GRUB ตรวจพบค่าตั้งของ GRUB รุ่นเก่าใน /boot/grub" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"ในการแทนที่ GRUB รุ่นเก่าในระบบ ขอแนะนำให้ปรับ /boot/grub/menu.lst " +"ให้โหลดอิมเมจสำหรับบูตของ GRUB 2 จาก GRUB รุ่นเก่าที่มีอยู่ " +"ขั้นตอนนี้สามารถทำแบบอัตโนมัติได้ในตอนนี้" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"ขอแนะนำให้คุณตอบรับการโหลด GRUB 2 แบบลูกโซ่จาก menu.lst และทดสอบว่าค่าตั้งของ GRUB 2 " +"ใช้การได้ ก่อนที่จะเขียนลง MBR (Master Boot Record) จริง" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"ไม่ว่าคุณจะเลือกแบบไหน คุณยังสามารถแทนที่อิมเมจเก่าใน MBR ด้วย GRUB 2 เองได้ในภายหลัง " +"โดยใช้คำสั่งต่อไปนี้ในฐานะ root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "อุปกรณ์ที่จะติดตั้ง GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"กำลังจะปรับรุ่นแพกเกจ grub-pc ขึ้น เมนูนี้จะช่วยคุณเลือกอุปกรณ์ที่คุณต้องการให้เรียก grub-" +"install โดยอัตโนมัติเพื่อติดตั้ง GRUB ถ้ามีอุปกรณ์ดังกล่าว" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"โดยทั่วไปแล้ว ขอแนะนำให้เรียก grub-install โดยอัตโนมัติ เพื่อป้องกันไม่ให้อิมเมจแกนกลางของ " +"GRUB ที่ติดตั้งมีข้อมูลไม่ตรงกับมอดูล GRUB ต่างๆ หรือไม่ตรงกับ grub.cfg" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"ถ้าคุณไม่แน่ใจว่า BIOS กำหนดไดรว์ไหนไว้สำหรับบูต ก็มักเป็นความคิดที่ดีที่จะติดตั้ง GRUB " +"ลงในไดรว์ทุกไดรว์" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"หมายเหตุ: เป็นไปได้เหมือนกันที่จะติดตั้ง GRUB ลงในบูตเรคอร์ดของพาร์ทิชัน " +"และได้แสดงพาร์ทิชันที่เหมาะสมเป็นตัวเลือกไว้ในที่นี้แล้ว อย่างไรก็ดี การทำเช่นนั้นจะเป็นการบังคับให้ " +"GRUB ใช้กลไกรายชื่อบล็อค ซึ่งความถูกต้องในการทำงานอาจลดลง จึงไม่ขอแนะนำ" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"มีการติดตั้งบูตโหลดเดอร์ GRUB ก่อนหน้านี้ในดิสก์ที่ขณะนี้ไม่มีแล้ว หรือมี " +"แต่หมายเลขประจำดิสก์ได้เปลี่ยนไปด้วยสาเหตุบางอย่าง " +"จึงจำเป็นต้องทำให้แน่ใจว่าอิมเมจแกนกลางของ GRUB ที่ติดตั้งไว้นั้นยังมีข้อมูลตรงกับมอดูล GRUB ต่างๆ " +"และกับ grub.cfg อยู่ กรุณาตรวจสอบอีกครั้งให้แน่ใจว่าจะเขียนข้อมูล GRUB ลงในอุปกรณ์บูตที่เหมาะสม" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "เขียน GRUB ลงในอุปกรณ์บูตไม่สำเร็จ - ดำเนินการต่อไปหรือไม่?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "ติดตั้ง GRUB ลงในอุปกรณ์ต่อไปนี้ไม่สำเร็จ:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "คุณยังคงต้องการดำเนินการต่อไปหรือไม่? ถ้าทำต่อ เครื่องของคุณอาจบูตไม่ขึ้นได้" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "เขียน GRUB ลงในอุปกรณ์บูตไม่สำเร็จ - ลองใหม่หรือไม่?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"คุณอาจสามารถติดตั้ง GRUB ลงในอุปกรณ์อื่นได้ " +"โดยคุณควรทดสอบด้วยว่าเครื่องของคุณบูตจากอุปกรณ์นั้นขึ้นหรือไม่ ถ้าตอบปฏิเสธ " +"ก็จะยกเลิกการปรับรุ่นจาก GRUB รุ่นเก่า" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "จะดำเนินการต่อไปโดยไม่ติดตั้ง GRUB หรือไม่?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"คุณได้เลือกที่จะไม่ติดตั้ง GRUB ลงในอุปกรณ์ใดเลย ถ้าดำเนินการต่อไป " +"บูตโหลดเดอร์อาจอยู่ในสภาพที่ไม่ได้ตั้งค่าอย่างสมบูรณ์ และเมื่อเปิดเครื่องครั้งต่อไป " +"ก็จะใช้สิ่งที่อยู่ในบูตเซกเตอร์ก่อนหน้านี้ และถ้าในบูตเซกเตอร์มี GRUB 2 รุ่นเก่าอยู่ " +"ก็อาจจะไม่สามารถโหลดมอดูลหรือใช้แฟ้มค่าตั้งปัจจุบันได้" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"ถ้าคุณกำลังใช้บูตโหลดเดอร์ตัวอื่นอยู่ และต้องการใช้ต่อไป " +"หรือถ้าคุณอยู่ในสภาพแวดล้อมที่ไม่ต้องใช้บูตโหลดเดอร์ คุณก็อาจดำเนินการต่อไปได้ มิฉะนั้น " +"คุณก็ควรติดตั้ง GRUB ลงในที่ใดที่หนึ่ง" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "จะลบ GRUB 2 ออกจาก /boot/grub หรือไม่?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "คุณต้องการจะลบแฟ้มของ GRUB 2 ทั้งหมดออกจาก /boot/grub หรือไม่?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "การลบนี้จะทำให้ระบบไม่สามารถบูตได้ ยกเว้นมีบูตโหลดเดอร์ตัวอื่นติดตั้งอยู่" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "จะทำขั้นสุดท้ายของการแปลงเป็น GRUB 2 หรือไม่?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"ระบบนี้มีแฟ้มจากบูตโหลดเดอร์ GRUB รุ่นเก่าติดตั้งอยู่ แต่ตอนนี้มีบูตเรคอร์ดของ GRUB 2 " +"ติดตั้งไว้ในดิสก์ต่อไปนี้เช่นกัน:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"ดูเหมือน GRUB รุ่นเก่าจะไม่มีการใช้งานอีกต่อไป และดูเหมือนว่าคุณควรจะปรับรุ่นอิมเมจของ GRUB 2 " +"ในดิสก์เหล่านี้แทน พร้อมทั้งจบขั้นตอนสุดท้ายของการแปลงไปเป็น GRUB 2 โดยลบแฟ้มของ GRUB " +"รุ่นเก่าทิ้ง ถ้าคุณไม่ปรับรุ่นอิมเมจ GRUB 2 เหล่านี้ขึ้น อิมเมจก็อาจไม่เข้ากันกับแพกเกจรุ่นใหม่ๆ " +"และทำให้ระบบของคุณบูตไม่ขึ้นได้" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"โดยทั่วไปแล้ว คุณควรจะจบขั้นตอนสุดท้ายของการแปลงไปเป็น GRUB 2 นี้ " +"นอกเสียจากว่าบูตเรคอร์ดเหล่านี้จะถูกสร้างโดย GRUB 2 ที่ติดตั้งในระบบปฏิบัติการอื่น" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "พารามิเตอร์สำหรับบูตลินุกซ์:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"พารามิเตอร์สำหรับบูตลินุกซ์ต่อไปนี้ดึงออกมาจาก /etc/default/grub หรือพารามิเตอร์ `kopt' ใน " +"menu.lst ของ GRUB รุ่นเก่า กรุณาตรวจสอบว่าค่านี้ถูกต้องหรือไม่ และกรุณาแก้ไขถ้าจำเป็น" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "พารามิเตอร์สำหรับบูตลินุกซ์แบบปกติ:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "พารามิเตอร์ต่อไปนี้จะใช้ในเมนูสำหรับบูตลินุกซ์แบบปกติ แต่จะไม่ใช้กับโหมดกู้ระบบ" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "พารามิเตอร์สำหรับบูต kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"พารามิเตอร์สำหรับบูต kFreeBSD ต่อไปนี้ดึงออกมาจาก /etc/default/grub หรือพารามิเตอร์ " +"`kopt' ใน menu.lst ของ GRUB รุ่นเก่า กรุณาตรวจสอบว่าค่านี้ถูกต้องหรือไม่ " +"และกรุณาแก้ไขถ้าจำเป็น" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "พารามิเตอร์สำหรับบูต kFreeBSD แบบปกติ:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "พารามิเตอร์ต่อไปนี้จะใช้ในเมนูสำหรับบูต kFreeBSD แบบปกติ แต่จะไม่ใช้กับโหมดกู้ระบบ" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "สร้าง /boot/grub/device.map ใหม่เรียบร้อยแล้ว" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"เขียนแฟ้ม /boot/grub/device.map ใหม่เพื่อใช้ชื่ออุปกรณ์ที่ไม่เปลี่ยนแปลงง่ายเรียบร้อยแล้ว " +"โดยส่วนใหญ่แล้ว ชื่อแบบนี้ควรจะช่วยลดความจำเป็นในการเปลี่ยนข้อมูลอีกในอนาคตได้อย่างมาก " +"และรายการเมนูบูตต่างๆ ที่สร้างโดย GRUB ก็ไม่ควรได้รับผลกระทบ" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"อย่างไรก็ดี เนื่องจากมีดิสก์หลายดิสก์อยู่ในระบบ จึงเป็นไปได้ที่ระบบจะอาศัยผังอุปกรณ์แบบเก่า " +"กรุณาตรวจสอบว่ามีรายการเมนูบูตที่คุณกำหนดเองที่อ้างถึงไดรว์ด้วยหมายเลขในรูป (hdN) ของ GRUB " +"อยู่หรือไม่ และกรุณาปรับแก้ถ้าจำเป็น" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"ถ้าคุณไม่เข้าใจข้อความนี้ หรือถ้าไม่มีรายการเมนูบูตที่คุณกำหนดเอง คุณก็สามารถข้ามข้อความนี้ไปได้" --- grub2-1.99.orig/debian/po/sk.po +++ grub2-1.99/debian/po/sk.po @@ -0,0 +1,428 @@ +# Slovak translations for grub2 package. +# Copyright (C) 2010 THE grub2'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub2 package. +# Slavko , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub 2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-09 17:47+0100\n" +"Last-Translator: Slavko \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Zreťaziť z menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Aktualizačné skripty GRUB zistili nastavenie starej verzie GRUB (Legacy) v /" +"boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Na nahradenie starej verzie GRUB (Legacy) vo vašom systéme, je odporúčané " +"aby bol /boot/grub/menu.lst prispôsobený na zreťazenie (chainload) " +"zavádzacieho obrazu GRUB 2 z vášho existujúceho nastavenia GRUB (Legacy). " +"Tento krok môže byť automaticky vykonaný teraz." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Je odporúčané aby ste schválili zreťazenie GRUB 2 z menu.lst a overili, že " +"nastavenie vášho nového GRUB 2 je funkčné ešte predtým, ako bude zapísaný do " +"vášho MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Nech sa rozhodnete akokoľvek, neskôr môžete nahradiť obraz MBR s GRUB 2 " +"spustením nasledujúceho príkazu s právami root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Zariadenia na inštaláciu GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Balík grub-pc je aktualizovaný. Toto menu vám umožňuje vybrať si, pre ktoré " +"zariadenia bude automaticky spustený grub-install, ak nejaké vyberiete." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Vo väčšine prípadov je odporúčané spustiť automaticky grub-install, aby ste " +"predišli tomu, že máte nainštalované rôzne verzie základného obrazu GRUB a " +"modulov GRUB, či grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Ak si nie ste istý, ktoré zariadenie je nastavené na zavádzanie vo vašom " +"BIOSe, často je dobrý nápad nainštalovať GRUB na všetky." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Poznámka: je možné nainštalovať GRUB aj do zavádzacieho sektora partície a v " +"zozname sú aj niektoré príslušné partície. Avšak, tento spôsob vynúti aby " +"GRUB požil mechanizmus blocklist, ktorý ho robí menej spoľahlivým a preto " +"nie je odporúčaný." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Zavádzač GRUB bol predtým nainštalovaný na disk, ktorý sa už v systéme " +"nenachádza alebo ktorého unikátny identifikátor bol z nejakého dôvodu " +"zmenený. Je dôležité zaistiť, aby nainštalovaný základný obraz GRUB mal " +"rovnakú verziu ako moduly GRUB a grub.cfg. Prosím pre istotu znova " +"skontrolujte, že je GRUB zapisovaný do správnych zavádzacích zariadení." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Zápis GRUBu do zavádzacieho zariadenia zlyhal – pokračovať?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Inštalácia GRUB zlyhala na týchto zariadeniach:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Chcete napriek tomu pokračovať? Ak áno, môže sa stať, že váš počítač " +"nenaštartuje správne." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Zápis GRUB do zavádzacieho zariadenia zlyhal – skúsiť znova?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Možno sa vám podarí nainštalovať GRUB aj na niektoré iné zariadenie, ale " +"musíte skontrolovať, že váš systém dokáže z neho zavádzať. Inak bude " +"aktualizácia zo starého GRUB (Legacy) zrušená." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Pokračovať bez inštalácie GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Zvolili ste si neinštalovať GRUB na žiadne zariadenie, ak budete pokračovať, " +"zavádzač nemusí byť správne nastavený a pri ďalšom štarte tohoto počítača " +"bude použité to, čo bolo v zavádzacom sektore predtým. Ak je v zavádzacom " +"sektore predchádzajúca verzia GRUB 2, nemusí sa jej podariť načítať moduly " +"alebo spracovať aktuálny konfiguračný súbor." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Ak už používate iný zavádzač a chcete ho zachovať, alebo ak používate " +"špeciálne prostredie, v ktorom zavádzač nepotrebujete, potom môžete " +"pokračovať. V opačnom prípade by ste mali niekde GRUB nainštalovať." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Odstrániť GRUB 2 z /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Chcete odstrániť všetky súbory GRUB 2 z /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Týmto nebude možné váš systém naštartovať, kým nebude nainštalovaný iný " +"zavádzač." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Dokončiť konverziu na GRUB 2 teraz?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Tento systém má stále nainštalované súbory zo starého zavádzača GRUB " +"(Legacy), ale má nainštalované aj nové zavádzacie záznamy GRUB 2 na týchto " +"diskoch:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Vyzerá to, že starý GRUB (Legacy) už nie je používaný, a tak môžete na " +"týchto diskoch aktualizovať obrazy GRUB 2 a dokončiť konverziu na GRUB 2 " +"odstránením súborov starého GRUB (Legacy). Ak nezaktualizuje tieto obrazy " +"GRUB 2, potom nemusia byť kompatibilné s novými balíkmi a môžu narušiť " +"správne zavádzanie systému." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Mali by ste dokončiť konverziu na GRUB 2, ibaže boli tieto zavádzacie " +"záznamy vytvorené inštaláciou GRUB 2 iného operačného systému." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linuxový príkazový riadok:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Nasledujúci príkazový riadok Linuxu bol získaný z /etc/default/grub alebo z " +"parametra 'kopt' z menu.lst starého GRUB (Legacy). Skontrolujte prosím ich " +"správnosť a prípadne ich upravte." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Predvolený Linuxový príkazový riadok:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Nasledujúci reťazec bude použitý ako Linuxové parametre predvolenej položky " +"menu, ale nie pre záchranný režim." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Príkazový riadok kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Nasledujúci príkazový riadok kFreeBSD bol získaný z /etc/default/grub alebo " +"z parametra 'kopt' z menu.lst starého GRUB (Legacy). Skontrolujte prosím ich " +"správnosť a prípadne ich upravte." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Predvolený príkazový riadok kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Nasledujúci reťazec bude použitý ako kFreeBSD parametre predvolenej položky " +"menu, ale nie pre záchranný režim." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map bol aktualizovaný" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Súbor /boot/grub/device.map bol upravený tak, aby používal stabilné mená " +"zariadení. Väčšinou to významne zníži potrebu zmien v budúcnosti a položky " +"zavádzacieho menu, generované GRUBom, by tým nemali byť ovplyvnené." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Avšak, keďže máte vo svojom systéme viac ako jeden disk, je možné, že systém " +"závisí na starej mape zariadení. Skontrolujte prosím, že nepoužívate žiadne " +"položky menu, ktoré závisia na číslovaní zariadení GRUBu (hdN) a prípadne " +"ich aktualizuje." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Ak nerozumiete tejto správe, alebo ak nemáte žiadne vlastné položky " +"zavádzacieho menu, môžete túto správu ignorovať." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Keď sa rozhodnete zavádzať GRUB 2 priamo z MBR, môžete to urobiť pomocou " +#~ "nasledujúceho príkazu (ako root):" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Inštalácia GRUB zlyhala. Pokračovať?" --- grub2-1.99.orig/debian/po/ru.po +++ grub2-1.99/debian/po/ru.po @@ -0,0 +1,424 @@ +# translation of ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub2 package. +# +# Yuri Kozlov , 2007, 2008. +# Yuri Kozlov , 2009, 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.99-5\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-05-28 11:37+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Включить загрузку по цепочке (chainload) в menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Сценарии обновления обнаружили установку GRUB предыдущего поколения в /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Чтобы заменить в системе версию GRUB предыдущего поколения, рекомендуется " +"исправить /boot/grub/menu.lst так, чтобы образ GRUB 2 загружался из " +"используемой установки GRUB предыдущего поколения. Это может быть сделано " +"автоматически прямо сейчас." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Рекомендуется ответить утвердительно для загрузки GRUB 2 из menu.lst по " +"цепочке и проверить, что новая настройка GRUB 2 работает так как нужно, " +"перед тем как устанавливать её непосредственно в MBR (главную загрузочную " +"запись)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"В любом случае, вы можете заменить старый образ MBR на GRUB 2 позднее с " +"помощью следующей команды, выполненной с правами суперпользователя:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Устройства, на которые устанавливается GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Выполняется обновление пакета grub-pc. Это меню позволяет вам выбрать " +"устройства, для которых нужно автоматически запустить grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"В большинстве случаев рекомендуется выполнять автоматический запуск grub-" +"install, так как это синхронизирует основной образ GRUB с модулями GRUB и " +"grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Если вы не знаете какое устройство указано в BIOS для загрузки, часто лучше " +"всего установить GRUB на все устройства." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Замечание: также возможно установить GRUB в загрузочную запись раздела, и " +"здесь предлагаются соответствующие разделы. Однако, это включает в GRUB " +"использование механизма блок-листа, при котором уменьшается надёжность, и " +"поэтому это не рекомендуется." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Системный загрузчик GRUB был установлен на диск, которого больше нет в " +"системе, или по какой-то причине был изменён уникальный идентификатор. Важно " +"убедиться, что установленный основной образ GRUB синхронизирован с модулями " +"GRUB и grub.cfg. Проверьте ещё раз, что GRUB записан на правильные " +"загрузочные устройства." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} МБ; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} МБ; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Не удалось записать GRUB на загрузочное устройство -- продолжить?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Не удалось установить GRUB на следующие устройства:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Продолжить, не смотря на это? Возможно, не удастся загрузить компьютер." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Не удалось записать GRUB на загрузочное устройство -- попробовать ещё раз?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Вы можете установить GRUB на другое устройство, но проверьте, что компьютер " +"будет загружаться с этого устройства. Иначе, обновление со старой версии " +"GRUB Legacy будет отменено." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Продолжить без установки GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Вы отказались от установки GRUB. Если продолжите, то системный загрузчик " +"может быть неправильно настроен, и когда компьютер будет включён в следующий " +"раз, будет использоваться то, что было раньше в загрузочном секторе. Если " +"там была предыдущая версия GRUB 2, то она не сможет загрузить модули или " +"обработать текущий файл настройки." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Если у вас уже работает другой системный загрузчик и вы хотите оставить " +"выполнение как есть, или если есть специальное окружение, где не нужен " +"системный загрузчик, то продолжайте установку. Иначе, вам нужно установить " +"GRUB как-то иначе." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Удалить GRUB 2 из /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Удалить все файлы GRUB 2 из /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Если не установлен другой системный загрузчик это сделает систему " +"незагружаемой." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Завершить переход к GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"В системе остались файлы от старого системного загрузчика GRUB Legacy, но " +"теперь на те же диски установлена загрузочная запись GRUB 2:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Вероятно, GRUB Legacy больше не используется и вам нужно обновить образы " +"GRUB 2 на этих дисках и завершить переход к GRUB 2, удалив старые файлы GRUB " +"Legacy. Если вы не обновите данные образы GRUB 2, то они могут оказаться " +"несовместимыми с новыми пакетами и система больше не загрузится." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Обычно, вам нужно завершить переход к GRUB 2, если нет загрузочных записей, " +"созданных установкой GRUB 2 в какой-то другой операционной системе." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Командная строка Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Представленная ниже строка команд Linux была извлечена из /etc/default/grub " +"или параметра «kopt» файла menu.lst старой версии GRUB. Проверьте, что всё " +"правильно, или измените её, если требуется. Также командная строка может " +"быть пустой." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Командная строка Linux по умолчанию:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Данная строка будет использоваться в качестве параметров Linux в пункте меню " +"по умолчанию, кроме режима восстановления." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Командная строка kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Представленная ниже строка команд kFreeBSD была извлечена из /etc/default/" +"grub или параметра «kopt» файла menu.lst старой версии GRUB. Проверьте, что " +"всё правильно, или измените её, если требуется. Также командная строка может " +"быть пустой." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Командная строка kFreeBSD по умолчанию:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Данная строка будет использоваться в качестве параметров kFreeBSD в пункте " +"меню по умолчанию, кроме режима восстановления." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "Пересоздан файл /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Файл /boot/grub/device.map перезаписан, согласно имеющимся стабильным именам " +"устройств. В большинстве случаев, это должно значительно сократить " +"необходимость изменения его в будущем, и пункты загрузочного меню, " +"созданного GRUB, не должны быть затронуты." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Однако, так как у вас в системе более одного диска, возможно, что была " +"зависимость от старого именования устройств. Проверьте, что во всех " +"настроенных вручную пунктах загрузочного меню используется нумерация " +"устройств GRUB (hd№), и измените их, если нужно." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Если вы не понимаете о чём речь, или у вас нет настроенных вручную пунктов " +"загрузочного меню, то игнорируйте это сообщение." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "В любом случае, если вы хотите, чтобы GRUB 2 загружался непосредственно " +#~ "из MBR, выполните следующую команду (имея права суперпользователя):" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Установка GRUB завершилась неудачно. Продолжить?" --- grub2-1.99.orig/debian/po/eo.po +++ grub2-1.99/debian/po/eo.po @@ -0,0 +1,425 @@ +# grub2 po-debconf translation to Esperanto +# Copyright (C) 2010 Software in the Public Interest +# This file is distributed under the same license as the grub2 package. +# Felipe Castro , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.98+20100710-2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-09 20:24-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Ĉu ĉen-ŝargi (chainload) el menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Aktualigaj skriptoj de GRUB detektis agordon de la malaktuala GRUB en /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Por anstataŭigi la malaktualan version de GRUB en via sistemo, oni " +"rekomendas ke /boot/grub/menu.lst estu akomodita por ŝargi je ekŝarga bildo " +"GRUB 2 el via ekzistanta agordo de malaktuala GRUB. Tiu ĉi paŝo povas esti " +"aŭtomate farata nun." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Oni rekomendas ke vi akceptu ĉen-ŝargi je GRUB 2 el menu.lst, kaj kontrolu " +"ĉu via nova agordo de GRUB 2 bone funkcias antaŭ ol ĝi estu skribata al la " +"MBR (Mastra Ekŝarga Registro)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Kia ajn estu via decido, per GRUB 2 vi povos poste anstataŭigi la malnovan " +"bildon MBR, uzante la jenan komandon kiel root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Aparatoj instalataj de GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"La pako grub-pc estas ĝisdatigata. Tiu ĉi menuo ebligas al vi elekti iujn " +"ajn aparatojn por esti aŭtomate instalotaj de grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Lanĉi grub-install aŭtomate estas rekomendinda plej kutime, por eviti ke la " +"instalita kerna bildo GRUB malsinkroniĝu kun la moduloj GRUB aŭ grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Se vi ne certas pri kiu pelilo estas difinita kiel ekŝarga por via BIOS, " +"ordinare estas bona ideo instali GRUB por ĉiuj el ili." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Rimarko: eblas instali GRUB ankaŭ al diskpartaj ekŝargaj registroj, kaj " +"kelkaj taŭgaj diskpartoj estas disponigataj ĉi tie. Tamen, tio devigas ke " +"GRUB uzu meĥanismon bloklisto, kio igas ĝin malpli fidinda, do tio ne estas " +"rekomendinda afero." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"La ekŝargilo GRUB estis antaŭe instalita al disko kiu ne plu ekzistas, " +"aŭ kies unika identigilo ŝanĝis ial ajn. Estas grave certigi ke la instalita " +"kerna bildo GRUB teniĝu sinkrona kun la moduloj GRUB kaj grub.cfg. Bonvolu " +"rekontroli por certigi ke GRUB estas skribota al taŭgaj ekŝargaj aparatoj." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Skribado de GRUB al ekŝarga aparato malsukcesis - ĉu daŭrigi?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB malsukcesis instali al la jenaj aparatoj:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Ĉu vi volas daŭrigi iel ajn? Se jes, eble via komputilo ne ekŝargiĝu ĝuste." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Skribado de GRUB al ekŝarga aparato malsukcesis - ĉu reprovi?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Vi povas instali GRUB en iu alia aparato, kvankam vi devos kontroli ĉu via " +"sistemo ekŝargiĝos el tiu aparato. Alimaniere, la aktualigo el malnova GRUB " +"estos nuligata." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Ĉu daŭrigi sen instali GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Vi elektis ne instali GRUB al iu ajn aparato. Se vi daŭrigas, la ekŝargilo " +"eble ne estos ĝuste agordita, kaj kiam tiu ĉi komputilo sekve ekŝaltos, ĝi " +"uzos kion ajn estu antaŭe en la ekŝarga sektoro. Se ekzistas pli frua versio " +"de GRUB 2 en la ekŝarga sektoro, ĝi eble ne povos ŝargi je moduloj aŭ trakti " +"la nunan agordo-dosieron." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Se vi jam uzas malsaman ekŝargilon kaj vi volas daŭrigi kun tio, aŭ se tio " +"ĉi estas speciala medio kie vi ne bezonas ekŝargilon, tiam vi devos daŭrigi " +"tiel mem. Alie, vi devos instali GRUB ien ajn." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Ĉu forviŝi GRUB 2 el /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Ĉu vi volas forviŝi ĉiujn dosierojn GRUB 2 el /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Tio ĉi igos la sistemon ne ekŝargebla, krom se alia ekŝargilo estu instalita." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Ĉu finigi konverton al GRUB 2 nun?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Tiu ĉi sistemo ankoraŭ havas dosierojn el la malaktuala ekŝargilo GRUB " +"instalita, sed ĝi nun ankaŭ havas ekŝargajn registrojn de GRUB 2 instalitaj " +"en tiuj ĉi diskoj: " + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Ŝajnas ke la malaktuala GRUB ne plu estas uzata, kaj ke vi devos anstataŭe " +"aktualigi al bildoj GRUB 2 en tiuj ĉi diskoj, kaj finigi la konverton al " +"GRUB 2 forigante malnovajn malaktualajn dosierojn GRUB. Se vi ne aktualigos " +"tiujn ĉi bildojn GRUB 2, tiel ili povos esti malkongruaj al la novaj pakoj " +"igante ke via sistemo ĉesu ekŝargi senprobleme." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Vi devos ordinare finigi la konverton al GRUB 2, malkondiĉe ke tiuj ĉi " +"ekŝarg-registroj estu kreitaj de sistemo kun GRUB 2 instalita, en alia " +"operaciuma sistemo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linuksa ordono-linio:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La jena linuksa ordono-linio estas elprenita el /etc/default/grub aŭ el la " +"parametro 'kopt' en la menu.lst de malaktuala GRUB. Bonvolu kontroli ĉu tio " +"estas korekte, kaj modifu ĝin laŭ neceso." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linuksa implicita ordon-linio:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"La jena ĉeno estos uzata kiel linuksajn parametrojn por la ordinara menuero " +"sed ne por la restariga reĝimo." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Ordon-linio de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La jena linuksa ordono-linio de kFreeBSD estas elprenita el /etc/default/" +"grub aŭ el la parametro 'kopt' en la menu.lst de malaktuala GRUB. Bonvolu " +"kontroli ĉu tio estas korekte, kaj modifu ĝin laŭ neceso." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Implicita ordon-linio de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"La jena ĉeno estos uzata kiel parametrojn de kFreeBSD por la ordinara " +"menuero sed ne por la restariga reĝimo." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map estas regenerita" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"La dosiero /boot/grub/device.map estas reskribita por uzi stabilajn aparat-" +"nomojn. En la plejparto de la situacioj, tio devus multe malpliigi la " +"bezonon ŝanĝi ĝin estonte, kaj ekŝarg-menueroj kreitaj de GRUB ne devos esti " +"influataj." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Tamen, ĉar vi havas pli ol unu disko en via sistemo, eblas ke la sistemo " +"dependas de malnova aparat-mapo. Bonvolu kontroli ĉu ekzistas iun " +"personigitan ekŝarg-menueron, kiu surbaziĝas en disk-numerigo de GRUB (hdN), " +"kaj ĝisdatigu ĝin se necese." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Se vi ne komprenas tiun ĉi mesaĝon, aŭ se vi havas neniun personigitan " +"ekŝargan menueron, vi povas preteratenti ĉi tiun mesaĝon." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Ĉiukondiĉe, kiam vi volos ke GRUB 2 estu rekte ŝargata el MBR, vi povos " +#~ "fari tion per lanĉado (kie root) de la jena ordono:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "La instalado de GRUB malsukcesis. Ĉu daŭrigi?" --- grub2-1.99.orig/debian/po/kk.po +++ grub2-1.99/debian/po/kk.po @@ -0,0 +1,412 @@ +# Kazakh translation for grub2. +# Copyright (C) 2010 The Grub team +# This file is distributed under the same license as the PACKAGE package. +# Baurzhan Muftakhidinov , 2010-2011. +# +msgid "" +msgstr "" +"Project-Id-Version: master\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-06-18 23:22+0600\n" +"Last-Translator: Baurzhan Muftakhidinov \n" +"Language-Team: Kazakh \n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Kazakh\n" +"X-Poedit-Country: KAZAKHSTAN\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "menu.lst ішінен тізбектей жүктелу керек пе?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "GRUB жаңарту скриптері /boot/grub ішінен орнатылған GRUB Legacy тапты." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"GRUB Legacy нұсқасын алмастыру үшін, сіздің бар болып тұрған GRUB Legacy " +"орнатудың /boot/grub/menu.lst файлынан GRUB 2 жүктеушісін тізбектей жүктеуге " +"баптауға ұсынылады. Бұл қадам қазір автоматты түрде жасалуы мүмкін." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"GRUB 2-ні menu.lst ішінен тізбектей жүктеуді қабылдау, және жаңа GRUB 2 " +"орнатуы оны MBR (Басты жүктелу жазбасына) ішіне жазбас бұрын жұмыс " +"істейтінін тексеру ұсынылады." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Шешіміңіз қандай болса да, кейін сіз әрқашан да ескі MBR бейнесін жаңа GRUB " +"2-мен ауыстыра аласыз, ол үшін root атынан келесі команда орындауыңыз керек:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB орнатылатын құрылғылар:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"grub-pc дестесі жаңартылуда. Бұл мәзір сізге қай құрылғылар үшін grub-" +"install автожөнелту қалайтыныңызды көрсетуге мүмкін қылады, егер ондай " +"құрылғылар бар болса." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"grub-install автожөнелту көп жағдайда ұсынылады, орнатылған GRUB өзегі және " +"модульдер не grub.cfg-мен үйлесімді болуы үшін." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Егер сіз BIOS-та қай диск жүктелетін етіп орнатылғанын нақты білмесеңіз, " +"GRUB-ты дисктердің барлығына орнатуға да болады." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Ескерту: GRUB-ты бөлімнің жүктелу жазбасына да орнатуға болады, сәйкес " +"келетін бөлімдер тізімі төменде көрсетілген. Алайда, бұл әрекет GRUB-ты " +"блоктізімді қолдануға мәжбүрлетеді, яғни оның икемділігін төмендетеді, сол " +"үшін ұсынылмайды." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"GRUB жүктеушісі қазір жоқ болып тұрған, немесе қандай да бір себептермен " +"уникалды идентификаторы өзгерген дискіге бұрын орнатулы болған. Орнатылған " +"GRUB өзегі және модульдер мен grub.cfg-мен үйлесімді болуын тексеру маңызды. " +"GRUB дұрыс жүктелу құрылғыларына жазылғанын тағы да бір рет тексеріңіз." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} МБ; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} МБ; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "GRUB-ты жүктелу құрылғысына жазу сәтсіз - жалғастыру керек пе?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB келесі құрылғыларға орнату сәтсіз аяқталды:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Бәрібір жалғастыруды қалайсыз ба? Нәтижесінде компьютеріңіз дұрыс жүктелмеуі " +"мүмкін." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "GRUB-ты жүктелу құрылғысына жазу сәтсіз - қайталау керек пе?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Сіз оған қоса GRUB-ты басқа да құрылғыларға орната аласыз, бірақ жүйеңіз ол " +"кезде жүктеле алатынына көз жеткізіңіз. Болмаса, GRUB Legacy нұсқасынан " +"жаңартудан бас тартылады." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "GRUB орнатпай-ақ жалғастыру керек пе?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Сіз GRUB-ты ешбір құрылғыға орнатпауды қалағансыз. Жалғастырсаңыз, жүктеуші " +"дұрыс бапталмауы мүмкін, және компьютеріңіз келесі рет жүктелген кезде, " +"жүктелу жазбасында оған дейін болған нәрсені қолданады. Егер ол жүктелу " +"жазбасында GRUB 2 ертерек шыққан нұсқасы болса, ол модульдерді жүктей алмай, " +"не ағымдағы баптаулар файлын талдай алмайтын болуы әдбен мүмкін." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Егер сіз басқа жүктеушіні қолданып, оны жалғастыруды қаласаңыз, немесе бұл - " +"жүктеушіні талап етпейтін ерекше жүйе болса, онда жалғастырыңыз. Болмаса, " +"қайда болса да, GRUB орнатуыңыз керек." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "GRUB 2 /boot/grub ішінен өшіру керек пе?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "GRUB 2 барлық файлдарын /boot/grub ішінен өшіруді шынымен қалайсыз ба?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Бұл әрекет басқа жүктеуші орнатылмаған болса, жүйеңізді жүктелмейтін қылады." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "GRUB 2-ге айналдыруды қазір аяқтау керек пе?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Жүйеде әлі де GRUB Legacy жүктеушісі орнатылған, оған қоса GRUB 2 жүктелу " +"жазбалары келесі дискілерге орнатылған:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"GRUB Legacy енді қолданылмайтын сияқты, орнына GRUB 2 бейнелерін ол " +"дискілерде жаңартып, ескі GRUB Legacy файлдарын өшіріңіз. GRUB 2 бейнелерін " +"жаңартпасаңыз, олар жаңа дестелермен үйлеспей, жүйеңіз дұрыс жүктелмеуі " +"мүмкін." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"GRUB 2 дейін жаңартуды аяқтауыңыз керек, егер осы жүктелу жазбалары басқа " +"жүйеде орнатылған GRUB 2 көмегімен жасалмаған болса." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux командалық жолы:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Келесі Linux командасы /etc/default/grub ішінен не GRUB Legacy menu.lst " +"ішіндегі `kopt' параметрінен алынды. Оның дұрыстығын тексеріп, керек болса, " +"өзгертіңіз. Бұл командалық жол бос болса да болады." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux бастапқы командалық жолы:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Келесі жол Linux параметрлері бастапқы мәзірі үшін, бірақ қалпына келтіру " +"үшін емес, қолданылатын болады." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD командалық жолы:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Келесі kFreeBSD командасы /etc/default/grub ішінен не GRUB Legacy menu.lst " +"ішіндегі `kopt' параметрінен алынды. Оның дұрыстығын тексеріп, керек болса, " +"өзгертіңіз. Бұл командалық жол бос болса да болады." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD бастапқы командалық жолы:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Келесі жол kFreeBSD параметрлері бастапқы мәзірі үшін, бірақ қалпына келтіру " +"үшін емес, қолданылатын болады." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map қайта құрылды" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"/boot/grub/device.map файлы құрылғылардың тұрақты аттарын қолданатындай " +"түзетілген. Көп жағдайда, болашақта өзгерту керек емес болады, және GRUB " +"жасаған мәзір элементтері өзгеріссіз-ақ қалады." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Алайда, жүйеңізде бірден көп диск болған соң, ескі device map-қа тәуелді " +"болуыңыз мүмкін. GRUB-ң (hdN) түріндегі дисктер нөмірленуі мәзірде жоқ " +"болуына көз жеткізіңіз, керек болса, оларды жаңартыңыз." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Егер сіз осы хабарламаны түсінбесеңіз, немесе сізде таңдауыңызша жүктелу " +"мәзірінің элементтері жоқ болса, бұл хабарламаны елемеңіз." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Қалай болса да, GRUB 2 тура MBR ішінен жүктелуді қалайтын болсаңыз, сол " +#~ "кезде root атынан келесі команданы орындаңыз:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB орнату сәтсіз. Жалғастыру керек пе?" --- grub2-1.99.orig/debian/po/zh_CN.po +++ grub2-1.99/debian/po/zh_CN.po @@ -0,0 +1,388 @@ +# Chinese translations for grub2 po-debconf +# PACKAGE 软件包的简体中文翻译. +# Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# YunQiang Su , 2010, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2-po-debconf master\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-05-28 17:29+0800\n" +"Last-Translator: YunQiang Su \n" +"Language-Team: Chinese (simplified) \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "从 menu.lst 进行 chainload?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "GRUB 升级脚本在 /boot/grub 探测到了已安装的 GRUB Legacy。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"为了取代您系统上的 GRUB Legacy,推荐调整 /boot/grub/menu.lst 为从现有的 GRUB " +"Legacy 设置中加载 GRUB 2 引导镜像。现在可以自动执行这个操作。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"推荐您接受从 menu.lst 中 chainload GRUB 2,并且在将 GRUB 2 直接安装到 MBR (主" +"引导记录,Master Boot Record) 之前确定新的 GRUB 2 设置可以工作。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"无论现在做什么样的决定,您以后都可以使用 root 身份来运行如下命令来使用 GRUB " +"2 来代替旧的 MBR 映像:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB 安装设备:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"grub-pc 包已经升级。此菜单允许您选择在哪个设备上自动运行 grub-install,如果有" +"的话。" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"在大多数情况下推荐自动运行 grub-install,以避免安装的 GRUB 核心映像与 GRUB 模" +"块或 grub.cfg 不同步。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"如果不确定 BIOS 使用哪个驱动器作为主引导,将 GRUB 安装到所有这些驱动器是一个" +"不错的主意。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"注意:也可以将 GRUB 安装到分区的引导记录,这里提供了一些适当的分区。然而,这" +"强制 GRUB 使用黑名单机制,会造成可靠性降低,因此不推荐使用。" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"GRUB 引导器先前安装到了一个消失了的磁盘上,或者它的唯一标识符由于某些原因变化" +"了。确保安装的 GRUB 核心映像和 GRUB 模块及 grub.cfg 的同步非常重要。请再次检" +"查以确保 GRUB 安装到了适当的引导设备。" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "将 GRUB 写入引导设备失败 - 要继续吗?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB 安装到如下设备时失败。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "仍然想要继续?如果这样,您的计算机可能不能正常启动。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "将 GRUB 写入引导设备失败 - 要重新尝试吗?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"您可能可以安装 GRUB 到其它设备,尽管您需要明确,您的系统将从那个设备启动。否" +"则,从 GRUB Legacy 的升级将被取消。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "不安装 GRUB 并且继续?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"您没有选择向任何设备安装 GRUB。如果继续,引导器可能不能正确配置,当您的计算机" +"下次启动时,它将使用引导扇区中先前的内容。如果引导扇区中有早期版本的 GRUB 2," +"其可能不能加载模块或者处理当前配置文件。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"如果您已经使用了另外一个引导器并且想继续这样做,或者如果这是一个特殊的不需要" +"引导器的环境,这样您可以仍然继续。否则,您应该在某处安装 GRUB。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "从 /boot/grub 移除 GRUB 2 ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "确定想从 /boot/grub 移除全部 GRUB 2 文件吗?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "这会使系统不能引导,除非另外安装其它引导器。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "现在完成到 GRUB 2 的转换?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"此系统仍然有 GRUB Legacy 引导器安装的文件,但是现在也在磁盘上安装了 GRUB 2 引" +"导记录:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"好像 GRUB Legacy 已经不再使用了,并且您应该在这些磁盘上转而升级到 GRUB 2 映" +"像,并且通过删除旧的 GRUB Legacy 文件来完成到 GRUB 2 的转换。如果不升级这些 " +"GRUB 2 映像,他们将可能不能与新包兼容而造成您的系统不能正常引导。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"您通常应该完成到 GRUB 2 的转换,除非这些引导记录是由安装到其它操作系统上的 " +"GRUB 2 创建的。" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux 命令行:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"已从 /etc/default/grub 或 GRUB Legacy 的 menu.lst 中的 `kopt' 参数中提取如下 " +"Linux 命令行。请检查是否正确的,并且根据需要进行修改。此命令行可以为空。" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux 默认命令行:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "如下字符串将被用于默认菜单项的 Linux 参数,但是不会用于恢复模式。" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD 参数:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"已从 /etc/default/grub 或者 GRUB Legacy 的 menu.lst 中的 `kopt' 参数中提取如" +"下 kFreeBSD 命令行参数。请请检查是否正确,并且根据需要进行修改。此命令行可以" +"为空。" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD 默认命令行:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "如下字符串将用于默认菜单项的 kFreeBSD 参数,但不会用于恢复模式。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map 已经生成" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"文件 /boot/grub/device.map 已经重写以使用稳定的设备名。多数情况下,这应该显著" +"地减少以后修改它的需要,并且 GRUB 产生的引导菜单项不会受影响。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"然而,因为您的系统上有多个磁盘,系统可能依赖旧的设备映射。请检查您是否有任何" +"自定义的依赖 GRUB 的 (hdN) 驱动器号的引导菜单项,如果需要请更新它们。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "如果您不理解此消息,或者没有任何自定义的引导菜单项,您可以忽略此消息。" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "无论何种情况,当您想直接从 MBR 加载 GRUB 2 时,您可以通过以 root 身份执行" +#~ "如下命令来实现:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB 安装失败。仍然继续?" --- grub2-1.99.orig/debian/po/ro.po +++ grub2-1.99/debian/po/ro.po @@ -0,0 +1,470 @@ +# translation of ro.po to Romanian +# Romanian translations for grub package +# Traducerea în limba română pentru pachetul grub. +# Copyright (C) 2007 THE grub'S COPYRIGHT HOLDER +# This file is distributed under the same license as the grub package. +# +# Eddy Petrișor , 2007,2008. +# ioan-eugen STAN , 2010. +# Lucian Adrian Grijincu , 2010. +msgid "" +msgstr "" +"Project-Id-Version: ro\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-12 20:08+0200\n" +"Last-Translator: Andrei POPESCU \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: 2\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Încărcare înlănțuită din menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Scripturile de înnoire ale lui GRUB au detectat în /boot/grub o configurație " +"pentru vechiul GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Pentru a înlocui vechea versiune a lui GRUB, se recomandă modificarea " +"fișierului /boot/grub/menu.lst, astfel încât să încarce o imagine GRUB 2 din " +"configurația existentă. Acest pas poate fi făcut chiar acum în mod automat." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Este recomandat să acceptați înlănțuirea lui GRUB 2 din menu.lst și să " +"verificați că noua configurație pentru GRUB 2 funcționează, înainte de " +"instalarea în înregistrarea principală de boot (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Indiferent ce decideți, puteți înlocui ulterior imaginea MBR veche cu GRUB 2 " +"executând următoarea comandă cu privilegii root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Dispozitive pentru a instala GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Pachetul grub-pc este în curs de înnoire. Acest meniu vă permite să alegeți " +"pentru ce dispozitive doriți să ruleze automat grub-install, dacă este cazul." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Rularea automată a utilitarului grub-install este recomandată în majoritatea " +"situațiilor, pentru ca imaginea GRUB instalată fie sincronizată cu modulele " +"GRUB sau grub.cfg." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Dacă nu știți sigur care unitate este desemnată ca unitatea de pornire de " +"către BIOS este o idee bună să instalați GRUB pe toate unitățile." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Notă: este posibil să instalați GRUB în înregistrarea boot a unei partiții, " +"iar unele partiții adecvate sunt prezentate aici. Totuși, aceasta va forța " +"GRUB să utilizeze mecanismul blocklist, care este mai puțin fiabil. În " +"consecință această metodă nu este recomandată." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Încărcătorul de sistem GRUB a fost instalat pe un disc care nu mai este " +"prezent, sau al cărui identificator unic a fost modificat dintr-un motiv " +"oarecare. Este important să vă asigurați că imaginea GRUB rămâne " +"sincronizată cu modulele GRUB și grub.cfg. Vă rugăm verificați din nou, " +"pentru a vă asigura că GRUB este scris pe dispozitivul boot corect." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Scrierea GRUB pe dispozitivul boot a eșuat. Se continuă?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Instalarea GRUB pe următoarele dispozitive a eșuat:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Doriți să continuați oricum? Dacă da, este posibil ca sistemul să nu " +"pornească corespunzător." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Scrierea GRUB pe dispozitivul de pornire a eșuat. Se încearcă din nou?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Puteți instala GRUB pe alt dispozitiv, însă ar trebui să verificați dacă " +"sistemul va porni de pe acel dispozitiv. Altfel, înnoirea de la GRUB Legacy " +"va fi anulată." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Continuați fără să instalați GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Ați ales să nu instalați GRUB pe niciun dispozitiv. Dacă veți continua, este " +"posibil ca încărcătorul de sistem să nu fie configurat corespunzător, iar la " +"pornirea calculatorului acesta va folosi ce se afla deja în sectorul de " +"pornire. Dacă există o versiune mai veche de GRUB 2 în sectorul de pornire " +"este posibil ca aceasta să nu poată încărca modulele sau să proceseze " +"fișierul de configurare curent." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Dacă folosiți deja un alt încărcător de sistem și doriți să continuați, sau " +"dacă acesta este un mediu special în care nu aveți nevoie de încărcător de " +"sistem, atunci ar trebui să continuați. Altfel, ar trebui să instalați GRUB " +"undeva." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Se îndepărtează GRUB 2 din /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Doriți ca toate fișierele GRUB 2 să fie îndepărtate din /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Aceasta va împiedica pornirea sistemului, în afara cazului în care este " +"instalat un alt încărcător de sistem." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Terminați acum conversia la GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Acest sistem mai are instalate fișiere din GRUB Legacy, dar acum are " +"instalat și GRUB 2 pe aceste discuri:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Este foarte probabil ca GRUB Legacy să nu mai fie folosit și ar trebui să " +"actualizați imaginile GRUB 2 pe aceste discuri și să definitivați trecerea " +"la GRUB 2 îndepărtând fișierele GRUB Legacy vechi. Dacă nu actualizați " +"aceste imagini GRUB 2, ele ar putea fi incompatibile cu noile pachete și ar " +"putea împiedica sistemul să pornească corespunzător." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"În general este bine să încheiați conversia la GRUB 2, în afara cazului în " +"care acele fișiere au fost create de o instalare GRUB 2 a altui sistem de " +"operare." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linia de comandă Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Această linie de comandă Linux a fost extrasă din /etc/default/grub sau " +"parametrul „kopt” din fișierul menu.lst al vechiului GRUB. Verificați " +"corectitudinea acesteia și modificați-o, dacă este nevoie." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linia de comandă implicită Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Următorul șir va fi folosit ca parametru pentru Linux pentru poziția " +"implicită din meniu, dar nu și pentru cea de recuperare." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Linia de comandă kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Această linie de comandă kFreeBSD a fost extrasă din /etc/default/grub sau " +"parametrul „kopt” din fișierul menu.lst al vechiului GRUB. Verificați " +"corectitudinea acesteia și modificați-o, dacă este nevoie." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Linia de comandă implicită kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Următorul șir va fi folosit ca parametru pentru kFreeBSD pentru poziția " +"implicită din meniu, dar nu și pentru cea de recuperare." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map a fost regenerat" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Fișierul /boot/grub/device.map a fost rescris să folosească nume stabile de " +"dispozitive. În majoritatea cazurilor, acest lucru va reduce semnificativ " +"nevoia de a-l modifica ulterior și intrările în meniu generate de grub nu ar " +"trebui să fie afectate. " + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Totuși, deoarece există mai mult de un disc în sistem, este posibil ca " +"sistemul să depindă de vechea hartă de dispozitive. Verificați dacă aveți " +"intrări personalizate în meniu care depind de numerotarea GRUB (hdN) și " +"actualizați-le dacă este cazul." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Dacă nu înțelegeți acest mesaj, sau nu există poziții personalizate în " +"meniu, îl puteți ignora." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "În orice caz, atunci când veți dori ca GRUB 2 sa fie încărcat direct din " +#~ "MBR, puteți rula (ca root) comanda următoare:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Instalarea GRUB a eșuat. Continuați?" + +#~ msgid "GRUB 1.95 numbering scheme transition" +#~ msgstr "Tranziția la schema de numerotare pentru GRUB 1.95" + +#~ msgid "" +#~ "As of version 1.95, GRUB 2 has changed its numbering scheme. Partitions " +#~ "are now counted starting from 1 rather than 0. This is to make it " +#~ "consistent with device names of Linux and the other kernels used in " +#~ "Debian. For example, when using Linux as the kernel, \"(hd0,1)\" refers " +#~ "to the same partition as the /dev/sda1 device node." +#~ msgstr "" +#~ "Începând cu versiunea 1.95, GRUB 2 și-a schimbat schema de numerotare. " +#~ "Partițiile sunt acum numerotate începând de la 1 (în loc de 0). Acest " +#~ "lucru este consecvent cu numele de dispozitive ale Linux-ului și a altor " +#~ "nuclee folosite în Debian. De exemplu, când se folosește nucleul Linux, " +#~ "„(hd0,1)” se referă la aceiași partiție ca și nodul de dispozitiv /dev/" +#~ "sda1." + +#~ msgid "" +#~ "Because of this, there's a chance your system becomes unbootable if " +#~ "update-grub(8) is run before GRUB is updated, generating a grub.cfg file " +#~ "that your installed GRUB won't yet be able to parse correctly. To ensure " +#~ "your system will be able to boot, you have to:" +#~ msgstr "" +#~ "De aceea, există riscul ca sistemul să nu mai pornească dacă update-grub" +#~ "(8) este rulat înainte ca GRUB să fie actualizat, generând astfel un " +#~ "fișier grub.cfg pe care GRUB-ul instalat nu-l va putea încă analiza " +#~ "corect. Pentru a vă asigura că sistemul va putea porni, va trebui să:" + +#~ msgid "" +#~ " - Reinstall GRUB (typically, by running grub-install).\n" +#~ " - Rerun update-grub to generate a new grub.cfg." +#~ msgstr "" +#~ " - Reinstalați GRUB (în mod normal, prin rularea lui grub-install).\n" +#~ " - Rulați din nou update-grub pentru a genera un nou grub.cfg." --- grub2-1.99.orig/debian/po/ast.po +++ grub2-1.99/debian/po/ast.po @@ -0,0 +1,448 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-08-09 09:23+0100\n" +"Last-Translator: maacub \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "¿Cadena de carga dende menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"El scripts d'actualización GRUB detectó una configuración GRUB Legacy en /" +"boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Col fin de camudar la versión Legacy de GRUB nel to sistema, ye recomendable " +"que /boot/grub/menu.lst seya axustáu a la cadena de carga GRUB 2 dende la to " +"configuración Legacy GRUB existente. Esti pasu puede ser fechu " +"automáticamente agora." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Ye recomendable que aceptes la cadena de carga GRUB 2 dende'l menu.lst, y " +"compruebes que la to nueva configuración de GRUB 2 ye funcional pa ti, " +"anantes de que lo instales directamente nel to MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Falló GRUB al instalar nos siguientes preseos:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Falló GRUB al instalar nos siguientes preseos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"¿Quies siguir igualmente? Si quies, el to ordenador podría nun arrancar bien." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Falló la instalación de GRUB. ¿Intentalo otra vegada?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Puedes instalar GRUB a otru preséu, aunque deberíes comprobar que'l to " +"sistema arrancará dende esi preséu. De lo contrario, l'anovamientu de GRUB " +"encaboxarase." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "¿Siguir ensin instalar GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Escoyistes nun instalar GRUB en dengún preséu. De siguir, el xestor " +"d'arranque podría nun tar configuráu dafechu, y nel siguiente aniciu del " +"ordenador usarás lo que teníes previamente nel sector d'arranque. Si hai un " +"versión anterior de GRUB 2 nel sector d'arranque, podría ser capaz de cargar " +"módulos o remanar el ficheru de configuración actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Si ya tas executando un xestor d'arranque distintu y quies siguir " +"faciéndolo, o si ye un ambiente especial onde nun necesites un xestor " +"d'arranque, entós puedes siguir. D'otra miente, deberíes instalar GRUB en " +"dalgún sitiu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "¿Finar agora conversión a GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Esti sistema tovía tien ficheros del xestor d'arranque GRUB instaláu, pero " +"agora tamién registros d'arranque GRUB 2 instaláu n'estos discos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Parez probable que GRUB ya nun ta n'usu, y que deberíes anovar les imáxenes " +"de GRUB 2 d'estos discos y finar la conversión a GRUB 2, desaniciando vieyos " +"ficheros heredaos de GRUB. Si nun anoves estes imáxenes de GRUB, entós " +"pueden ser incompatibles colos nuevos paquetes y facer que'l to sistema nun " +"arranque correutamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"En xeneral, deberíes finar la conversión a GRUB 2 a menos qu'estos rexistros " +"d'arranque fueren creaos por una instalación de GRUB 2 en dalgún otru " +"sistema operativu." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linia comandos Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La siguiente llinia de comandu Linux fue estrayía dende /etc/default/grub o " +"del parámetru `kopt' nel menú Legacy GRUB menu.lst. Por favor, comprueba que " +"ye correuto, y modificalo si ye necesario." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linia comandos por defeutu de Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"La siguiente cadena será usada como parámetros Linux pa la entrada del menú " +"por defeutu, pero non pal mou recuperación." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Linia comandos kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La siguiente llinia de comandu kFreeBSD fue estrayía dende /etc/default/grub " +"o del parámetru `kopt' nel menú Legacy GRUB menu.lst. Por favor, comprueba " +"que ye correuto, y modificalo si ye necesario." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Llínia comandos por defeutu kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"La siguiente cadena será usada cómo parametros kFreeBSD pa la entrada del " +"menú por defeutu, pero non pal mou recuperación." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map foi xeneráu" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"El ficheru /boot/grub/device.map foi sobroescritu pa usar nomes estables pal " +"preséu. Na mayoría de los casos, esto va a amenorgar considerablemente la " +"necesidá de camudar nel futuru, y les entraes del menú d'arranque GRUB " +"xeneraos nun deberíen vese afectaes." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"En too casu, ya tienes más d'un discu nel to sistema, ye posible que " +"dependieres del mapa antigüu del preséu. Por favor, comprueba si tienes o " +"non entraes d'arranque del menú personalizaes que se basen na númberación de " +"la unidá GRUB's (hdN), y anovalos si ye necesario." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Si nun entiendes esti mensax, o si nun tienes nenguna entrada personalizada " +"nel menú d'arranque, puedes ignorar esti mensax." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "En cualisquier casu, cuando quieras que GRUB 2 seya cargáu directamente " +#~ "dende'l MBR, puedes facelo col siguiente comandu (como root):" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "La instalación de GRUB falló. ¿Siguir?" --- grub2-1.99.orig/debian/po/ar.po +++ grub2-1.99/debian/po/ar.po @@ -0,0 +1,445 @@ +# translation of grub.ar.po to Arabic +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Ossama M. Khayat , 2008, 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub.ar\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-07-16 02:38+0300\n" +"Last-Translator: Ossama M. Khayat \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "تفعيل التحميل التسلسلي من menu.lst؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "عثرت بريمجيات ترقية GRUB على إعداد سابق في /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"لتستبدل النسخة السابقة من GRUB في نظامك، يُستحسن تعديل الملف /boot/grub/menu." +"lst لتحميل GRUB 2 تسلسلياً من إعداد GRUB السابق. ويمكن تنفيذ هذه الخطوة " +"تلقائياً الآن." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"يُستحسن أن تقبل التحميل التسلسلي لمدير الإقلاع GRUB من خلال الملف menu.lst، " +"وتحقق من أن إعداد GRUB 2 صالح لاستخدامك، قبل أن تُبّته مباشرة على سجل الإقلاع " +"الرئيسي MBR الخاص بك." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "تعذر تثبيت GRUB على الأجهزة التالية:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +#, fuzzy +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} م.ب.، ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} م.ب.، ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "تعذر تثبيت GRUB على الأجهزة التالية:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"هل تريد الاستمرار على أي حال؟ إن فعلت، فقد لا يتمكن جهازك من بدء التشغيل كما " +"يجب." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "تعذر تثبيت GRUB. تريد المحاولة مجدداً؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"قد تتمكن من تثبيت GRUB على جهاز آخر، لكن يجب أن تتحقق من إمكانية نظامك " +"الإقلاع من ذلك الجهاز. وإن لم يكن كذلك، فسيتم إلغاء الترقية من نظام GRUB " +"القديم." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "تريد الاستمرار دون تثبيت GRUB؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"اخترت عدم تثبيت GRUB على أية جهاز. إن استمريت، فقد لا يتم تهيئة محمّل الإقلاع " +"بشكل صحيح، كما يستخدم حاسبك أي نظام موجود على قطاع الإقلاع مسبقاً. إن كان " +"هناك نسخة سابقة من GRUB 2 في قطاع الإقلاع، فقد لا يستطيع تحميل الوحدات أو " +"قراءة ملف التهيئة الحالي بشكل صحيح." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"إن كنت تستخدم محمل إقلاع آخر وتريد الاستمرار باستخدامه، أو إن كانت لديك بيئة " +"عمل خاصة حيث لا تحتاج إلى محمل إقلاع، فيجب عليك الاستمرار على أي حال. وإلا " +"يجب أن تقوم بتثبيت GRUB في مكان ما." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "إنهاء التحويل إلى GRUB 2 الآن؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"لا زال النظام يحتوي على ملفات GRUB قديمة مثبتة، كما يحتوي أيضاً على سجلات " +"إقلاع GRUB 2 على هذه الأقراص:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"يبدو أن GRUB القديم لم يعد مستخدماً، ويجب عليك الترقية إلى GRUB 2 وإنهاء " +"التحويل إلى GRUB 2 بإزالة ملفات GRUB القديمة. وإن لم تقم بعملية الترقية هذه، " +"فقد لا يكون نظام الإقلاع متوافقاً مع الحزم الجديدة ويتسبب ذلك بعدم إقلاع نظام " +"كما هو مفترض." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"بشكل عام، يجب عليك إنهاء التحويل إلى GRUB 2 إلا إن كانت سجلات الإقلاع هذه قد " +"أنشأها تثبيت GRUB 2 لنظام تشغيل آخر." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "سطر أوامر لينكس:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"سطر أوامر لينكس التالي تم استخراجه من /etc/default/grub أو\n" +"مُعطى `kopt' في ملف menu.lst الخاص بحزمة GRUB القديمة. رجاءً تحقق من\n" +"صحته وقم بتعديله إن كانت هناك ضرورة." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "سطر أوامر لينكس الافتراضي:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"سيتم استخدام سلسلة الحروف التالية كمُعطيات لتشغيل النظام لمُدخل القائمة\n" +"الافتراضي ولكن ليس لوضع الإنقاذ." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "سطر أوامر KFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"سطر أوامر KFreeBSD التالي تم استخراجه من /etc/default/grub أو\n" +"مُعطى `kopt' في ملف menu.lst الخاص بحزمة GRUB القديمة. رجاءً تحقق من صحته وقم " +"بتعديله إن كانت هناك ضرورة." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "سطر أوامر KFreeBSD الافتراضي:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"سيتم استخدام النص التالي كمُعطى KFreeBSD لمُدخل القائمة\n" +"الافتراضي ولكن ليس لوضع الإنقاذ." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "تم إعادة إنشاء /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"تم إعادة كتابة الملف /boot/grub/device.map ليستخدم أسماء الأجهزة الصحيحة. في " +"معظم الحالات، سيقلل هذا العمل الحاجة إلى التغييرات بشكل كبير في المستقبل، " +"كما أن مُدخلات قائمة إقلاع GRUB الناتجة لن تتأثر." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"على كل، حيث أنه لديك اكثر من قرص في نظامك، من المحتمل أنه كان يعتمد على " +"خريطة الأجهزة القديمة. فالرجاء التحقق مما إذا كان لديك أية مُدخلات قائمة " +"مخصصة تعتمد على طريقة GRUB لترقيم الأجهزة، (hdN)، وقم بتحديثها إن كانت " +"ضرورياً." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"إن لم تعرف مقصود هذه الرسالة، أو إن لم يكن لديك أية مُدخلات مُخصصة في القائمة، " +"يمكنك تجاهل هذه الرسالة." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "في أي من الحالتين، متى ما أردت تحميل GRUB 2 مباشرة من سجل الإقلاع الرئيسي " +#~ "MBR، يمكنك ذلك بإصدار الأمر التالي كمُستخدم root:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "تعذر تثبيت GRUB. تريد الاستمرار؟" --- grub2-1.99.orig/debian/po/ja.po +++ grub2-1.99/debian/po/ja.po @@ -0,0 +1,406 @@ +# Copyright (C) 2008-2010 GRUB Maintainers +# This file is distributed under the same license as the grub2 package. +# Hideki Yamane , , 2008-2011. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.99-5\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-05-28 23:44+0900\n" +"Last-Translator: Hideki Yamane \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "menu.lst 経由で起動 (チェーンロード) しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB のアップグレードプログラムは、/boot/grub に GRUB Legacy の設定があるのを" +"検出しました。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"システム中に存在している古いバージョンの GRUB を置き換えるには、/boot/grub/" +"menu.lst にある GRUB Legacy の設定を使って GRUB2 の起動イメージを読み込むよう" +"に設定するのがお勧めです。この作業はここで自動的に実行されます。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"MBR (マスターブートレコード) に直接インストールする前に、GRUB 2 が menu.lst " +"からチェーンロードするように設定し、新しい GRUB 2 の設定が動作するかどうかを" +"確認する事をお勧めします。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"どの設定を選ぶにせよ、root として以下のコマンドを実行することによって、後から" +"でも古い MBR イメージを GRUB 2 に置き換えられます。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB をインストールするデバイス:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"grub-pc パッケージのアップグレード中です。このメニューでは、もしデバイスがあ" +"れば、どのデバイスに自動的に grub-install を実行するかを選べます。" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"インストール済みの GRUB コアイメージが GRUB モジュールや grub.cfg との同期が" +"ずれるのを防ぐため、ほとんどの場合、自動的に grub-instsall を実行するのがお勧" +"めです。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"BIOS でどのドライブが起動ドライブとして設定されているのか判らないのであれば、" +"すべてに GRUB をインストールするのが大抵の場合良い考えです。" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"注意: パーティションブートレコードに GRUB をインストールするのも可能です。そ" +"して、ここでは適切なパーティションが表示されます。しかし、これによって GRUB " +"がブロックリストの仕組みを強制的に使うようになります。この仕組みは信頼性に欠" +"けるため、お勧めはしません。" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"以前、GRUB ブートローダーは、すでに存在しない、あるいは何らかの理由で一意の識" +"別子が変更されたディスクにインストールされていました。インストールされている " +"GRUB コアイメージが GRUB モジュールや grub.cfg と一致しているのを確認するのは" +"重要です。もう一度、GRUB が適切な起動デバイスに書き込まれているか確かめてくだ" +"さい。" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "起動デバイスへの GRUB の書き込みが失敗しました - 続行しますか?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB は以下のデバイスへのインストールに失敗しました:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"とにかく続行しますか? その場合、コンピュータが正常に起動しないかもしれませ" +"ん。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"ブートデバイスへの GRUB の書き込みに失敗しました。もう一度試してみますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"別のデバイスに GRUB をインストールできるかもしれませんが、そのデバイスからシ" +"ステムが起動するかどうかを確認しておく必要があります。どのデバイスにもインス" +"トールを行わない場合は、GRUB Legacy からのアップグレードは中止されます。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "GRUB をインストールせずにパッケージのインストールを続行しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"どのデバイスに対しても GRUB をインストールしないことが選択されました。ブート" +"ローダーが正しく設定されていない可能性があり、このまま続行するとこのコン" +"ピュータの次回起動時には、以前に起動セクタにインストールされていたものを何で" +"あろうとも利用しようとします。以前のバージョンの GRUB 2 が起動セクタにある場" +"合は、モジュールの読み込みや現在の設定ファイルの取り扱いが出来なくなる可能性" +"があります。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"既に別のブートローダーを利用していてそれを使い続けたい場合、あるいはブート" +"ローダーを必要としない特殊な環境の場合は、とにかく続行してしまって構いませ" +"ん。そうでない場合は、どこかに GRUB をインストールしてください。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "/boot/grub から GRUB 2 を削除しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "/boot/grub から GRUB 2 のファイルをすべて削除しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"この作業は、別のブートローダーがインストールされていないとシステムが起動でき" +"なくなります。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "ここで GRUB 2 へのコンバートを終了しますか?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"このシステムには GRUB Legacy のブートローダーがインストールしたファイルがあり" +"ますが、GRUB 2 のブートレコードも以下のディスクにインストールされています:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"GRUB Legacy はもはや使われてはいないようなので、代わりにこれらのディスク上の " +"GRUB 2 イメージをアップグレードして、古い GRUB Legacy のファイルを削除するこ" +"とで GRUB 2 へのコンバートを完了する必要があります。これらの GRUB 2 イメージ" +"をアップグレードしていない場合は、新しいパッケージとの互換性がないためにシス" +"テムが正常に起動しない可能性があります。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"他の OS 上での GRUB 2 のインストールによって作成されていたブートレコードを除" +"き、GRUB 2 へのコンバートはほぼ完了しました。" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux コマンドライン:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"以下の Linux のコマンドラインは /etc/default/grub か GRUB Legacy の menu.lst " +"上の「kopt」パラメータから取得されています。これが正しいものであるかを確認し" +"て、必要であれば修正してください。コマンドラインは空でも構いません。" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux デフォルトコマンドライン:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"以下の文字列は、リカバリーモードではない通常のメニューエントリでの Linux パラ" +"メータとして使われます。" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD コマンドライン:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"以下の kFreeBSD のコマンドラインは、/etc/default/grub か GRUB Legacy の menu." +"lst 上の「kopt」パラメータから取得されています。これが正しいものであるかを確" +"認して、必要であれば修正してください。コマンドラインは空でも構いません。" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD デフォルトコマンドライン:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"以下の文字列はリカバリーモードではない通常のメニューエントリでの kFreeBSD パ" +"ラメータとして使われます。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map が再生成されました" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"/boot/grub/device.map ファイルは固定のデバイス名を使うように書き換えられまし" +"た。多くの場合は、今後このファイルを変更する必要が大幅に減っており、GRUB に" +"よって生成される起動メニューの項目は影響を受けないはずです。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"しかし、システムに 2 個以上ディスクがあるので、起動メニューの項目が古いデバイ" +"ス情報に依存していた可能性があります。起動メニューの項目が GRUB でのドライブ" +"の順番 (hdN) に関連していないかどうかを確認して、必要であれば更新してくださ" +"い。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"このメッセージの意味が分からない、あるいは変更した起動メニュー項目が無い場合" +"は、このメッセージを無視して構いません。" --- grub2-1.99.orig/debian/po/POTFILES.in +++ grub2-1.99/debian/po/POTFILES.in @@ -0,0 +1,2 @@ +[type: gettext/rfc822deb] grub-pc.templates.in +[type: gettext/rfc822deb] templates.in --- grub2-1.99.orig/debian/po/fi.po +++ grub2-1.99/debian/po/fi.po @@ -0,0 +1,447 @@ +# Esko Arajärvi , 2009, 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-08-22 13:43+0300\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: FINLAND\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Ladataanko ketjutettuna tiedostosta menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUBin päivityskomentosarjat ovat löytäneet vanhoja GRUB-asetuksia " +"tiedostosta /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Järjestelmässä olevan vanhan GRUB-version korvaamiseksi on suositeltavaa " +"muokata tiedostoa /boot/grub/menu.lst siten, että GRUB 2 ladataan olemassa " +"olevista vanhoista GRUB-asetuksista. Tämä voidaan tehdä automaattisesti nyt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"On suositeltavaa, että hyväksyt GRUB 2:n ketjutetun lataamisen tiedostosta " +"menu.lst ja varmistat uusien GRUB 2 -asetusten toimivuuden ennen kuin " +"asennat ne pääkäynnistyslohkoon (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUBia ei voitu asentaa seuraaville laitteille:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} Mt; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} Mt; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUBia ei voitu asentaa seuraaville laitteille:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Valitse haluatko jatkaa tästä huolimatta. Jos jatkat, järjestelmä ei " +"välttämättä käynnisty kunnolla." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "GRUBin asennus epäonnistui. Yritetäänkö uudelleen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Voit ehkä asentaa GRUBin jollekin toiselle levylle. Varmista tällöin, että " +"järjestelmäsi voidaan käynnistää kyseiseltä levyltä. Muussa tapauksessa " +"GRUBin aiemman version päivitys perutaan." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Jatketaanko asentamatta GRUBia?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Päätit olla asentamatta GRUBia millekään levylle. Jos jatkat, " +"alkulatausohjelman asetukset saattavat olla väärät ja kun kone käynnistetään " +"uudelleen seuraavan kerran, se käyttää käynnistyslohkon aiempia asetuksia. " +"Jos käynnistyslohkossa on GRUB 2:n aiempi versio, se ei välttämättä pysty " +"lataamaan moduuleja tai käsittelemään nykyistä asetustiedostoa." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Jos käytät jo muuta alkulatausohjelmaa ja haluat jatkaa sen käyttöä tai jos " +"käytössäsi on erityinen ympäristö, jossa et tarvitse alkulatausohjelmaa, " +"voit jatkaa asennusta. Muussa tapauksessa sinun tulisi asentaa GRUB johonkin." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Saatetaanko siirtyminen GRUB 2:een loppuun nyt?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Järjestelmässä on edelleen GRUBin aiemman version tiedostoja, mutta myös " +"GRUB 2:n käynnistystiedot on asennettu seuraaville levyille:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"GRUBin aiempi versio ei luultavasti ole enää käytössä ja näillä levyillä " +"olevat GRUB 2:n levykuvat tulisi päivittää ja siirtyminen GRUB 2:een saattaa " +"loppuun poistamalla vanhat GRUB-tiedostot. Jos et päivitä GRUB 2:n kuvia, " +"uusien pakettien kanssa voi tulla yhteensopivuusongelmia ja järjestelmän " +"käynnistys ei ehkä toimi oikein." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Yleisesti ottaen siirtyminen GRUB 2:een tulisi saattaa loppuun ellei näitä " +"käynnistystietoja luotu johonkin toiseen käyttöjärjestelmään asennetulla " +"GRUB 2:lla." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linuxin komentorivi:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"GRUBin aiemman version tiedostosta menu.lst parametrista ”kopt” tai " +"tiedostosta /etc/default/grub löydettiin seuraava Linuxin komentorivi. " +"Varmista, että se on kunnossa ja muuta sitä tarvittaessa." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linuxin oletuskomentorivi:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Seuraavaa merkkijonoa käytetään Linuxin käynnistysvalikon oletusvalinnan " +"parametreina, mutta ei toipumistilassa." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD:n komentorivi:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"GRUBin aiemman version tiedostosta menu.lst parametrista ”kopt” tai " +"tiedostosta /etc/default/grub löydettiin seuraava kFreeBSD:n komentorivi. " +"Varmista, että se on kunnossa ja muuta sitä tarvittaessa." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD:n oletuskomentorivi:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Seuraavaa merkkijonoa käytetään kFreeBSD:n käynnistysvalikon oletusvalinnan " +"parametreina, mutta ei toipumistilassa." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map on luotu uudelleen" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Tiedosto /boot/grub/device.map on kirjoitettu uudelleen käyttäen pysyviä " +"laitenimiä. Useimmissa tapauksissa tämän pitäisi huomattavasti vähentää " +"tarvetta sen muuttamiseen ja GRUBin luomien käynnistysvalikon rivien pitäisi " +"toimia edelleen." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Koska järjestelmässä kuitenkin on useampia levyjä, on mahdollista, että " +"jotkin asetukset viittaavat vanhaan laitetiedostoon. Tarkista onko " +"käynnistysvalikossa rivejä, joissa käytetään GRUBin laitenumerointia (hdN), " +"ja päivitä ne tarvittaessa." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Jos et ymmärrä tätä viestiä tai käynnistysvalikossa ei ole erityisiä rivejä, " +"voit jättää tämän viestin huomiotta." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Kun haluat asentaa GRUB 2:n latautumaan suoraan pääkäynnistyslohkosta, " +#~ "voit joka tapauksessa tehdä sen ajamalla pääkäyttäjänä seuraavan komennon:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUBin asennus epäonnistui. Jatketaanko?" --- grub2-1.99.orig/debian/po/ta.po +++ grub2-1.99/debian/po/ta.po @@ -0,0 +1,381 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Dr,T,Vasudevan , 2010. +msgid "" +msgstr "" +"Project-Id-Version: ta\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-04-18 21:36+0530\n" +"Last-Translator: Dr,T,Vasudevan \n" +"Language-Team: Tamil >\n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.3\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "menu.lst இலிருந்து சங்கிலிஏற்றம் செய்யலாமா?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "/boot/grub இல் பாரம்பரிய க்ரப் அமைப்பு உள்ளதாக க்ரம் மேம்படுத்தல் நிரல் கண்டது." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"பாரம்பரிய க்ரப் அமைப்பை உங்கள் கணினியிலிருந்து மாற்ற இப்போதுள்ள பாரம்பரிய க்ரப் அமைபின் /" +"boot/grub/menu.lst ஐ க்ரப்2 இலிருந்து சங்கிலிஏற்றம் செய்ய பரிந்துரைக்கப்படுகிறது. இந்த " +"படி இப்போது தானியங்கியாக செய்யப்பட முடியும்." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"க்ரப்2 இலிருந்து சங்கிலிஏற்றம் செய்ய இப்போது ஒப்புக்கொள்ள பரிந்துரை செய்யப்படுகிறது. மேலும் " +"உங்கள் புதிய க்ரப்2 அமைப்பு செயல் சரியாக உள்ளதா என்பதையும் சரி பார்க்கவும். அதற்குப்பின் " +"எம்பிஆர் இல் நேரடியாக நிறுவிக்கொள்ளலாம்." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "லீனக்ஸ் கட்டளை வரி:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"பின் வரும் லீனக்ஸ் கட்டளை வரி /etc/default/grub இலிருந்து அல்லது க்ரப் இன் பாரம்பரிய " +"menu.lst இன் `kopt' அளபுருவிலிருந்து பெறப்பட்டது. இது சரியா என்று சோதித்து " +"தேவையானால் மற்றவும்." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "லீனக்ஸ் முன்னிருப்பு கட்டளை வரி" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"பின் வரும் சரங்கள் முன்னிருப்பு மெனு உள்ளீட்டுக்கு லீனக்ஸ் அளபுருக்களாக பயன்படுத்தப்படும்; " +"ஆனால் மீட்டெடுப்பு பாங்குக்கு அல்ல" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "கேப்ரீபிஎஸ்டி கட்டளை வரி:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"பின் வரும் கேப்ரீபிஎஸ்டி கட்டளை வரி /etc/default/grub இலிருந்து அல்லது க்ரப் இன் " +"பாரம்பரிய menu.lst இன் `kopt' அளபுருவிலிருந்து பெறப்பட்டது. இது சரியா என்று " +"சோதித்து தேவையானால் மற்றவும்." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "கேப்ரீபிஎஸ்டி முன்னிருப்பு கட்டளை வரி:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"பின் வரும் சரங்கள் முன்னிருப்பு மெனு உள்ளீட்டுக்கு கேப்ரீபிஎஸ்டி அளபுருக்களாக " +"பயன்படுத்தப்படும்; ஆனால் மீட்டெடுப்பு பாங்குக்கு அல்ல" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "எப்படி இருந்தாலும்நீங்கள் க்ரப்2 ஐ எம்பிஆர் இலிருந்து நேரடியாக ஏற்ற விரும்பினால் எப்போது " +#~ "வேண்டுமானாலும் ரூட் ஆக கீழ் கண்ட கட்டளை மூலம் அதை செய்யலாம்." --- grub2-1.99.orig/debian/po/is.po +++ grub2-1.99/debian/po/is.po @@ -0,0 +1,404 @@ +# translation of grub_debian_po.po to Icelandic +# Copyright (C) Free Software Foundation +# This file is distributed under the same license as the PACKAGE package. +# +# Sveinn í Felli , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub_debian_po\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-10-12 13:36+0000\n" +"Last-Translator: Sveinn í Felli \n" +"Language-Team: Icelandic \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Raðhlaða (chainload) úr menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Uppfærsluskriftur GRUB hafa fundið eldri uppsetningu GRUB í /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automatically " +#| "performed now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Til að skipta eldri uppsetningu GRUB út af kerfinu, þá er mælt með því að /" +"boot/grub/menu.lst sé stillt til að raðhlaða (chainload) GRUB 2 frá þessari " +"eldri uppsetningu á GRUB. Hægt er að framkvæma þetta skref sjálfvirkt núna." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Mælt með því að þú samþykkir að raðhlaða GRUB 2 úr menu.lst, auk þess að þú " +"skoðir hvort GRUB 2 uppsetningin virki fyrir þig, áður en þú setur þetta upp " +"beint á ræsigeirann MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "Uppsetning GRUB mistókst á eftirfarandi tækjum:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "GRUB installation failed. Continue?" +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Uppsetning GRUB mistókst. Halda áfram?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Uppsetning GRUB mistókst á eftirfarandi tækjum:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +#, fuzzy +#| msgid "" +#| "Do you want to continue anyway? If you do, your computer may not start " +#| "up properly." +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Viltu samt halda áfram? Ef þú gerir það er ekki víst að tölvan þín ræsist " +"aftur eðlilega." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Uppsetning GRUB mistókst. Reyna aftur?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "" +#| "You may be able to install GRUB to some other device, although you should " +#| "check that your system will boot from that device. Otherwise, the " +#| "upgrade from GRUB Legacy will be cancelled." +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Þú gætir hugsanlega sett GRUB upp á eitthvað annað tæki, samt ættirðu að " +"skoða vel hvort kerfið þitt sé fært um að ræsa upp af því tæki. Að öðrum " +"kosti verður hætt við uppfærslu gamla GRUB ræsistjórans." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Halda áfram án þess að setja upp GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is " +#| "an earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Þú valdir að setja GRUB ekki upp á neitt tæki. Ef þú heldur áfram verður " +"ræsistjórinn ekki rétt stilltur, og þegar tölvan þín ræsist næst mun hún " +"nota hvað það sem fyrir er núna á ræsigeiranum. Ef á ræsigeiranum er til " +"dæmis eldri útgáfa af GRUB 2, er möguleiki á að hún ráði ekki við að hlaða " +"inn ákveðnum kjarnaeiningum eða nái ekki að lesa stillingaskrána fyrir þetta " +"stýrikerfi." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Ljúka núna umbreytingu í GRUB 2 ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux skipanalína:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Sjálfgefin Linux skipanalína:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD skipanalína:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Sjálfgefin kFreeBSD skipanalína:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map var endurskrifað" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Ef þú skilur ekki þessi skilaboð, eða ef þú hefur engar sérsniðnar " +"ræsifærslur, þá geturðu hunsað skilaboðin." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Hvað sem þú velur - ef þú vilt síðan að GRUB 2 verði hlaðið inn beint úr " +#~ "MBR ræsigeiranum, þá geturðu breytt þessu með því að gefa (sem " +#~ "kerfisstjóri/root) eftirfarandi skipun:" --- grub2-1.99.orig/debian/po/fa.po +++ grub2-1.99/debian/po/fa.po @@ -0,0 +1,411 @@ +msgid "" +msgstr "" +"Project-Id-Version: fa\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: \n" +"Last-Translator: Behrad Eslamifar \n" +"Language-Team: debian-l10n-persian \n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Persian\n" +"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "بارگزاری به صورت Chainload از menu.lst؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"اسکریپت ارتقاء GRUB, نسخه قدیمی GRUB‌ نصب شده در /boot/grub را پیدا کرده است." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"برای جایگزینی نسخه قدیمی GRUB در سیستم شما، پیشنهاد می‌شود /boot/grub/menu." +"lst تنظیم گردد تا یک تصویر بوت‌ GRUB 2 از چینش قدیمی GRUB کنونی بارگذاری " +"شود . اکنون این مرحله به صورت خودکار انجام می شود." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"توصیه می‌شود که chainloading گراب۲ از menu.lst را بپذیرید، و بازبینی کنید که " +"چینش جدید GRUB 2 قبل از اینکه بر روی MBR (Master Boot Record) نوشته شود کار " +"می‌کند." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"تصمیم شما هر چه باشد، می‌توانید بعداً تصویر قدیم MBR را با GRUB 2 با فرمان زیر " +"توسط کاربر ریشه جایگزین کنید:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "دستگاه‌های نصب گراب:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"بستهٔ grub-pc در حال ارتقاء است. این منو به شما اجازه می‌دهد که هر یک از " +"دستگاه‌ها را، در صورت وجود، که مایلید grub-install به صورت خودکار برایش اجرا " +"گردد را انتخاب کنید." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"اجرای خودکار grub-install در بیشتر مواقع، برای جلوگیری خارج‌شدن هستهٔ تصویر " +"گراب از sync با ماژولهای گراب یا grub.cfg توصیه‌شده است." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"اگر مطمئن نیستید کدام درایو به عنوان درایو بوت توسط BIOS تعیین شده است، اغلب " +"ایدهٔ خوبی است که گراب را بر روی همهٔ آنها نصب کنید." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"توجه: امکان دارد که گراب را در رکوردهای بوت پارتیشن نیز نصب کنید، و برخی از " +"پارتیشن‌های مناسب نیز اینجا پیشنهاد شده است. اگرچه، این گراب را مجبور می‌کند " +"که از مکانیزم blocklist استفاده کند که قابل اطمینان بودن آنرا کاهش می‌دهد و " +"بنابراین توصیه نمی‌گردد." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"بارگذار بوت گراب قبلاً در دیسکی نصب شده است که دیگر در دسترس نیست، یا unique " +"identifier آن بنا به دلیلی تغییر کرده است. مهم است که اطمینان حاصل کنید که " +"نصویر هستهٔ گراب نصب شده در sync با ماژول‌های گراب و grub.cfg باقی بماند. لطفاً " +"دوباره بررسی کنید تا مطمئن گردید که گراب در دستگاه‌های بوت مناسب نوشته شده " +"است." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "نصب GRUB روی ابزار بوت با شکست مواجه شد - ادامه می‌دهید؟" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB نتوانست که تجهیزات مورد نظر را نصب کند." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"آیا شما می‌خواهید در هر حال ادامه دهید ؟ اگر ادامه دهید، ممکن است که کامپیوتر " +"شما به طور مناسب باید بالا نیاید." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "نصب GRUB روی دستگاه بوت با شکست مواجه شد - دوباره امتحان می‌کنید؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"شما ممکن است قادر باشید که GRUB را بر روی بعضی از ابزارهای دیگر نیز نصب " +"کنید ، هرچند که شما باید چک کنید که سیستم شما قادر به راه‌اندازی شدن با آن " +"ابزار هست یا خیر. وگرنه ، ارتقا گراب قدیمی متوقف خواهد شد." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "آیا بدون نصب کردن GRUB ، ادامه می دهید ؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"شما نصب GRUB را برای هیچ ابزاری انتخاب نکرده‌اید. اگر ادامه دهید، ممکن است که " +"راه‌انداز به درستی تنظیم نشده باشد، و هنگام بالا آمدن بعدی این کامپیوتر، از " +"آن چه که قبلاً بر روی بوت سکتور بوده است استفاده می‌کند. اگر نسخهٔ قدیمی‌تری از " +"گراب۲ بر روی بوت سکتور وجود دارد، ممکن است که قادر نباشد ماژول‌ها را بارگذاری " +"کند و یا پیکربندی کنونی فایل را به کار بندد." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"اگر شما از راه‌انداز بوت دیگری استفاده می‌کنید و می‌خواهید که با همان ادامه " +"دهید، یا اگر اینجا یک محیط خاص است که شما به راه‌انداز بوت نیاز ندارید، پس " +"می‌بایست به هر ترتیب ادامه دهید. در غیر این‌صورت، باید GRUB را در جایی نصب " +"کنید." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "GRUB 2 از /boot/grub برداشته شود؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "آیا می‌خواهید همهٔ فایل‌های GRUB 2 از /boot/grub برداشته شود؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"این باعث غیر قابل بوت‌شدن سیستم می‌شود مگر آنکه بارگذار بوت دیگری نصب است." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "ارتباط با GRUB۲ اکنون پایان یابد؟" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"این سیستم هنوز فایل هایی مربوط به GRUB قدیمی را به صورت نصب شده دارد ، اما " +"اکنون بوت رکورد های GRUB2 بر روی این دیسک ها نصب شده است :" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"به نظر می‌آید که احتمالاً GRUB قدیمی دیگر در استفاده نیست، و شما می‌بایست " +"تصاویر GRUB2 را بر روی این دیسک‌ها ارتقاء دهید و با پاک کردن فایل‌های گراب " +"قدیمی تبدیل به GRUB2 را به اتمام برسانید. اگر شما این تصاویر GRUB2 را ارتقا " +"ندهید، ممکن است این تصاویر با بسته‌های جدید ناسازگار باشند و باعث جلوگیری از " +"راه‌اندازی مناسب سیستم شوند." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"شما باید معمولاً به ارتباط GRUB2 پایان دهید، مگر آنکه این رکورد های بوت ساخته " +"شده توسط GRUB2 مربوط به سیستم عامل های دیگر باشد." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "خط فرمان لینوکس:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"خط فرمان لینوکس ذیل از /etc/default/grub یا پارامتر های `kopt' در فایل menu." +"lst از گراب قدیمی استخراج شده است. لطفاً صحت آن را بررسی کنید، و در صورت لزوم " +"آن را تغییردهید. این خط فرمان می‌تواند خالی باشد." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "خط فرمان پیش فرض لینوکس:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"این رشته به عنوان یکی از پارامتر های لینوکس برای منوی پیش فرض استفاده خواهد " +"شد و نه برای حالت بازیابی." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "خط فرمان kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"خط فرمان kFreeBSD ذیل از /etc/default/grub یا پارامتر های `kopt' در فایل " +"menu.lst از گراب قدیمی استخراج شده است. لطفاً صحت آن را بررسی کنید، و در صورت " +"لزوم آن را تغییردهید. این خط فرمان می‌تواند خالی باشد." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "خط فرمان پیش فرض kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"این رشته به عنوان یکی از پارامتر های kFreeBSD برای منوی پیش فرض استفاده " +"خواهد شد و نه برای حالت بازیابی." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map بازسازی شده است." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"فایل /boot/grub/device.map به منظور استفاده از نام تجهیزات دائمی و پایدار، " +"بازنویسی شده است. در بیشتر موارد، این می‌بایست به شدت نیاز به تغییر درآینده " +"را کاهش دهد، و مدخل‌های منوی بوت ایجاد شده توسط GRUB نبایست تحت تأثیر قرار " +"گرفته باشد." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"اگرچه، از آنجا که بیش از یک دیسک در سیستم موجود است، ممکن است سیستم به " +"device map قدیمی وابسته باشد. لطفاً بررسی کنید اگر مدخل‌های سفارشی بوت که روی " +"نام‌گذاری درایو (hdN) گراب تکیه دارند وجود داشته باشند، و در صورت نیاز آنها " +"را به روز نمائید." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"اگر این پیام را متوجه نمی‌شوید، یا اگر هیچ مدخل سفارشی منوی بوت وجود ندارد، " +"می‌توانید این پیام را نادیده بگیرید." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "در هر صورت, هر زمان که شما بخواهید مستقیماً GRUB 2 را از MBR بارگزاری " +#~ "کنید, می توانید این کار را با اجرای دستوری که در ادامه آمده, تحت کاربر " +#~ "ریشه, انجام دهید:" --- grub2-1.99.orig/debian/po/es.po +++ grub2-1.99/debian/po/es.po @@ -0,0 +1,492 @@ +# grub2 po-debconf translation to Spanish +# Copyright (C) 2007, 2009, 2010, 2011 Software in the Public Interest +# This file is distributed under the same license as the grub2 package. +# +# Changes: +# - Initial translation +# Maria Germana Oliveira Blazetic, 2007 +# +# - Updates +# Gary Ariel Sandi Vigabriel , 2009 +# Francisco Javier Cuadrado , 2009, 2010, 2011 +# +# - Revisions +# Innocent De Marchi , 2010 +# +# Traductores, si no conocen el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas y normas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.99-5\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-05-28 14:04+0100\n" +"Last-Translator: Francisco Javier Cuadrado \n" +"Language-Team: Debian l10n Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "¿Desea realizar la carga en cadena desde el archivo «menu.lst»?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Los scripts de actualización han detectado en «/boot/grub» una configuración " +"heredada de una versión anterior de GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Con el fin de reemplazar la versión anterior de GRUB en el sistema, se " +"recomienda configurar «/boot/grub/menu.lst» para que cargue GRUB 2 a partir " +"de la configuración heredada de GRUB. Este paso se puede hacer de forma " +"automática." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Se recomienda que acepte cargarlo en cadena desde el archivo «menu.lst» y " +"que compruebe el buen funcionamiento del nuevo GRUB 2, antes de instalarlo " +"en el MBR («Master Boot Record»)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Sea cual sea su decisión, puede reemplazar la imagen del MBR anterior con " +"GRUB 2 más tarde ejecutando, como administrador («root»), la siguiente orden:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Dispositivos en los que se puede instalar GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Se está actualizando el paquete grub-pc. Este menú le permite escoger en qué " +"dispositivos quiere ejecutar automáticamente grub-install, si es que quiere." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Se recomienda ejecutar automáticamente grub-install en la mayoría de las " +"situaciones, para evitar que la imagen del núcleo de GRUB instalada no esté " +"sincronizada con los módulos GRUB o con el archivo «grub.cfg»." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Si no está seguro cuál es la unidad de arranque de la BIOS, normalmente es " +"una buena idea instalar GRUB en todas ellas." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Nota: también es posible instalar GRUB en los registros de arranque de " +"particiones, aquí se ofrecen algunas particiones apropiadas. Sin embargo, " +"esto obliga a GRUB a utilizar el mecanismo de la lista de bloqueo, que lo " +"hace menos fiable, y por tanto no es recomendable." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"El gestor de arranque GRUB se instaló previamente en un disco que ya no está " +"presente o cuyo identificador único ha cambiado por alguna razón. Es " +"importante asegurarse de que la imagen del núcleo de GRUB instalada se " +"mantiene sincronizada con los módulos de GRUB y el archivo «grub.cfg». Por " +"favor, asegúrese que GRUB se instala en los dispositivos de arranque " +"adecuado." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" +"La instalación de GRUB en el dispositivo de arranque ha fallado. ¿Desea " +"continuar?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "No se pudo instalar GRUB en los siguientes dispositivos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"¿Desea continuar de todos modos? Si lo hace, puede que su máquina no se " +"inicie apropiadamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"La instalación de GRUB en el dispositivo de arranque ha fallado. ¿Desea " +"volver a intentarlo?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Puede instalar GRUB en otro dispositivo, aunque debería comprobar que su " +"sistema arrancará desde ese dispositivo. De otro modo, se cancelará la " +"actualización de la versión anterior de GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "¿Desea continuar sin instalar GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Ha escogido no instalar GRUB en ningún dispositivo. Si continua, puede que " +"el cargador de arranque no se configure correctamente, y cuando esta máquina " +"se vuelva a iniciar se utilizará lo que hubiera anteriormente en el sector " +"de arranque. Si hay una versión previa de GRUB 2 en el sector de arranque, " +"puede que sea imposible cargar los módulos o manejar el archivo de " +"configuración actual." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Si está ejecutando un cargador de arranque diferente y quiere seguir " +"haciéndolo o si es un entorno especial en el que no necesita un cargador de " +"arranque, entonces debería continuar. De otro modo, debería instalar GRUB en " +"otra ubicación." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "¿Desea eliminar GRUB 2 de «/boot/grub»?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "¿Desea eliminar todos los archivos de GRUB 2 de «/boot/grub»?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Esto hará que el sistema no arranque a menos que otro gestor de arranque " +"esté instalado." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "¿Desea terminar la conversión a GRUB 2 ahora?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Este sistema todavía tiene archivos del cargador de arranque de la versión " +"anterior de GRUB instalados, pero ahora también tiene registros de arranque " +"de GRUB 2 instalados en estos discos:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Parece que la versión anterior de GRUB ya no se utiliza, por lo que usted " +"debería actualizar las imágenes de GRUB 2 en estos discos y terminar la " +"conversión a GRUB 2 borrando los archivos de la versión anterior de GRUB. Si " +"no actualiza estas imágenes de GRUB 2, puede que sean incompatibles con los " +"nuevos paquetes y que provoquen que su sistema no arranque correctamente." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Debería terminar la conversión a GRUB 2 a menos que estos registros de " +"arranque los crease una instalación de GRUB 2 en algún otro sistema " +"operativo." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linea de órdenes de Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La siguiente linea de órdenes de Linux se extrajo del archivo «/etc/default/" +"grub» o del parámetro «kopt» en el archivo «menu.lst» de la versión anterior " +"de GRUB. Por favor, compruebe que es correcta y modifíquela si es necesario. " +"La línea de órdenes se puede dejar en blanco." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linea de órdenes predeterminada de Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"La siguiente cadena se utilizará como parámetros de Linux para la entrada " +"predeterminada del menú pero no para el modo de recuperación." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Linea de órdenes de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"La siguiente linea de órdenes de kFreeBSD se extrajo del archivo «/etc/" +"default/grub» o del parámetro «kopt» en el archivo «menu.lst» de la versión " +"anterior de GRUB. Por favor, compruebe que es correcta y modifíquela si es " +"necesario. La línea de órdenes se puede dejar en blanco." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Linea de órdenes predeterminada de kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"La siguiente cadena se utilizará como parámetros de kFreeBSD para la entrada " +"predeterminada del menú pero no para el modo de recuperación." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "Se ha regenerado el archivo «/boot/grub/device.map»" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"El archivo «/boot/grub/device.map» se ha rescrito para utilizar los nombres " +"de dispositivos estables. En la mayoría de los casos, esto debería reducir " +"significativamente la necesidad de cambiarlo en el futuro, y las entradas " +"del menú que generó GRUB no se verán afectadas." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Sin embargo, ya que hay más de un disco en el sistema, es posible que el " +"sistema dependa de un mapa de dispositivos antiguo. Por favor, compruebe si " +"tiene entradas personalizadas en el menú de arranque que dependan de la " +"numeración de los dispositivos de GRUB (hdN) y actualícela si es necesario." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Puede ignorar este mensaje si no lo entiende o si no tiene entradas " +"personalizadas en el menú de arranque." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "En cualquier caso, cuando quiera que GRUB 2 se cargue directamente desde " +#~ "el MBR, puede hacerlo ejecutando (como usuario «root») la siguiente orden:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "La instalación de GRUB ha fallado. ¿Desea continuar?" + +#~ msgid "GRUB 1.95 numbering scheme transition" +#~ msgstr "Esquema de transición numérica de GRUB 1.95" + +#~ msgid "" +#~ "As of version 1.95, GRUB 2 has changed its numbering scheme. Partitions " +#~ "are now counted starting from 1 rather than 0. This is to make it " +#~ "consistent with device names of Linux and the other kernels used in " +#~ "Debian. For example, when using Linux as the kernel, \"(hd0,1)\" refers " +#~ "to the same partition as the /dev/sda1 device node." +#~ msgstr "" +#~ "GRUB 2 ha cambiado el esquema de numeración, como en la versión 1.95. " +#~ "Ahora las particiones comienzan en el número 1 en vez de en el número 0. " +#~ "Esto sirve para hacerlo consistente con los nombres de dispositivos de " +#~ "Linux y otros núcleos que se usan en Debian. Por ejemplo, cuando se usa " +#~ "Linux como núcleo, «(hd0, 1)» se refiere a la misma partición que el " +#~ "dispositivo «/dev/sda1»." + +#~ msgid "" +#~ "Because of this, there's a chance your system becomes unbootable if " +#~ "update-grub(8) is run before GRUB is updated, generating a grub.cfg file " +#~ "that your installed GRUB won't yet be able to parse correctly. To ensure " +#~ "your system will be able to boot, you have to:" +#~ msgstr "" +#~ "Por este motivo, existe la posibilidad de que su sistema no sea capaz de " +#~ "arrancar si se ejecuta update-grub(8) antes de actualizar GRUB, ya que se " +#~ "generaría un archivo «grub.cfg» que la versión instalada de GRUB no " +#~ "podría leer correctamente. Para asegurarse de que el sistema arrancará, " +#~ "debe:" + +#~ msgid "" +#~ " - Reinstall GRUB (typically, by running grub-install).\n" +#~ " - Rerun update-grub to generate a new grub.cfg." +#~ msgstr "" +#~ " - Reinstalar GRUB (normalmente, ejecutando grub-install).\n" +#~ "- Volver a ejecutar update-grub para generar un nuevo archivo «grub.cfg»." --- grub2-1.99.orig/debian/po/id.po +++ grub2-1.99/debian/po/id.po @@ -0,0 +1,430 @@ +# Grub2 translation to Bahasa Indonesia. +# Copyright (C) Grub2 Developer +# This file is distributed under the same license as the Grub2 package. +# Arief S Fitrianto , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-09 12:11+0700\n" +"Last-Translator: Arief S Fitrianto \n" +"Language-Team: Debian Indonesian Translation Team \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Indonesian\n" +"X-Poedit-Country: INDONESIA\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Chainload dari menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Script pemutakhiran GRUB menemukan konfigurasi GRUB jadul di /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Untuk mengganti GRUB jadul pada sistem Anda, sangat disarankan menyesuaikan /" +"boot/grub/menu.lst agar memuat citra boot GRUB2 dari konfigurasi GRUB Jadul. " +"Langkah ini mungkin akan dilakukan otomatis sekarang." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Sangat disarankan Anda menerima hasil penyesuaian GRUB 2 dari menu.lst dan " +"memastikan bahwa konfigurasi GRUB 2 bekerja dengan baik sebelum Anda " +"memasangnya pada MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Apapun pilihan Anda, Anda dapat mengganti citra MBR lama dengan GRUB2 di " +"lain waktu dengan menjalankan perintah berikut sebagai root: " + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Piranti pemasangan GRUB:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Paket grub-pc sedang diperbaharui. Menu ini memungkinkan Anda memilih " +"piranti yang Anda inginkan untuk menjalankan grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Menjalankan grub-install secara otomatis sangat disarankan dalam kebanyakan " +"kasus. Hal ini untuk mencegah citra inti GRUB yang terpasang tidak sesuai " +"dengan modul GRUB atau grub.cfg" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Jika Anda tidak yakin piranti yang dijadikan piranti boot oleh BIOS, sangat " +"disarankan untuk memasang GRUB di semua piranti dimaksud." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Catatan: sangat mungkin memasang GRUB di partisi boot dan beberapa partisi " +"yang sesuai disajikan di sini. Tetapi, hal ini akan memaksa GRUB menggunakan " +"mekanisme blocklist, yang membuatnya kurang handal dan oleh karenanya tidak " +"disarankan." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Pemuat boot GRUB sebelumnya telah dipasang di harddisk yang sekarang sudah " +"lenyap atau identifikasi unik telah berubah karena suatu hal. Sangat penting " +"memastikan citra inti GRUB yang terpasang selalu sesuai dengan modul GRUB " +"dan grub.cfg. Mohon periksa kembali untuk memastikan GRUB ditulis di piranti " +"boot yang sesuai." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Gagal menulis GRUB ke piranti boot -- lanjutkan?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Gagal memasang GRUB pada piranti berikut ini:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Anda yakin akan lanjut terus? Jika ya, komputer Anda mungkin tidak dapat " +"beroperasi." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Gagal menulis GRUB ke piranti boot. Coba lagi?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Anda dapat memasang GRUB pada piranti lainnya. Tetapi, Anda harus memastikan " +"komputer dapat boot dari piranti tersebut. Jika tidak, pemutakhiran dari " +"GRUB jadul akan dibatalkan." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Lanjutkan tanpa memasang GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Anda memilih tidak memasang GRUB di piranti apapun. Jika Anda lanjutkan, " +"pemuat boot mungkin tidak terkonfigurasi dengan benar. Jika komputer ini " +"dinyalakan kembali, maka apapun yang sebelumnya ada di bootsector akan " +"digunakan. Jika ada versi awal GRUB2 di bootsector, mungkin tidak dapat " +"memuat modul-modul atau menangani berkas konfigurasi mutakhir." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Jika Anda telah menggunakan pemuat boot yang berbeda dan ingin tetap seperti " +"itu, atau ada kebutuhan khusus yang membuat Anda tidak memerlukan pemuat " +"boot, maka Anda bisa melanjutkan terus. Jika tidak, Anda harus memasang GRUB " +"di tempat lain." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Hapus GRUB 2 dari /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Yakinkah Anda ingin menghapus semua berkas GRUB 2 dari /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Hal ini akan membuat sistem tidak dapat booting kecuali Anda memasang pemuat " +"boot lainnya." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Selesaikan proses konversi ke GRUB2 sekarang?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Sistem ini masih memiliki berkas-berkas dari pemuat boot GRUB Jadul, tapi " +"sekarang juga memiliki rekam boot GRUB2 di piranti berikut:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Tampaknya GRUB Jadul sudah tidak terpakai, dan Anda sebaiknya memasang citra " +"GRUB2 pada harddisk ini, lalu menyelesaikan proses konversi ke GRUB2 dengan " +"menghapus berkas-berkas GRUB Jadul. Jika Anda tidak memutakhirkan citra " +"GRUB2, maka mungkin akan ada masalah inkompatibilitas dengan paket-paket " +"baru dan membuat sistem Anda tidak dapat booting dengan benar." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Anda sebaiknya menyelesaikan konversi ke GRUB2 kecuali jika rekam boot ini " +"dibuat melalui pemasangan GRUB2 pada sistem operasi lain." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Baris perintah Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Baris perintah Linux berikut ini disadur dari /etc/default/grub atau " +"parameter 'kopt' di menu.lst pada GRUB jadul. Pastikan kebenarannya dan " +"suntinglah bila perlu." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Baris perintah standar Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"String berikut ini akan digunakan sebagai parameter Linux untuk menu standar " +"tetapi tidak digunakan untuk modus darurat." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Baris perintah kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Baris perintah kFreeBSD berikut ini disadur dari /etc/default/grub atau " +"parameter 'kopt' di menu.lst pada GRUB jadul. Pastikan kebenarannya dan " +"suntinglah bila perlu." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Baris perintah standar kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"String berikut ini digunakan sebagai parameter kFreeBSD untuk menu standar, " +"tetapi tidak digunakan untuk modus darurat." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map telah dibuat ulang." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Berkas /boot/grub/device.map telah ditulis ulang agar menggunakan nama " +"piranti yang stabil. Dalam kebanyakan kasus, hal ini berarti mengurangi " +"kemungkinan perubahan di masa datang, dan isian menu boot yang dibuat oleh " +"GRUB tidak akan terpengaruh." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Akan tetapi, karena ada lebih dari satu harddisk pada sistem ini, sangat " +"mungkin bahwa Anda bergantung pada peta piranti yang lama. Mohon periksa " +"apakah Anda memiliki isian menu boot GRUB secara manual yang menggunakan " +"penomoran harddisk (hdN). Jika ya, perbaiki yang diperlukan. " + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Jika Anda tidak mengerti pesan ini atau jika tidak memiliki isian menu boot " +"secara manual, Anda bisa mengabaikan pesan ini." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Di semua kasus, ketika Anda ingin agar GRUB 2 dimuatkan langsung dari " +#~ "MBR, Anda dapat melakukan (sebagai root) perintah berikut:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Gagal memasang GRUB. Lanjutkan?" --- grub2-1.99.orig/debian/po/templates.pot +++ grub2-1.99/debian/po/templates.pot @@ -0,0 +1,337 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" --- grub2-1.99.orig/debian/po/zh_TW.po +++ grub2-1.99/debian/po/zh_TW.po @@ -0,0 +1,428 @@ +# Copyright (C) 2009 Tetralet +# This file is distributed under the same license as the grub2 package. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-08-01 12:05+0800\n" +"Last-Translator: Tetralet \n" +"Language-Team: Debian-user in Chinese [Big5] \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "是否使用來自 menu.list 的 chainload 項目?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "GRUB 升級程式已在 /boot/grub 裡找到了 GRUB Legacy 的設定。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"為了要能取代您系統上 Legacy 版的 GRUB,建議能修改 /boot/grub/menu.lst 來讓您" +"原本的 GRUB Legacy 設定能以 chainload 的方式啟動 GRUB 2。現在將要自動進行這個" +"步驟。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"在直接將 GRUB 2 安裝到 MBR(主要開機記錄)之前,建議您能同意在 menu.lst 裡先" +"以 chainload 的方式啟動 GRUB 2,以確認您新的 GRUB 2 設定的能正常運作。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "在將 GRUB 安裝至以下裝置時失敗了:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "在將 GRUB 安裝至以下裝置時失敗了:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "是否無論如何仍然繼續?但這樣話,您的電腦可能會無法正常開機。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "GRUB 安裝失敗了。再試一次?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"您也許可以把 GRUB 安裝至其它的裝置,只是您得設定好您的系統會從該裝置開機。否" +"則,將中止 GRUB Legacy 的升級。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "是否不安裝 GRUB 並繼續?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"您決定了不將 GRUB 安裝至任何裝置。如果您繼續,開機程式可能未經適當得設定,且" +"當您電腦下次開機時,它會使用原本就位於開機磁區上的東西,而這可能會導至模組無" +"法載入,或是無法處理目前所使用的設定檔。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"如果您已在使用其它的開機程式,並且打算繼續使用;或是您的環境十分特殊所以不需" +"要開機程式,您可以不在意並繼續進行。否則,您應當找個地方安裝 GRUB。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "是否要結束 GRUB 2 的轉換過程?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"這個系統上仍保有之前安裝 GRUB Legacy 所遺留下來的檔案,但它已有 GRUB 2 安裝於" +"以下磁碟的開機磁區:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"這很可能表示再也用不到 GRUB Legacy 了,您應該替而升級這些裝置上的 GRUB 2 影像" +"檔,並移除這些 GRUB Legacy 所遺留下來的檔案,以結束 GRUB 2 的轉換過程。如果您" +"沒升級這些 GRUB 2 影像檔的話,它們可能和新的套件不相容,且會導致您的系統無法" +"正常開機。" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"您應當逐漸得結束 GRUB 2 的轉換過程,除非這些開機記錄是由其它的作業系統所安裝" +"的 GRUB 2 建立的。" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux 命令列:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"以下的 Linux 命令列是由 /etc/default/grub,或是由 GRUB Legacy 的 menu.lst 中" +"的 `kopt' 參數所擷取出來的。請確認它是否正確,若有必要請加以修改。" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Linux 預設命令列:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"以下的字串將會用在預設的選單項目中做為 Linux 參數,但不會用於回復模式。" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD 命令列:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"以下的 kFreeBSD 命令列是由 /etc/default/grub,或是由 GRUB Legacy 的 menu.lst " +"中的 `kopt' 參數所擷取出來的。請確認它是否正確,若有必要請加以修改。" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "kFreeBSD 預設命令列:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"以下的字串將會用在預設的選單項目中做為 kFreeBSD 參數,但不會用於回復模式。" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "已重新產生 /boot/grub/device.map" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"/boot/grub/device.map 這個檔案已使用不變的裝置名稱重新寫入。在大多數的狀況之" +"下,如此可以有效得避免在日後還會有什麼變動,且也不會影響到 GRUB 所產生的選單" +"項目。" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"但由於您的系統上不只安裝了一顆硬碟,舊的裝置對應表可能還在使用中。請檢視您是" +"否有還在使用著 GRUB 的 (hdN) 磁碟命名規則的自訂開機項目,若有必要請加以更新。" + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"如果您根本搞不懂這些訊息在講些什麼,或著您沒有任何自訂的開機項目,您可以忽略" +"這個訊息。" + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "不管您要採取何種方式,當您想讓 GRUB 2 可以由 MBR 直接啟動的話,您可以(以 " +#~ "root 身份)執行以下的指令:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "GRUB 安裝失敗了。是否繼續?" --- grub2-1.99.orig/debian/po/he.po +++ grub2-1.99/debian/po/he.po @@ -0,0 +1,439 @@ +# translation of grub_debian_po.po to Hebrew +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Omer Zak , 2010. +# Lior Kaplan , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub_debian_po\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-08-21 19:22+0300\n" +"Last-Translator: Lior Kaplan \n" +"Language-Team: Hebrew <>\n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: \n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "הטענה בשרשור מ-menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "תסריטי העדכון של GRUB גילו הגדרות GRUB ישנות ב-‎‎/boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"כדי להחליף את הגדרות GRUB הישנות במערכת שלך, מומלץ לשנות את ‎/boot/grub/menu." +"lst כך שיבצע הטענה משורשרת של GRUB 2 מהגדרות GRUB הישנות שלך. ניתן לבצע " +"פעולה זו באופן אוטומטי עכשיו." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"מומלץ שתסכים להטענה משורשרת של GRUB 2 מ-menu.lst ותוודא שהגדרות GRUB 2 " +"החדשות עובדות עבורך, לפני שהינך מתקין אותו ישירות ל-MBR (Master Boot Record)‎ " +"שלך." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "כשלון בהתקנת GRUB בהתקנים הבאים:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "כשלון בהתקנת GRUB בהתקנים הבאים:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "האם ברצונך להמשיך בכל זאת? אם כן, מחשבך עלול לא לאתחל כהלכה." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "התקנת GRUB נכשלה. לנסות שוב?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"ייתכן שתוכל להתקין GRUB בהתקן אחר, למרות שעליך לוודא שמחשבך יאתחל מההתקן " +"ההוא. אחרת, השדרוג מ-GRUB ישן יבוטל." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "להמשיך בלי להתקין GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"בחרת לא להתקין GRUB באף התקן. אם תמשיך, ייתכן שמנהל האתחול לא יהיה מוגדר " +"כיאות, ובפעם הבאה שמחשבך יאותחל, הוא יאותחל ממה שהיה קודם ב-boot sector. אם " +"יש גירסא מוקדמת יותר של GRUB 2 ב-boot sector, ייתכן שלא יהיה ביכולתה להטעין " +"מודולים או להתמודד עם קובץ ההגדרות הנוכחי." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"אם הינך כבר משתמש במנהל אתחול אחר ומעוניין להמשיך להשתמש בו, או אם זו סביבה " +"מיוחדת שבה לא דרוש לך מנהל אתחול, עליך להמשיך בכל זאת. אחרת, עליך להתקין " +"GRUB במקום כלשהו." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "לסיים עכשיו המרה ל-GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"יש במערכת זו עדיין קבצים מההתקנה הישנה של מנהל האתחול GRUB, אבל יש גם רשומות " +"אתחול GRUB 2 מותקנות בדיסקים הבאים:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"סביר שהתקנת GRUB הישנה כבר אינה בשימוש, ושעליך במקום זאת לשדרג את תמונות " +"GRUB 2 בדיסקים אלה ולסיים את ההמרה ל-GRUB 2 על ידי הסרת קבצי GRUB הישנים. אם " +"אינך משדרג תמונות GRUB 2 אלה, הן עלולות להיות בלתי תואמות את החבילות החדשות " +"ולמנוע מהמערכת שלך מלאתחל כהלכה." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"בדרך כלל עליך לסיים את ההמרה ל-GRUB 2 אלא אם רשומות אתחול אלה נוצרו על ידי " +"התקנת GRUB 2 במערכת הפעלה אחרת." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "שורת הפקודה של Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"שורת פקודת Linux הבאה נשלפה מ-‎/etc/default/grub או מפרמטר 'kopt' ב-menu.lst " +"הישן של GRUB. נא לוודא ששורת פקודה זו נכונה ועדכן אותה אם צריך." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "ברירת מחדל לשורת הפקודה של Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"המחרוזת הבאה תשמש כפרמטרי Linux עבור ברירת המחדל בתפריט אבל לא עבור מצב " +"recovery." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "שורת הפקודה של kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"שורת פקודת kFreeBSD הבאה נשלפה מ-‎/etc/default/grub או מפרמטר'kopt' ב-menu." +"lst הישן של GRUB. בבקשה לוודא ששורת פקודה זו נכונה ועדכן אותה אם צריך." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "ברירת מחדל לשורת הפקודה של kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"המחרוזת הבאה תשמש כפרמטרי kFreeBSD עבור ברירת המחדל בתפריט אבל לא עבור מצב " +"recovery." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "הקובץ ‎/boot/grub/device.map נוצר מחדש" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"הקובץ ‎/boot/grub/device.map נכתב מחדש כדי להשתמש בשמות התקנים יציבים. ברוב " +"המקרים, הדבר אמור לצמצם בצורה משמעותית את הצורך לשנותו בעתיד, והבחירות " +"בתפריט האתחול הנוצר על ידי GRUB לא אמורות להיות מושפעות משינוי זה." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"אבל, מכיוון שיש במערכת שלך יותר מדיסק אחד, ייתכן שהסתמכת על קובץ מיפוי " +"ההתקנים הישן. אנא בדוק אם יש לך בחירות מותאמות אישית בתפריט האתחול, שמשתמשות " +"בשיטת מספור ההתקנים (hdN) של GRUB, ועדכן אותן אם צריך." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"אם אינך מבין הודעה זו, או אם אין לך ברירות מותאמות אישית בתפריט האתחול, אז " +"ניתן להתעלם מהודעה זו." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "בכל מקרה, מתי שתרצה ש-GRUB 2 יוטען ישירות מ-MBR, ביכולתך לעשות זאת על ידי " +#~ "ביצוע (בתור משתמש-על) הפקודה הבאה:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "התקנת GRUB נכשלה.להמשיך?" --- grub2-1.99.orig/debian/po/bg.po +++ grub2-1.99/debian/po/bg.po @@ -0,0 +1,432 @@ +# Bulgarian translation of grub2 debconf messages. +# Copyright (C) grub2 packagers. +# This file is distributed under the same license as the grub2 package. +# Damyan Ivanov , 2009, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-12-09 21:45+0200\n" +"Last-Translator: Damyan Ivanov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Верижно зареждане от menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "Открита е стара инсталация на GRUB в /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"За замяна на старата инсталация на GRUB се препоръчва настройване на /boot/" +"grub/menu.lst за каскадно зареждане на GRUB2 от съществуващата инсталация на " +"GRUB. Това може да извършено автоматично." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Каскадното зареждане на GRUB2 от menu.lst се препоръчва за да е сигурно, че " +"настройките на GRUB2 са правилни, преди инсталирането му в записа за начално " +"зареждане (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Каквото и да решите, по-късно можете да замените стария запис в MBR с този " +"на GRUB2 със следната команда, изпълнена като администратор:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "Инсталиране на GRUB на следните устройства:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Пакетът grub-pc се обновява. Това меню позволява избиране за кои устройства " +"(и дали изобщо) да се изпълни командата grub-install." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"В повечето случаи автоматичното изпълнение на grub-install се препоръчва за " +"предотвратяване на разминаване между образа на GRUB на диска и модулите или " +"файла grub.cfg във файловата система." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Ако не сте сигурни кое устройство е определено за начално зареждане в BIOS, " +"добра идея е да инсталирате GRUB на всички налични устройства." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"Забележка: по принцип е възможно GRUB да се инсталира на записите за начално " +"зареждане на дисковите дялове. Списъка включва подходящи дялове, но подобна " +"инсталация ще накара GRUB да използва списъци с блокове, което прави " +"работата му по-малко надеждна и поради тази причина не се препоръчва." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Програмата за начално зареждане на GRUB е била инсталирана на диск, който " +"вече не е достъпен или чийто уникален идентификатор е бил променен. Много е " +"важно инсталираният образ винаги да е отговаря на модулите на GRUB и файла " +"grub.cfg на файловата система. Проверете и се убедете, че GRUB се инсталира " +"на правилните устройства." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" +"Записването на GRUB върху устройството за начално зареждане не успя. " +"Продължаване?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "Опитът за инсталиране на GRUB на следните устройства беше неуспешен:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Желаете ли да продължите въпреки това? Ако го направите е възможно " +"компютърът да не може да зареди операционна система." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "" +"Записването на GRUB върху устройството за начално зареждане на успя. Нов " +"опит?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Възможно е инсталирането на GRUB на друго устройство да успее, но трябва да " +"проверите дали компютърът може да извършва първоначално зареждане от него. " +"Ако откажете, обновяването от стария GRUB ще бъде отменено." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Продължаване без инсталиране на GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Избрано е GRUB да не се инсталира на никакви устройства. Ако продължите, " +"програмата за начално зареждане може да не е настроена правилно и при " +"следващото стартиране на компютъра ще се използва предишното съдържание на " +"сектора за начално зареждане. Ако в него има предишна инсталация на GRUB 2 е " +"възможно тя да не успее да използва обновените модули или конфигурационния " +"файл." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Ако използвате друга програма за начално зареждане и желаете да я запазите " +"или ако обкръжението е специално и не изисква програма за начално зареждане, " +"тогава е редно да продължите без да инсталирате GRUB. В противен случай би " +"трябвало да инсталирате GRUB някъде." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Изтриване на GRUB 2 от /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Желаете ли да изтриете всички файлове на GRUB от папката /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Това ще възпрепятства зареждането на системата, до инсталиране на друга " +"програма за начално зареждане." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Завършване на преминаването към GRUB2 ?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"На системата има файлове от стария GRUB, но има сектори за начално зареждане " +"от GRUB 2, инсталирани на следните дискове:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Изглежда, че старият GRUB не се използва и вместо него е редно се инсталира " +"GRUB 2 върху дисковете и да се завърши прехода чрез премахване на файловете " +"на стария GRUB. Ако не обновите инсталацията на GRUB 2 е възможно да се " +"появят проблеми с началното зареждане поради несъвместимост с новите пакети." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"В общия случай е добре преходът към GRUB 2 да бъде завършен, освен ако " +"секторите за начално зареждане са създадени от GRUB 2 или от друга " +"операционна система." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Команден ред на Линукс:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Следния команден ред за зареждане на Линукс беше извлечен от /etc/default/" +"grub или от параметъра „kopt“ от файла menu.lst на стария GRUB. Проверете го " +"и ако е нужно го коригирайте." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Параметри на Линукс по подразбиране:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Следните параметри ще бъдат използвани по подразбиране при зареждане на " +"Линукс, освен в авариен режим." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Команден ред за kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Следния команден ред за зареждане на kFreeBSD беше извлечен от /etc/default/" +"grub или от параметъра „kopt“ от файла menu.lst на стария GRUB. Проверете го " +"и ако е нужно го коригирайте." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Параметри на Линукс по подразбиране:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Следните параметри ще бъдат използвани по подразбиране при зареждане на " +"kFreeBSD, освен в авариен режим." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map е създаден наново" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Файлът /boot/grub/device.map е създаден наново, използвайки постоянни имена " +"на устройства. В повечето случаи това води до намаляване на нуждата да се " +"правят промени в бъдеще. Елементите в менюто за начално зареждане на GRUB не " +"са засегнати." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Все пак, понеже в системата има повече от един диск, е възможно съдържанието " +"на стария файл да е от критична важност. Проверете дали имате елементи в " +"менюто за начално зареждане на GRUB, в които да се използват устройства от " +"вида „(hdN)“ и ако е нужно ги коригирайте." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Ако не разбирате предупреждението или ако нямате ръчно-въведени елементи в " +"менюто на GRUB, не обръщайте внимание на това съобщение." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "Когато речите да инсталирате GRUB 2 в записа за начално зареждане, " +#~ "изпълнете следната команда като администратор:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Инсталирането на GRUB се провали. Продължаване?" --- grub2-1.99.orig/debian/po/sv.po +++ grub2-1.99/debian/po/sv.po @@ -0,0 +1,424 @@ +# translation of grub2 debconf messages to Swedish +# Swedish translation for grub2. +# Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub2 package. +# +# Daniel Nylander , 2007. +# Martin Ågren , 2008, 2009. +# Martin Bagge , 2010. +msgid "" +msgstr "" +"Project-Id-Version: grub2_sv\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2011-06-02 03:22+0100\n" +"Last-Translator: Martin Bagge / brother \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-Country: Sweden\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Kedjeladda från menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"GRUB:s uppgraderingsskript har upptäckt en gammal GRUB-inställning i /boot/" +"grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Om du vill ersätta den gamla versionen av GRUB i systemet, rekommenderas " +"att /boot/grub/menu.lst justeras till att kedjeladda GRUB 2 från din " +"existerande, gamla GRUB-inställning. Detta steg kan utföras automatiskt nu." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Det rekommenderas att GRUB 2 kedjeladdas från menu.lst så att det kan " +"säkerställas att den nya GRUB 2-inställningen fungerar innan den installeras " +"direkt till huvudstartsektorn (MBR)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" +"Oberoende av ditt beslut kan den gamla MBR-avbildningen ersättas med GRUB 2 " +"vid ett senare tillfälle genom att följande kommando utförs som root:" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "GRUB install devices:" +msgstr "GRUB installationsenheter:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" +"Paketet grub-pc uppdateras. Denna meny ger dig möjlighet att välja vilka, om " +"några, enheter som grub-install ska köras automatiskt för." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" +"Att köra grub-install automatiskt är rekomenderat i de flesta situationer " +"för att förhindra att den installerade GRUB-huvudavbidlningen för att hamna " +"i ett förhållande där GRUB-moduler eller grub.cfg inte är i korrekt läge." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" +"Om du är osäker på vilken disk som är uppstartsdisken enligt BIOS så är det " +"vanligen en god idé att installera GRUB på alla." + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" +"OBS: det är möjligt att installera GRUB i partitionens uppstartsområde " +"också, några av dessa visas nedan. Dock innebär installation där att GRUB " +"tvingas använda en blockeringslista, som gör funktionen mindre pålitlig, och " +"detta rekomenderas inte." + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" +"Uppstartshanteraren GRUB var tidigare installerad på en disk som inte längre " +"finns tillgänglig eller vars unika identifikation har ändrats av någon " +"anledning. Det är viktigt att säkerställa att den installerade GRUB-" +"huvudavbildningen är korrekt i förhållande till GRUB-moduler och grub.cfg. " +"Kontrollera återigen att GRUB är tillgänglig på rätt uppstartsenhet." + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "- ${DEVICE} (${SIZE} MB; ${PATH})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "Skriva GRUB till uppstartsenhet misslyckades - fortsätta?" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB kunde inte installeras på följande enheter:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"Vill du fortsätta i alla fall? Det kan innebära att systemet inte kan starta " +"korrekt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Skrivningen av GRUB till uppstartsenheten misslyckades - försöka igen?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Du kan kanske installera GRUB till någon annan enhet, du bör dock " +"kontrollera att systemet kommer att starta från den enheten. I annat fall " +"kommer uppgraderingen från äldre GRUB-version att avbrytas." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Fortsätt utan att installera GRUB?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Du valde att inte installera GRUB på några enheter. Om du fortsätter kommer " +"uppstartshanteraren kanske inte att få korrekta inställningar och när ditt " +"system startar nästa gång kommer det att använda vad som tidigare fanns i " +"boot-sektorn. Om en tidigare version av GRUB 2 används i boot-sektorn finns " +"risk att vissa moduler inte kan laddas och hantera de aktuella " +"inställningsfilerna." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Om du redan kör en annan uppstartshanterare och vill fortsätta med det eller " +"om detta är en specialmiljö som inte behöver en uppstartshanterare ska du " +"fortsätta i alla fall. I annat fall ska du installera GRUB någonstans." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "Radera GRUB 2 från /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "Vill du att alla GRUB 2-filer ska raderas från /boot/grub?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" +"Detta innebär att systemet inte kan starta om ingen annan uppstartshanterare " +"är installerad." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Avsluta konverteringen till GRUB 2 nu?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Detta system har fortfarande filer från den äldre GRUB-uppstartshanteraren " +"installerade men nu finns det dessutom GRUB 2 uppstartsinformation på " +"följande enheter:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Det är troligt att den äldre GRUB-versionen inte längre används och du bör " +"istället uppgradera till GRUB 2-avbildningar på dessa enheter och avsluta " +"konverteringen till GRUB 2 genom att ta bort äldre GRUB-filer. Om du inte " +"vill uppgradera dessa GRUB 2-avbildningar kan de bli oanvändbara tillsammans " +"med det nya paketet och systemet sluta att fungera korrekt." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Det generella rådet är att avsluta konverteringen till GRUB 2 om dessa filer " +"inte skapats av en GRUB 2-installation på ett annat opertivsystem." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Kommandorad för Linux:" + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Följande Linux-kommandorad hämtades från /etc/default/grub eller \"kopt\"-" +"parametern i gamla GRUB:s menu.lst. Verifiera att den är korrekt och " +"modifiera den om nödvändigt. Kommandoraden kan vara tom." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Standardkommandorad för Linux:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Följande sträng kommer användas som Linux-parametrar för standardmenyvalet " +"men inte för återhämtningsläge (eng. recovery)." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "Kommandorad för kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Följande kFreeBSD-kommandorad hämtades från /etc/default/grub eller \"kopt\"-" +"parametern i gamla GRUB:s menu.lst. Verifiera att den är korrekt och " +"modifiera den om nödvändigt. Kommandoraden kan vara tom." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Standardkommandorad för kFreeBSD:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Följande sträng kommer användas som Linux-parametrar för standardmenyvalet " +"men inte för återhämtningsläge (eng. recovery)." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map har skapats på nytt" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Filen /boot/grub/device.map har skrivits om för att använda stabila " +"enhetsnamn. I de allra flesta fall kommer detta innebära att anledningarna " +"att byta namn i framtiden minskar drastiskt. Posterna i uppstartsmenyn som " +"skapas av GRUB ska inte påverkas." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Dock, eftersom mer än en disk finns i systemet kan det innebära att systemet " +"är beroende av den gamla enhetskopplingen. Kontrollera om det finns manuellt " +"införda poster i uppstartsmenyn som är beroende av GRUB:s enhetsnumrering " +"(hdN) och uppdatera dessa om nödvändigt." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Om du inte förstår detta meddelande eller om du inte har några alterantiva " +"menyposter kan du ignorera detta meddelande." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "När GRUB 2 ska laddas direkt från huvudstartsektorn, kan detta " +#~ "åstadkommas genom att (som root) köra följande kommando:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Installationen av GRUB misslyckades. Fortsätta?" --- grub2-1.99.orig/debian/po/hr.po +++ grub2-1.99/debian/po/hr.po @@ -0,0 +1,446 @@ +# Translation of grub2 debconf templates to Croatian +# Copyright (C) 2010 Josip Rodin +# This file is distributed under the same license as the grub2 package. +# Josip Rodin , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: grub2 1.97-2\n" +"Report-Msgid-Bugs-To: grub2@packages.debian.org\n" +"POT-Creation-Date: 2011-05-27 13:33+0100\n" +"PO-Revision-Date: 2010-07-08 15:40+0200\n" +"Last-Translator: Josip Rodin \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "Chainload from menu.lst?" +msgstr "Uitaj ulanano preko menu.lst?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "GRUB upgrade scripts have detected a GRUB Legacy setup in /boot/grub." +msgstr "" +"Skripte za nadogradnju GRUB-a su pronale GRUB Legacy postavke u /boot/grub." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "In order to replace the Legacy version of GRUB in your system, it is " +#| "recommended that /boot/grub/menu.lst is adjusted to chainload GRUB 2 from " +#| "your existing GRUB Legacy setup. This step may be automaticaly performed " +#| "now." +msgid "" +"In order to replace the Legacy version of GRUB in your system, it is " +"recommended that /boot/grub/menu.lst is adjusted to load a GRUB 2 boot image " +"from your existing GRUB Legacy setup. This step can be automatically " +"performed now." +msgstr "" +"Kako bi zamijenili Legacy verziju GRUB-a na vaem sustavu, preporuuje se " +"prilagodba /boot/grub/menu.lst kako bi se ulanano uitao GRUB 2 iz vaih " +"postojeih GRUB Legacy postavki. Ovaj korak se sada moe automatski izvriti." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +#, fuzzy +#| msgid "" +#| "It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +#| "verify that your new GRUB 2 setup is functional for you, before you " +#| "install it directly to your MBR (Master Boot Record)." +msgid "" +"It's recommended that you accept chainloading GRUB 2 from menu.lst, and " +"verify that the new GRUB 2 setup works before it is written to the MBR " +"(Master Boot Record)." +msgstr "" +"Preporuuje se da prihvatite ulanano uitavanje GRUB 2 iz menu.lst, tako da " +"moete provjeriti da vam nove GRUB 2 postavke funkcioniraju, prije nego to " +"izravno instalirate GRUB2 u MBR (Master Boot Record)." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:2001 +msgid "" +"Whatever your decision, you can replace the old MBR image with GRUB 2 later " +"by issuing the following command as root:" +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +#, fuzzy +#| msgid "GRUB failed to install to the following devices:" +msgid "GRUB install devices:" +msgstr "GRUB nije uspio instalaciju na sljedee ureaje:" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"The grub-pc package is being upgraded. This menu allows you to select which " +"devices you'd like grub-install to be automatically run for, if any." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 +msgid "" +"Running grub-install automatically is recommended in most situations, to " +"prevent the installed GRUB core image from getting out of sync with GRUB " +"modules or grub.cfg." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"If you're unsure which drive is designated as boot drive by your BIOS, it is " +"often a good idea to install GRUB to all of them." +msgstr "" + +#. Type: multiselect +#. Description +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:3001 ../grub-pc.templates.in:4001 +msgid "" +"Note: it is possible to install GRUB to partition boot records as well, and " +"some appropriate partitions are offered here. However, this forces GRUB to " +"use the blocklist mechanism, which makes it less reliable, and therefore is " +"not recommended." +msgstr "" + +#. Type: multiselect +#. Description +#: ../grub-pc.templates.in:4001 +msgid "" +"The GRUB boot loader was previously installed to a disk that is no longer " +"present, or whose unique identifier has changed for some reason. It is " +"important to make sure that the installed GRUB core image stays in sync with " +"GRUB modules and grub.cfg. Please check again to make sure that GRUB is " +"written to the appropriate boot devices." +msgstr "" + +#. Type: text +#. Description +#. Disk sizes are in decimal megabytes, to match how disk manufacturers +#. usually describe them. +#: ../grub-pc.templates.in:5001 +msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: text +#. Description +#. The "-" is used to indicate indentation. Leading spaces may not work. +#: ../grub-pc.templates.in:6001 +#, fuzzy +#| msgid "${DEVICE} (${SIZE} MB; ${MODEL})" +msgid "- ${DEVICE} (${SIZE} MB; ${PATH})" +msgstr "${DEVICE} (${SIZE} MB; ${MODEL})" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "Writing GRUB to boot device failed - continue?" +msgstr "" + +#. Type: boolean +#. Description +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 ../grub-pc.templates.in:8001 +msgid "GRUB failed to install to the following devices:" +msgstr "GRUB nije uspio instalaciju na sljedee ureaje:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:7001 +msgid "" +"Do you want to continue anyway? If you do, your computer may not start up " +"properly." +msgstr "" +"elite li ipak nastaviti? Ako to napravite, vae raunalo se moda nee moi " +"uredno pokrenuti." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +#, fuzzy +#| msgid "GRUB installation failed. Try again?" +msgid "Writing GRUB to boot device failed - try again?" +msgstr "Instalacija GRUB-a nije uspjela. Pokuati ponovo?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:8001 +msgid "" +"You may be able to install GRUB to some other device, although you should " +"check that your system will boot from that device. Otherwise, the upgrade " +"from GRUB Legacy will be canceled." +msgstr "" +"Moda moete instalirati GRUB na neki drugi ureaj, iako biste morali " +"provjeriti da se va sustav moe podizati s tog ureaja. U suprotnom, " +"nadogradnja s GRUB Legacy e biti prekinuta." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +msgid "Continue without installing GRUB?" +msgstr "Nastaviti bez instalacije GRUB-a?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "You chose not to install GRUB to any devices. If you continue, the boot " +#| "loader may not be properly configured, and when your computer next starts " +#| "up it will use whatever was previously in the boot sector. If there is an " +#| "earlier version of GRUB 2 in the boot sector, it may be unable to load " +#| "modules or handle the current configuration file." +msgid "" +"You chose not to install GRUB to any devices. If you continue, the boot " +"loader may not be properly configured, and when this computer next starts up " +"it will use whatever was previously in the boot sector. If there is an " +"earlier version of GRUB 2 in the boot sector, it may be unable to load " +"modules or handle the current configuration file." +msgstr "" +"Odabrali ste da ne instalirate GRUB ni na jedan ureaj. Ako nastavite, boot " +"uitava nee biti ispravno podeen, a kada se vae raunalo idui put " +"upali, koristit e to god je prethodno bilo u boot sektoru. Ako se tamo " +"nalazi ranija verzija GRUB 2, moda e doi do problema s uitavanjem modula " +"ili aurnih postavki." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:9001 +#, fuzzy +#| msgid "" +#| "If you are already running a different boot loader and want to carry on " +#| "doing so, or if this is a special environment where you do not need a " +#| "boot loader, then you should continue anyway. Otherwise, you should " +#| "install GRUB somewhere." +msgid "" +"If you are already using a different boot loader and want to carry on doing " +"so, or if this is a special environment where you do not need a boot loader, " +"then you should continue anyway. Otherwise, you should install GRUB " +"somewhere." +msgstr "" +"Ako ve imate neki drugi boot uitava i elite ga zadrati, ili ako je ovo " +"neko posebno okruenje gdje ne trebate boot uitava, trebate nastaviti. " +"Inae biste morali negdje instalirati GRUB." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Remove GRUB 2 from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "Do you want to have all GRUB 2 files removed from /boot/grub?" +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:10001 +msgid "" +"This will make the system unbootable unless another boot loader is installed." +msgstr "" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "Finish conversion to GRUB 2 now?" +msgstr "Zavriti prebacivanje na GRUB 2?" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"This system still has files from the GRUB Legacy boot loader installed, but " +"it now also has GRUB 2 boot records installed on these disks:" +msgstr "" +"Ovaj sustav jo uvijek ima instalirane datoteke GRUB Legacy boot uitavaa, " +"ali sada ima i GRUB 2 boot zapise instalirane na ovim diskovima:" + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"It seems likely that GRUB Legacy is no longer in use, and that you should " +"instead upgrade the GRUB 2 images on these disks and finish the conversion " +"to GRUB 2 by removing old GRUB Legacy files. If you do not upgrade these " +"GRUB 2 images, then they may be incompatible with the new packages and cause " +"your system to stop booting properly." +msgstr "" +"Vjerojatno je GRUB Legacy izbaen iz uporabe i trebali biste nadograditi na " +"GRUB 2 snimke na ovim diskovima te zavriti prebacivanje brisanjem starih " +"GRUB Legacy datoteka. Ako niste nadogradili ove GRUB 2 snimke, onda bi one " +"mogle biti nekompatibilne s novim verzijama paketa, to bi moglo uzrokovati " +"nemogunost ispravnog pokretanja sustava." + +#. Type: boolean +#. Description +#: ../grub-pc.templates.in:11001 +msgid "" +"You should generally finish the conversion to GRUB 2 unless these boot " +"records were created by a GRUB 2 installation on some other operating system." +msgstr "" +"Openito, trebali biste dovriti nadogradnju na GRUB 2, osim ako su navedeni " +"boot zapisi napravljeni instalacijom GRUB 2 na nekom drugom operacijskom " +"sustavu." + +#. Type: string +#. Description +#: ../templates.in:1001 +msgid "Linux command line:" +msgstr "Linux naredbeni redak:" + +#. Type: string +#. Description +#: ../templates.in:1001 +#, fuzzy +#| msgid "" +#| "The following Linux command line was extracted from /etc/default/grub or " +#| "the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +#| "correct, and modify it if necessary." +msgid "" +"The following Linux command line was extracted from /etc/default/grub or the " +"`kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Ovaj naredbeni redak za sam Linux kernel je izvaen iz /etc/default/grub ili " +"iz parametra 'kopt' u menu.lst datoteci GRUB Legacya. Molim provjerite je li " +"ispravan, i ako je potrebno uredite ga." + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "Linux default command line:" +msgstr "Pretpostavljeni Linux naredbeni redak:" + +#. Type: string +#. Description +#: ../templates.in:2001 +msgid "" +"The following string will be used as Linux parameters for the default menu " +"entry but not for the recovery mode." +msgstr "" +"Sljedei izraz e biti koriten kao parametar za Linux stavke u izborniku, " +"osim za spasonosni nain rada." + +#. Type: string +#. Description +#: ../templates.in:3001 +msgid "kFreeBSD command line:" +msgstr "kFreeBSD naredbeni redak:" + +#. Type: string +#. Description +#: ../templates.in:3001 +#, fuzzy +#| msgid "" +#| "The following kFreeBSD command line was extracted from /etc/default/grub " +#| "or the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it " +#| "is correct, and modify it if necessary." +msgid "" +"The following kFreeBSD command line was extracted from /etc/default/grub or " +"the `kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is " +"correct, and modify it if necessary. The command line is allowed to be empty." +msgstr "" +"Ovaj naredbeni redak za kFreeBSD kernel je izvaen iz /etc/default/grub ili " +"iz parametra 'kopt' u menu.lst datoteci GRUB Legacya. Molim provjerite je li " +"ispravan, i ako je potrebno uredite ga." + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "kFreeBSD default command line:" +msgstr "Pretpostavljeni kFreeBSD naredbeni redak:" + +#. Type: string +#. Description +#: ../templates.in:4001 +msgid "" +"The following string will be used as kFreeBSD parameters for the default " +"menu entry but not for the recovery mode." +msgstr "" +"Sljedei izraz e biti koriten kao parametar za kFreeBSD stavke u " +"izborniku, osim za spasonosni nain rada." + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "/boot/grub/device.map has been regenerated" +msgstr "/boot/grub/device.map je regeneriran" + +#. Type: note +#. Description +#: ../templates.in:5001 +msgid "" +"The file /boot/grub/device.map has been rewritten to use stable device " +"names. In most cases, this should significantly reduce the need to change it " +"in future, and boot menu entries generated by GRUB should not be affected." +msgstr "" +"Datoteka /boot/grub/device.map je prepisana kako bi se u njoj koristila " +"stabilna imena ureaja. U veini sluajeva, to bi trebalo znaajno smanjiti " +"potrebu za njenim buduim mijenjanjem, a boot stavke koje generira GRUB ne " +"bi trebale biti pod utjecajem ove promjene." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "However, since you have more than one disk in your system, it is possible " +#| "that you were depending on the old device map. Please check whether you " +#| "have any custom boot menu entries that rely on GRUB's (hdN) drive " +#| "numbering, and update them if necessary." +msgid "" +"However, since more than one disk is present in the system, it is possible " +"that the system is depending on the old device map. Please check whether " +"there are any custom boot menu entries that rely on GRUB's (hdN) drive " +"numbering, and update them if necessary." +msgstr "" +"Ipak, budui da imate vie od jednog diska u vaem sustavu, mogue je da ste " +"ovisili o staroj mapi ureaja. Molim provjerite imate li nekih prilagoenih " +"boot zapisa koji ovise o GRUB-ovom (hdN) oznaavanju ureaja, i aurirajte " +"ih ako je potrebno." + +#. Type: note +#. Description +#: ../templates.in:5001 +#, fuzzy +#| msgid "" +#| "If you do not understand this message, or if you do not have any custom " +#| "boot menu entries, you can ignore this message." +msgid "" +"If you do not understand this message, or if there are no custom boot menu " +"entries, you can ignore this message." +msgstr "" +"Ako ne razumijete ovu poruku, ili ako nemate prilagoenih boot zapisa, ovu " +"poruku moete zanemariti." + +#~ msgid "" +#~ "In either case, whenever you want GRUB 2 to be loaded directly from MBR, " +#~ "you can do so by issuing (as root) the following command:" +#~ msgstr "" +#~ "U oba sluaja ako elite da se GRUB 2 uitava izravno iz MBR-a, moete to " +#~ "napraviti ako (kao root korisnik) pokrenete sljedeu naredbu:" + +#~ msgid "GRUB installation failed. Continue?" +#~ msgstr "Instalacija GRUB-a nije uspjela. Nastaviti?" --- grub2-1.99.orig/debian/grub-extras/ntldr-img/COPYING +++ grub2-1.99/debian/grub-extras/ntldr-img/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. --- grub2-1.99.orig/debian/grub-extras/ntldr-img/utils.h +++ grub2-1.99/debian/grub-extras/ntldr-img/utils.h @@ -0,0 +1,59 @@ +/* + * GRUB Utilities -- Utilities for GRUB Legacy, GRUB2 and GRUB for DOS + * Copyright (C) 2007 Bean (bean123@126.com) + * + * 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. + */ + +#ifndef __UTILS_H +#define __UTILS_H + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + +#define MAX_DISKS 10 +#define MAX_PARTS 30 + +#define FST_OTHER 0 +#define FST_MBR 1 +#define FST_FAT16 2 +#define FST_FAT32 3 +#define FST_NTFS 4 +#define FST_EXT2 5 + +typedef struct { + unsigned char cur; // Current partition number + unsigned char nxt; // Next partition number + unsigned char dfs; // File system flag + unsigned char pad; // Padding + unsigned long bse; // Partition start address + unsigned long len; // Partition length + unsigned long ebs; // Base address for the extended partition +} xde_t; + +#define valueat(buf,ofs,type) *((type*)(((char*)&buf)+ofs)) + +extern int mbr_nhd, mbr_spt; +int go_sect(int,unsigned long); +int xd_enum(int,xde_t*); +int get_fstype(unsigned char*); +char* fst2str(int); +char* dfs2str(int); + +#if defined(__cplusplus) || defined(c_plusplus) +} +#endif +#endif /* __UTILS_H */ --- grub2-1.99.orig/debian/grub-extras/ntldr-img/Makefile.core.common +++ grub2-1.99/debian/grub-extras/ntldr-img/Makefile.core.common @@ -0,0 +1,37 @@ +if COND_i386_pc +# Compatibility symlink. +g2hdr.bin: g2hdr.img + rm -f $@ + $(LN_S) $< $@ +platform_DATA += g2hdr.bin +CLEANFILES += g2hdr.bin + +grldr.mbr: grldr.img + head -c 8192 $< > $@ +CLEANFILES += grldr.mbr + +bin2h: contrib/ntldr-img/bin2h.c + $(CC) $^ -o $@ +CLEANFILES += bin2h + +grub_mbr.h: grldr.mbr bin2h + ./bin2h grub_mbr 8192 < $< > $@ +CLEANFILES += grub_mbr.h + +grub-ntldr-img: contrib/ntldr-img/grubinst.c contrib/ntldr-img/utils.c grub_mbr.h + $(CC) -I. -I$(srcdir)/contrib/ntldr-img -DLINUX -o $@ $(srcdir)/contrib/ntldr-img/grubinst.c $(srcdir)/contrib/ntldr-img/utils.c +bin_PROGRAMS += grub-ntldr-img +CLEANFILES += grub-ntldr-img + +# Compatibility symlink. +grubinst: grub-ntldr-img + rm -f $@ + $(LN_S) $< $@ +noinst_PROGRAMS += grubinst +CLEANFILES += grubinst + +g2ldr.mbr: grub-ntldr-img + ./grub-ntldr-img --grub2 -o $@ +platform_DATA += g2ldr.mbr +CLEANFILES += g2ldr.mbr +endif --- grub2-1.99.orig/debian/grub-extras/ntldr-img/grldrstart.S +++ grub2-1.99/debian/grub-extras/ntldr-img/grldrstart.S @@ -0,0 +1,5786 @@ +/* + * grldrstart.S -- Startup code for GRLDR + * Copyright (C) 2004-2007 Tinybit(tinybit@tom.com) + * Copyright (C) 2007 Bean(bean@windrv.net) + * + * 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. + */ + +/* + * This program is used to generate the GRLDR file. + * + * Use the following shell command to generate the GRLDR file: + * + * cat grldrstart pre_stage2 > grldr + * + */ + +#ifndef STAGE1_5 +//#include +#else +#error cannot compile with STAGE1_5 +#endif + +#ifdef GRLDR_MBR + .file "mbrstart.S" +#elif defined(GRLDR_INSTALL) + .file "bootlacestart.S" +#else + .file "grldrstart.S" +#endif + +#ifdef GRLDR_INSTALL + //.data +#else + .text + + .globl start, _start + +start: +_start: +#endif + +_start1: + + /* Tell GAS to generate 16-bit real mode instructions */ + + .code16 + + . = _start1 + 0x00 + + /* 1 byte at offset 0x00 will be overwritten for the EBIOS indicator + * later. This is safe because the jmp instruction only get executed + * once. The write happens after the jmp instruction have got + * executed. + * + * The value written would be 0x42 for EBIOS present(LBA) and 0x02 + * for non-present(CHS). + * + */ + + /* No cli, we use stack! BIOS or caller usually sets SS:SP=0000:0400 */ + + jmp 1f /* FAT32/NTFS routine comes to offset 0 */ + + . = _start1 + 0x02 + + .byte 0x80 /* bit0=1: disable GRLDR search on floppy */ + /* bit1=1: disable the boot of the previous MBR with + * invalid partition table */ + /* bit2=1: disable the feature of unconditional + * entrance to the command-line */ + /* bit7=1: disable the boot of the previous MBR prior + to the search for GRLDR */ + + /* GRLDR.MBR uses offset 0x03 to indicate a timer counter. */ + + /* 0xff indicates waiting forever, + * other value specifies the time in seconds to wait */ + + . = _start1 + 0x03 + + .byte 5 + + /* a key press to wait. if AX returned from int16 equals this word, + * the desired action will occur. */ + + . = _start1 + 0x04 + + .word 0x3920 /* the space bar */ + + . = _start1 + 0x06 + + .byte 0xff /* preferred boot drive number, 0xff for no-drive(i.e., drive not defined) */ + .byte 0xff /* preferred partition number, 0xff for whole drive(a floppy that has no partition table) */ + + . = _start1 + 8 + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + /* filled in by mkisofs using the -boot-info-table option */ + +#;bi_pvd: .long 0xDEADBEEF /* LBA of primary volume descript */ +#;bi_file: .long 0xDEADBEEF /* LBA of boot file */ +#;bi_length: .long 0xDEADBEEF /* Length of boot file */ +#;bi_csum: .long 0xDEADBEEF /* Checksum of boot file */ +#;bi_reserved: .space (10*4) /* Reserved */ + + . = _start1 + 0x40 + +#else + + /* filled in with BPB in case the drive(typically USB) is treated as floppy by buggy BIOSes */ + + . = _start1 + 0x60 + +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + +1: + call 1f + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + . = _start1 + 0x43 + +#else + + . = _start1 + 0x63 + +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + +1: + popw %bx /* Instruction Pointer of 1b */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + subw $(1b - _start1), %bx /* CS:BX=_start1 */ + +#else + + subw $(1b - _start1), %bx /* CS:BX=_start1 */ + +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + + shrw $4, %bx + movw %cs, %ax + addw %ax, %bx /* BX:0000=_start1 */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + /* we are booted from BOOT.INI, or whole GRLDR image already loaded */ + + pushw %bx /* BX:0000=_start1 */ + addw $((grldr_signature - _start1 + 4 + STAGE2_SIZE - 4) >> 4), %bx + movw %bx, %ds + + cmpl $0xCE1A02B0, ((STAGE2_SIZE - 4) & 0x0F) + popw %ds /* DS:0000=_start1 */ + je grldr_real_start /* whole image loaded. boot it! */ + + /* bad! we might be loaded by a buggy BIOS with a no-emulation-mode + * bootable CD. The buggy BIOS might load only 1 CD-ROM sector(2048 + * bytes) of our grldr image. So we need this check. + */ + + /* Our cdrom_check code begins at 0x1BE and overlaps the partition + * table. Just in case someone replace it with a partition table and + * use this sector as an MBR, we do this additional test for safety. + */ + + /* We should avoid using opcode 0x00 and 0x80 at cdrom_check. */ + + /* Note that if cdrom_check code is present, then we are booting from + * no-emulation mode cdrom. + */ + + testb $0x7F, cdrom_check - _start1 /* is it 0x00 or 0x80? */ + jz 1f /* yes, cdrom_check not found */ + call cdrom_check /* no, cdrom_check is present */ +1: + /* DS:0000=_start1 */ + + /* Let CS:0000=_start1 */ + pushw %ds + + #;pushw $(1f - _start1) + .byte 0x6A, (1f - _start1) + + lret + . = . - (. - _start1) / 0x80 +1: +#else + /* BX:0000=_start1 */ + + movw %bx, %ds + + /* Let CS:0000=_start1 */ + pushw %bx + + #;pushw $(1f - _start1) + .byte 0x6A, (1f - _start1) + + lret + . = . - (. - _start1) / 0x80 +1: + testb $0x04, 0x02 + jz 1f + + /* set the DUCE indicator */ + xorw %ax, %ax + movw %ax, %es + movw $0x5FC, %di + movl $0x45435544, %eax + stosl +1: +#endif + + /* CS:0000=DS:0000=_start1 */ + + /* we are loaded by BIOS or another boot loader */ + +#define GRLDR_CS 0x2000 /* grldr code segment */ + /* hope this segment never be used by all */ + /* subsequent partition boot records */ +#if 0 + /* for single sector boot record */ +#define MONITOR 0x7e10 +#else + /* for 4-sector NTFS boot record */ +#define MONITOR 0x8410 +#endif + +// cli + pushw $GRLDR_CS + popw %ss + movw $0x9000, %sp /* SS:SP=0x9d000, keep away from EBDA data */ +// sti + + /* Extended BIOS Data Area should not take up space below 0x9d000 */ + + /* + * 0x07c00-0x07dff This sector. Another boot loader load us here + * 0x0d000-0x14dff partition/floppy boot track(bootsector,etc) + * 0x94000-0x9bdff master boot track(MBR,etc,usually 63 sectors) + * 0x9be00-0x9c3ff 3 sectors for temp extended partition entries + * 0x9c400-0x9cfff 6 sectors for stack + */ + +#define FS_BOOT 0xd00 /* segment of partition boot track */ + + xorw %cx, %cx + pushw %cx /* CX=0 */ + movw $0x0080, %dx + pushw %dx + movb $8, %ah /* read drive parameters changes DX,ES,DI */ + stc + int $0x13 + popw %dx + popw %ax /* AX=0 */ + + pushw %ss /* SS=0x9400 */ + popw %es /* ES=0x9400 */ + + jc Error1 + + andb $63, %cl /* AL=sectors per track, CF cleared */ + + stc + jz Error1 + + xchgw %ax, %cx /* this moves CL to AL, and CX=0 */ + movb $0x02, %ah + movw %ax, %bp /* save AX to BP: read 1 track */ + xorw %bx, %bx /* ES already has a known value of 0x9400 */ + incw %cx + pushw %dx + stc + int $0x13 /* read master boot track to ES:0000 */ + popw %dx + jc Error1 + negb %ah /* set CF=1 if non-zero */ +Error1: + pushw %cs /* DS=0 */ + popw %ds /* DS=CS */ + pushfw /* CF=1 on error */ + + /* CS=DS=old segment. ES=SS=new segment. */ + + /* Move the code and error messages from DS:0000 to 9400:0000, do not + * touch the partition table + */ + xorw %si, %si + xorw %di, %di + movw $223, %cx /* 223 words = 446 bytes = 0x1be bytes */ + cld + repz movsw /* SI=DI=0x1be, CX=0 */ + + movw $(grldr_signature - _start1), %bx + + /* if the boot loader has loaded more than one sector, we use them */ + movl $0xAA555247, %eax /* "GR" 0x55 0xAA */ +//#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + cmpl %eax, (%bx) /* DS=old segment! */ + jne 1f + + /* The MOVE_HELPER code is in the old segment! */ + + call move_helper /* SI=0x1be, CX=0 */ +1: +//#endif + + /* Jump to new segment! */ +#if 1 + ljmp $GRLDR_CS, $(1f - _start1) +#else + pushw %ss /* 0x9400 */ + + //pushw $(1f - _start1) + .byte 0x6A, (1f - _start1) + + lret + . = . - (. - _start1) / 0x80 +#endif +1: + + /* We are at the new segment. CS=ES=SS=new segment. */ + + /* But DS is still old segment. */ + + pushw %ss + popw %ds + + /* CS=DS=ES=SS=new segment. */ + + //movw $0x01be, %si + + /* check the existence of helper */ + cmpl %eax, (%bx) + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + jne Error_or_prev_MBR /* Missing helper */ + +#else + + je 1f + + /* try to load helper from floppy */ + + pushal + + movw 0x18, %ax /* BPB sectors per track at offset 0x18 */ + + cmpw $0x3F, %ax + ja 3f + + cmpb $((pre_stage2_start - _start1) >> 9), %al + jb 3f + + decw %ax /* skip the first sector already loaded */ + + movw $3, %di /* retry 3 times on read failure */ +2: + movb $2, %ah /* BIOS disk read */ + cwd /* DX=0 for floppy head 0 */ + movw $0x200, %bx /* ES:BX immediately follow this sector */ + movw $2, %cx /* skip the first sector already loaded */ + + pushaw + int $0x13 + popaw + + jnc 3f + + pushaw + xorw %ax, %ax + int $0x13 + popaw + + decw %di + jnz 2b +3: + popal + cmpl %eax, (%bx) /* helper loaded? */ + + jne Error_or_prev_MBR /* Missing helper */ + +1: +#endif + + popfw /* CF=1 on error */ + jc try_floppy /* harddisk (hd0) failed, try floppy (fd0) */ +1: + pushw %cs + popw %ds + lodsw + movb %ah, %dh /* head number */ + lodsw + movw %ax, %cx /* sector and cylinder number */ + andb $63, %al + //stc + jz helper_call_c + + /* use BP to calculate the sectors to read within 1 track */ + subw %bp, %ax + decw %ax /* decb %al */ + negb %al /* AL=sectors upto the end of the track */ +7: + movw $3, %di /* retry 3 times on read failure */ +2: + movb $2, %ah + pushw $FS_BOOT + popw %es /* ES=FS_BOOT */ + xorw %bx, %bx + + pushaw + int $0x13 /* read partition boot track to FS_BOOT:0000 */ + popaw + + jnc helper_call + + pushaw + xorw %ax, %ax + int $0x13 + popaw + + decw %di + jnz 2b + +helper_call_c: + + stc + +helper_call: + /* find GRLDR in this partition + * before the call: + * CF=1 : indicates an invalid or corrupt entry + * CF=0 : indicates a valid entry + * + * on return: + * CF=1 : means "below", try next entry + * CF=0,ZF=1 : means "equal", helper did nothing, so we need + * a further try to boot via NT bootsector + * CF=0,ZF=0 : means "above", helper succeeded, boot it now + */ + call helper_start /* change to jmp 6f if helper not present */ + ja filesystem_boot /* helper succeeded, directly boot it */ +6: + +add_sub_si: + + /* extended partition check routine will adjust this to + * + * 0x83, 0xEE, 0x04 for "subw $4, %si" + * + * or + * + * 0x83, 0xC6, 0xFC for "addw $-4, %si" + * + * so that SI keeps the value 0x1fe. + */ + addw $12, %si /* 0x83, 0xC6, 0x0C */ + + . = add_sub_si + 3 + + /* extended partition check routine will adjust the word 0x1fe at + * (add_sub_si + 5). The value 0x1ff or greater indicates there are + * entries need to be treated. The value 0x1fe indicates no entries + * left, and the floppy should be checked. + */ + + cmpw $0x01fe, %si /* 0x81, 0xFE, 0xfe, 0x01 */ + /* All entries checked done? */ + jb 1b /* No, check the next entry */ + ja 5f /* floppy already checked. Fail and hang */ + +try_floppy: + + movw $0x31b2, %si /* a value big enough */ + movb $0x08, %ah /* read drive parameters changes DX,ES,DI */ + cwd /* DL=0 for floppy */ + pushw %dx /* DX=0 */ + int $0x13 + popw %ax /* AX=0 */ + jc 5f /* floppy failure, issue "Error" and hang */ + cwd /* DX=0 */ + xchgw %ax, %cx /* this moves CL to AL, and CX=0 */ + andb $63, %al /* AL=sectors per track */ + jz 5f /* invalid value. floppy failure. hangs */ + //movw $1, %cx + incw %cx + jmp 7b + +5: +Error_or_prev_MBR: + + /* GRLDR not found, print "Error" or launch previous MBR */ + movw $(message_string - _start1), %si +Error2: + call print_message /* CS:SI points to message string */ +3: jmp 3b + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) +filesystem_boot: + /* The partition boot record successfully modified, just boot it */ + + /* + * The boot might fail, but we want to take back the control. + * So we save the registers now. + */ + pushw %ds + pushw %es + pushal + + /* DS=CS=GRLDR_CS, ES=FS_BOOT */ + + /* save GRLDR_CS */ + + movw %es, %bx # save old ES to BX + + cli + lgdt gdt - _start1 + movl %cr0, %eax + orb $1, %al + movl %eax, %cr0 + + movw $8, %si + movw %si, %es + + xorl %esi, %esi + xorl %edi, %edi + movl $(0x9000 / 4), %ecx + + cld + repz movsl + + movw $16, %si + movw %si, %es + + andb $0xfe, %al + movl %eax, %cr0 + + movw %bx, %es # restore ES from BX + + /* move FS_BOOT:0000 to 0:7c00 */ +#if 0 + /* for single sector boot record */ + movw $0x0200, %cx /* move 2 sectors, the old FS_BOOT:0000 will + * keep untouched. */ +#else + /* for 4-sector NTFS boot record */ + movw $0x0400, %cx /* move 4 sectors, the old FS_BOOT:0000 will + * keep untouched. */ +#endif + xorw %si, %si + pushw %si /* SI=0, for the segment of 0000:7c00 */ + movw $0x7c00, %di + pushw %di /* DI=0x7c00, for the offset of 0000:7c00 */ + pushw %es /* ES=FS_BOOT */ + popw %ds /* DS=FS_BOOT */ + pushw %si /* SI=0 */ + popw %es /* ES=0 */ + cld + repz movsw + + movw $MONITOR, %di + movw $(restore_GRLDR_CS - _start1), %si + movw $((gdt_end - restore_GRLDR_CS) / 4), %cx + cld + repz cs movsl /* CS segment override prefix(=0x2E) */ + + pushw %es /* ES=0 */ + popw %ds /* DS=0 */ + sti + lret //ljmp $0, $0x7c00 +#endif + +try_next_partition: + + cli + movw $GRLDR_CS, %ax + movw %ax, %ss + movw $(0x9000-36), %sp + sti + + /* restore the registers and continue */ + popal + popw %es + popw %ds + jmp add_sub_si + + /* prints string CS:SI (modifies AX BX SI) */ +3: + //xorw %bx, %bx /* video page 0 */ + movb $0x0e, %ah /* print char in AL */ + int $0x10 /* via TTY mode */ + +print_message: + + lodsb %cs:(%si), %al /* get token */ + cmpb $0, %al /* end of string? */ + jne 3b + ret + +message_string: + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + .ascii "\r\nMissing helper.\0" +#else + .ascii "\r\nMissing MBR-helper.\0" +#endif + +#;buggy_bios_string: +#; +#; .ascii "\r\nBuggy BIOS!\0" + + /* Make sure the above code does not occupy the partition table */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + /* offset value here must be less than or equal to 0x1be */ + . = . - ((. - _start1) / 0x1bf) +#else + /* offset value here must be less than or equal to 0x1b8 */ + . = . - ((. - _start1) / 0x1b9) +#endif + + /* The following code may occupy the same area as the partition table */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + /* we are not booted from MBR. So we can reuse the area of partition + * table for our code. + */ + + . = _start1 + 0x1be + +cdrom_check: + + /* DS points to the sector start, but CS does not. */ + + /* BX segment points to near the end of GRLDR image. */ + + popw %ax /* old return IP */ + + /* set BX as the new safe stack. */ + movw %bx, %ss + movw $0xFFF0, %sp + + pushw %ax /* old return IP */ + + /* check if DL is no-emulation-mode bootable CDROM. */ + pushw %ds + + cmpb $0x80, %dl + jb 1f /* not a valid no-emulation-mode cdrom drive number */ + + cmpw $0xAA55, 0x7FE /* 2048 bytes loaded? */ + jne 1f + +// cmpw $0xAA55, 0x5FE /* 2048 bytes loaded? */ +// jne 1f + + movw $0x0180, %si + movw $0x4B01, %ax + pushw $0x0040 + //.byte 0x6A, 0x40 + popw %ds + pushw %ds + popw %es + movb $0x13, (%si) + int $0x13 + + /* ignore CF */ +#; jc 2f /* not in emulation mode */ + xorl %eax, %eax + xorw %bp, %bp + testb $0x0F, 1(%si) /* boot media type is No Emulation? */ + jnz 2f /* no, it simulates floppy or hard disk. */ + cmpb %dl, 2(%si) /* drive number */ + jnz 2f /* invalid drive */ + + /* OK! it is no-emulation-mode cdrom drive. */ + movl 4(%si), %eax /* LBA of GRLDR */ + incw %bp + +2: + jmp cdrom_helper +1: + popw %ds + ret + + +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + + . = _start1 + 0x1fe /* boot signature */ + +/* partition entries in the extended partitions will overwrite code here upto + * 0x3fd. + * + * the extended partition entries will occupy a temp area at 0x9be00-0x9c3ff + */ + +#if (defined(GRLDR_MBR)) || (defined(GRLDR_INSTALL)) + .word 0xaa55 +#endif + + . = _start1 + 0x200 + +/* if it is in the Master Boot Track, the second sector can be used to backup + * the previously working MBR, typically, the MS MBR. if the backup copy of + * the MBR cannot boot(because, e.g., it depends on another sector of code + * that does not exist for now), then please do not set the ending signature + * to 0xAA55, that is to say, if the signature is already 0xAA55, you should + * change it to another value(for example, 0x0000). + */ + +#if (! defined(GRLDR_INSTALL)) +#if 0 +print_cl: + pushaw + + movw %cx, %ax + movb $16, %cl + divb %cl # quo=AL, rem=AH + orw $0x3030, %ax + + cmpb $0x39, %ah + jbe 1f + addb $7, %ah +1: + cmpb $0x39, %al + jbe 1f + addb $7, %al +1: + movb %ah, %cl + + xorw %bx, %bx + + movb $0x0e, %ah + int $0x10 + + movb $0x0e, %ah + movb %cl, %al + int $0x10 + + movw $0x0e20, %ax + int $0x10 + + popaw + ret +#else +#if 0 + .word 5, 0x47, 0x52, 0x4c, 0x44, 0x52, 4, 0x24 + .word 0x49, 0x33, 0x30, 0xe000, 0, 0x3000, 0, 0 +#else + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 +#endif + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 +#endif + . = _start1 + 0x256 /* cmdcons comes here */ + +#if 0 + jmp 1f +#else + .byte 0x90, 0x90 +#endif + + . = _start1 + 0x258 + + .byte 0x90, 0x90 + + . = _start1 + 0x25a + + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + .byte 0x90, 0x90 + + . = _start1 + 0x26a +1: + //movw %cs, %ax + //movw %ax, %ds + //jmp single_boot_sector + + /* a value < 0x80 here means we are not booted from no-emulation-mode + * bootable CD. + */ + movb $0x7F, %dl + jmp _start1 + +#endif /* (! defined(GRLDR_INSTALL)) */ + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) +cdrom_helper: + + /* IP and old_DS is on the stack. */ + + /* DS=ES=40h */ + + /* Stack is high and safe. */ + + /* EAX is LBA. if EAX==0, LBA is unknown. */ + + /* check if the first sector is the same as the current one */ + + /* load the first sector onto the sector immediately follows */ +1: + popw %bx /* BX = old_DS = load_segment */ + pushw %bx + movw %bx, %es + addw $0x0080, %bx /* buffer segment */ + call load_cd_sector + + /* compare the two sectors */ + movw $0x200, %cx + movw %bx, %ds + xorw %si, %si + xorw %di, %di + cld + repz cmpsl + je load_the_rest /* 1st sector is ok, continue */ +not_grldr: + testw %bp, %bp + jz 2f + xorw %bp, %bp + xorl %eax, %eax +2: + incl %eax + jnz 1b /* try next */ + +cd_no_grldr: + + popw %ds /* DS=load_segment */ + + # Here we use error message and routine in FAT32 boot sector + # which is also inside the 2048-byte CD sector. + + movw $(msg_BootError_32 - _start1), %si + jmp boot_error_32 + +load_cd_sector: + /* input: EAX LBA + * BX buffer segment(buffer offset=0) + * DS 0x40 (or another safe one) + */ + + movw $0x1A0, %si + + /* disk address packet */ + movl $0x00010010, (%si) /* load 1 sector each time. */ + movw $0, 4(%si) /* buffer offset=0 */ + movw %bx, 6(%si) /* buffer segment */ + movl %eax, 8(%si) /* LBA lo 32 bits */ + movl $0, 12(%si) /* LBA hi 32 bits */ + + pushal + movb $0x42, %ah + int $0x13 + popal + ret + +load_the_rest: + + /* load all sectors (except the first one) */ + + /* EAX = first sector(LBA) of GRLDR */ + + popw %bx /* BX = old_DS = load_segment */ + pushw %bx + movw %bx, %es + /* 6144 = 0x1800 = 3 sectors > 4KB, this is for the additional 4KB-preset-menu at the end of grldr */ + movw $((grldr_signature - _start1 + 4 + STAGE2_SIZE - 1 + 6144) / 2048), %cx /* sectors to load */ +1: + incl %eax /* next sector */ + addw $0x0080, %bx /* buffer segment */ + + call load_cd_sector + + loop 1b + + /* loading is completed. BX=segment of the last sector. */ + + subw $0x0181, %bx /* decw %bx */ + movw %bx, %ds + + /* check the ending signature */ + cmpl $0xCE1A02B0, ((grldr_signature - _start1 + 4 + STAGE2_SIZE - 1) % 2048) + 13 + jne not_grldr +#; je grldr_real_start /* yes. boot it! */ + +#; /* it is not our grldr image, return and use MBR-helper. */ +#; +#;4: +#; //jmp grldr_real_start +#; popw %ds +#; ret + +grldr_real_start: + + #; FAT_12_16 no longer be used. So comment out. + #;je 1f /* jc 1f */ + #;//ZF=0 /* CF cleared, so we are coming from FAT_12_16 */ + #;popw %dx /* discard the cluster number */ + #;popw %dx /* this is our boot_drive/boot_partition */ + #;1: + + #; The partition number for no-emulation-mode bootable CDROM will be + #; set to 0xFF later(in common.c). So comment out. + #;cli + #;movw %cs, %ax + #;cmpw $0x1000, %ax + #;jne 1f + #; + #;/* CS=0x1000, may be booted from ext2 or no-emulation-mode CDROM */ + #; + #;cmpw $0x1000, %di + #;jne 2f + #;cmpw $0x7c00, %bp + #;jne 2f + #;movw %es, %ax + #;cmpw $0x1000, %ax + #;jbe 2f + #;cmpw $0x7c00, %si + #;jbe 2f + #;movl %edx, %eax + #;shrl $16, %eax + #;jnz 2f + #;jecxz 1f // booted from ext2 partition + #;2: + #;// booted from no-emulation-mode bootable CDROM + #;movb $0xff, %dh // partition 0xff means whole drive(for CDROM) + #; #; if needed, 0xfe can be used as an indicator + #; #; here for the bootable CDROM and changed to + #; #; 0xff later. + #;1: + #; + #;//if not booted from CDROM, don't touch the boot partition number(dh) + + cli + xorw %ax, %ax + movw %ax, %ss + movw $0x0400, %sp /* tmp use real-mode IDT as stack */ + movw %cs, %bp /* save CS to BP */ + call 1f +1: + popw %bx /* BX=Instruction Pointer of 1b */ + subw $(1b - _start1), %bx + movw %bx, %cx + shrw $4, %bx + addw %bp, %bx + pushw %bx /* new CS */ + andw $0x000f, %cx + addw $(1f - _start1), %cx + pushw %cx /* new IP */ + lret +1: + pushw %cs + popw %ds + + /* CS=DS=BX, CS:0000 = _start1 */ + + addw $((pre_stage2_start - _start1) >> 4), %bx + + /* BX:0000 = pre_stage2_start */ + + cmpw $0x820, %bx + jb 2f + + movw $((0x8200 - (pre_stage2_start - _start1) - 0x400) >> 4), %cx + + /* Now CS(=DS) >= CX+0x40 */ + + movw %cx, %es + xorw %di, %di + xorw %si, %si + + ///////////////////////////////////////////////////////////// + // + // CS + // DS 0x820 BX + // _start1---------------pre_stage2_start + // CX+0x40---------------0x820 + // CX + // ES + // + ///////////////////////////////////////////////////////////// + + movw $0x200, %cx /* move 2 sectors */ + cld + repz movsw + + pushw %es /* ES:0000 = _start */ + pushw $(1f - _start) + lret /* CS=ES, CS:0000 = _start1 */ +1: + + /* move BX:0000 to 0820:0000 upward since BX >= 0x820 */ + + cld + + movw %bx, %ds + movw $0x820, %bx + movw %bx, %es + + xorw %si, %si + xorw %di, %di + + movw $6, %bx /* 64K pages: 0x20000 - 0x7ffff */ +1: + movw $0x8000, %cx + repz movsw + movw %ds, %ax + addw $0x1000, %ax + movw %ax, %ds + movw %es, %ax + addw $0x1000, %ax + movw %ax, %es + decw %bx + jnz 1b + + jmp 3f +2: + + /* move BX:0000 to 0820:0000 downward since BX < 0x820 */ + + std + + addw $0x7000, %bx + movw %bx, %ds + movw $0x7820, %bx + movw %bx, %es + + movw $0xfffe, %si + movw %si, %di + + movw $8, %bx /* 64K pages: 0x08200 - 0x881ff */ +1: + movw $0x8000, %cx + repz movsw + movw %ds, %ax + subw $0x1000, %ax + movw %ax, %ds + movw %es, %ax + subw $0x1000, %ax + movw %ax, %es + decw %bx + jnz 1b + + cld + +3: + + /* put the config file name */ + xorw %ax, %ax + movw %ax, %es + movw %ax, %ds + + xorl %ebp, %ebp + + movb %dh, 0x820A /* this is the boot partition number */ + + #; clear saved_entryno so that force_cdrom_as_boot_device be cleared + #; later in common.c + + movl %ebp, 0x820C /* EBP=0, clear saved_entryno */ + + movw $0x0010, %cx /* set max length of grub version string */ + movw $0x8212, %di /* version string */ + cld + /* AL is already 0. Locate the end of version string */ + repnz scasb /* find the location of the default config file name */ + + jcxz 1f /* failed, will not use the default config file name */ + + movw $0x4e, %cx /* max length of config file name */ + + movw %cs, %si /* CS:0000 = _start1 */ + shlw $4, %si /* 0000:SI = _start1 */ + + addw $(default_config_file - _start1), %si + + //movw $(default_config_file + 0x8200 - pre_stage2_start), %si + cld + repz movsb /* move file name to the config-file field of stage2 */ +1: + + movw $0x0003, %ax /* set display mode: 80*25 color text */ + int $0x10 + + xorw %bx, %bx + movw $(launch_pre_stage2 - _start1), %si + call print_message /* CS:SI points to message string */ + + xorw %ax, %ax + movw %ax, %ss + movw $0x2000, %sp + + sti + + ljmp $0, $0x8200 + +launch_pre_stage2: + .ascii "\r\n\r\nBooting GRLDR...\r\n" + + .byte 0 /* mark the end of ascii zero string */ + +default_config_file: +//#ifndef PRESET_MENU_STRING + .ascii "/menu.lst" +//#else +// .ascii "[default menu is disabled]" +//#endif + + .byte 0 /* mark the end of ascii zero string */ +#endif /* ! defined(GRLDR_MBR) && (! defined(GRLDR_INSTALL)) */ + + . = _start1 + 0x400 + +#define ALTERNATIVE_KERNEL + + +/* + * The following is based on FreeDOS, modified heavily by Tinybit in Feb, 2004 + * + * Merges LBA and CHS boot sectors to ONE FAT32 boot sector! + * + * Memory layout for GRLDR FAT32 single stage boot process: + * + * ... + * |-------| 1FE0:7E00 + * |BOOTSEC| (GRUB does not use this relocation area) + * |RELOC. | (overwritten by kernel loaded) + * |-------| 1FE0:7C00 + * ... + * |-------| + * |KERNEL | (overwrites bootsec reloc.) + * |LOADED | (holds 1 sector directory buffer before kernel load) + * |-------| 2000:0000 + * ... + * |-------| 0000:7E00 + * |BOOTSEC| GRUB always run inside this sector, + * |ORIGIN | no relocation. + * |-------| 0000:7C00 + * ... + * |-------| 0060:0200 + * | FAT | (only 1 sector buffered) + * |-------| 0060:0000 + * ... + * + */ + +/* +; This is an LBA-enabled FreeDOS FAT32 boot sector (single sector!). +; You can use and copy source code and binaries under the terms of the +; GNU Public License (GPL), version 2 or newer. See www.gnu.org for more. + +; Based on earlier work by FreeDOS kernel hackers, modified heavily by +; Eric Auer and Jon Gentle in 7 / 2003. +; +; Features: Uses LBA and calculates all variables from BPB/EBPB data, +; thus making partition move / resize / image-restore easier. FreeDOS +; can boot from FAT32 partitions which start > 8 GB boundary with this +; boot sector. Disk geometry knowledge is not needed for booting. +; +; Windows uses 2-3 sectors for booting (sector stage, statistics sector, +; filesystem stage). Only using 1 sector for FreeDOS makes multi-booting +; of FreeDOS and Windows on the same filesystem easier. +; +; Requirements: LBA BIOS and 386 or better CPU. Use the older CHS-only +; boot sector if you want FAT32 on really old PCs (problems: you cannot +; boot from > 8 GB boundary, cannot move / resize / ... without applying +; SYS again if you use the CHS-only FAT32 boot sector). +; +; FAT12 / FAT16 hints: Use the older CHS-only boot sector unless you +; have to boot from > 8 GB. The LBA-and-CHS FAT12 / FAT16 boot sector +; needs applying SYS again after move / resize / ... a variant of that +; boot sector without CHS support but with better move / resize / ... +; support would be good for use on LBA harddisks. + + +; Memory layout for the FreeDOS FAT32 single stage boot process: + +; ... +; |-------| 1FE0:7E00 +; |BOOTSEC| +; |RELOC. | +; |-------| 1FE0:7C00 +; ... +; |-------| 2000:0200 +; | FAT | (only 1 sector buffered) +; |-------| 2000:0000 +; ... +; |-------| 0000:7E00 +; |BOOTSEC| overwritten by the kernel, so the +; |ORIGIN | bootsector relocates itself up... +; |-------| 0000:7C00 +; ... +; |-------| +; |KERNEL | maximum size 134k (overwrites bootsec origin) +; |LOADED | (holds 1 sector directory buffer before kernel load) +; |-------| 0060:0000 +; ... +*/ + +#define BOOTGRUB /* undef this if compiled for loading FreeDOS */ +//#undef BOOTGRUB + +#ifdef BOOTGRUB +#define LOADSEG 0x2000 +#define FATSEG 0x0060 +#else +#define LOADSEG 0x0060 +#define FATSEG 0x2000 +#endif + +Entry_32: + jmp 1f + + . = Entry_32 + 0x02 + + /* The default mode is CHS. This is for maximum compatiblity with + * small-sized disks, e.g., floppies. + * + * Valid values are 0x90 for CHS mode, or 0x0e for LBA mode. + * + * If the BIOS int13 supports LBA, this byte can be safely set to 0x0e. + * + * Some USB BIOSes might have bugs when using CHS mode, so the format + * program should set this byte to 0x0e. It seems that (generally) all + * USB BIOSes have LBA support. + * + * If the format program does not know whether the BIOS has LBA + * support, it may operate this way: + * + * if (partition_start + total_sectors_in_partition) exceeds the CHS + * addressing ability(especially when it is greater than 1024*256*63), + * the caller should set this byte to 0x0e, otherwise, set to 0x90. + */ + + .byte 0x90 /* for CHS. Another possible value is 0x0e for LBA */ + + + . = Entry_32 + 0x03 + +#ifdef BOOTGRUB + .ascii "GRLDR " /* OEM name string (of OS which formatted the disk). */ +#endif + + . = Entry_32 + 0x0b + + .word 0x200 /* bytes per sector. Must be 512 */ + + . = Entry_32 + 0x0d + + /* Sectors per cluster. Valid values are 1, 2, 4, 8, 16, 32, 64 and 128. + * But a cluster size larger than 32K should not occur. + */ + + .byte 1 /* sectors per cluster */ + + . = Entry_32 + 0x0e + + /* Reserved sectors(number of sectors before the first FAT, + * including the boot sector), usually 1. + */ + + .word 1 /* reserved sectors */ + + . = Entry_32 + 0x10 + + /* Number of FATs(nearly always 2). */ + + .byte 2 /* number of FATs */ + + . = Entry_32 + 0x11 + + /* (Maximum number of root directory entries)Must be 0. */ + + .word 0 /* Max dir entries for FAT12/FAT16 */ + + . = Entry_32 + 0x13 + + /* (Total number of sectors for small disks only)Must be 0. */ + + .word 0 /* total sectors for FAT12/FAT16 */ + + . = Entry_32 + 0x15 + + /* Media descriptor byte, pretty meaningless now. */ + + .byte 0xf8 /* media descriptor */ + + . = Entry_32 + 0x16 + + /* (Sectors per FAT)Must be 0. */ + + .word 0 /* sectors per FAT for FAT12/FAT16 */ + + . = Entry_32 + 0x18 + + .word 18 /* sectors per track */ + + . = Entry_32 + 0x1a + + .word 2 /* number of heads */ + + . = Entry_32 + 0x1c + + /* Number of hidden sectors (those preceding the boot sector). + * Also referred to as the starting sector of the partition. + * For floppies, it should be 0. + */ + + .long 0 /* hidden sectors */ + + . = Entry_32 + 0x20 + + /* Total number of sectors in the filesystem. */ + + .long 0 /* total sectors for FAT32 */ + + . = Entry_32 + 0x24 + + /* FAT32 sectors per FAT. */ + + .long 0 + + . = Entry_32 + 0x28 + + /* If bit 7 is clear then all FATs are updated, otherwise bits 0-3 + * give the current active FAT, all other bits are reserved. + * This word is not used by grldr boot code. + */ + + .word 0 + + . = Entry_32 + 0x2a + + /* High byte is major revision number, low byte is minor revision + * number, currently both are 0. + * This word is not used by grldr boot code. + */ + + .word 0 + + . = Entry_32 + 0x2c + + /* Root directory starting cluster. */ + + .long 0 + + . = Entry_32 + 0x30 + + /* File system information sector number. + * This word is not used by grldr boot code. + */ + + .word 0 + + . = Entry_32 + 0x32 + + /* If non-zero this gives the sector which holds a copy of the + * boot record, usually 6. + * This word is not used by grldr boot code. + */ + + .word 6 + + . = Entry_32 + 0x34 + + /* Reserved, 12 bytes, set to 0. */ + + .long 0 + .long 0 + .long 0 + + . = Entry_32 + 0x40 + + /* drive number of the boot device. + * This byte is ignored for read. The program will write DL onto + * this byte. The caller should set drive number in DL. + * We assume all BIOSes pass correct drive number in DL. + * That is to say, buggy BIOSes are not supported!! + */ + + .byte 0 + + . = Entry_32 + 0x41 + + /* partition number of this filesystem in the boot drive. + * This byte is ignored for read. The boot code will write partition + * number onto this byte. See Entry + 0x5d below. + */ + + .byte 0 + + . = Entry_32 + 0x42 + + /* Signature (must be 28h or 29h to be recognised by NT). */ + + .byte 0x29 /* extended boot signature for FAT12/FAT16 */ + + . = Entry_32 + 0x43 + + .long 0x0AC4AF63 /* volume serial number */ + + . = Entry_32 + 0x47 + + .ascii "NO NAME " /* volume label, 11 bytes. */ + + . = Entry_32 + 0x52 + + .ascii "FAT32 " /* filesystem ID, 8 bytes. */ + +/* +; bp is initialized to 7c00h +; %define bsOemName bp+0x03 ; OEM label (8) +%define bsBytesPerSec bp+0x0b ; bytes/sector (dw) +%define bsSecPerClust bp+0x0d ; sectors/allocation unit (db) +%define bsResSectors bp+0x0e ; # reserved sectors (dw) +%define bsFATs bp+0x10 ; # of fats (db) +; %define bsRootDirEnts bp+0x11 ; # of root dir entries (dw, 0 for FAT32) + ; (FAT32 has root dir in a cluster chain) +; %define bsSectors bp+0x13 ; # sectors total in image (dw, 0 for FAT32) + ; (if 0 use nSectorHuge even if FAT16) +; %define bsMedia bp+0x15 ; media descriptor: fd=2side9sec, etc... (db) +; %define sectPerFat bp+0x16 ; # sectors in a fat (dw, 0 for FAT32) + ; (FAT32 always uses xsectPerFat) +%define sectPerTrack bp+0x18 ; # sectors/track +; %define nHeads bp+0x1a ; # heads (dw) +%define nHidden bp+0x1c ; # hidden sectors (dd) +; %define nSectorHuge bp+0x20 ; # sectors if > 65536 (dd) +%define xsectPerFat bp+0x24 ; Sectors/Fat (dd) + ; +0x28 dw flags (for fat mirroring) + ; +0x2a dw filesystem version (usually 0) +%define xrootClst bp+0x2c ; Starting cluster of root directory (dd) + ; +0x30 dw -1 or sector number of fs.-info sector + ; +0x32 dw -1 or sector number of boot sector backup + ; (+0x34 .. +0x3f reserved) +%define drive bp+0x40 ; Drive number + bp+0x41 ; partition number for GRLDR + +%define fat_sector bp+0x44 ; last accessed FAT sector (dd) + ; (overwriting unused bytes) +%define fat_start bp+0x48 ; first FAT sector (dd) + ; (overwriting unused bytes) +%define data_start bp+0x4c ; first data sector (dd) + ; (overwriting unused bytes) + +*/ + /* not used: [0x42] = byte 0x29 (ext boot param flag) + * [0x43] = dword serial + * [0x47] = label (padded with 00, 11 bytes) + * [0x52] = "FAT32",32,32,32 (not used by Windows) + * ([0x5a] is where FreeDOS parts start) + */ + + . = Entry_32 + 0x5a +1: + cli + cld + +#ifdef BOOTGRUB + + . = Entry_32 + 0x5c + + /* the byte at offset 0x5d stores the real partition number for read. + * the format program or the caller should set it to a correct value. + * For floppies, it should be 0xff, which stands for whole drive. + */ + + movb $0xff, %dh /* boot partition number */ + + cmpb $0xff, %dh /* is floppy? */ + jne 1f + movb $0, %dl /* yes, let drive number = 0 */ +1: +#endif + + xorw %ax, %ax + movw %ax, %ds + movw $0x7c00, %bp + +#ifdef BOOTGRUB + movw %ax, %es +#else + movw $0x1fe0, %ax + movw %ax, %es + movw %bp, %si /* move from 0000:7c00 */ + movw %bp, %di /* move to 1fe0:7c00 */ + movw $0x0100, %cx /* one sector to move */ + repz movsw + ljmp $0x1fe0, $(1f - Entry_32 + 0x7c00) +1: + movw %ax, %ds +#endif + movw %ax, %ss /* stack and BP-relative moves up, too */ + leaw -0x20(%bp), %sp + sti + movw %dx, 0x40(%bp) /* BIOS passes drive number in DL */ + + movb $0x41, %ah + movw $0x55AA, %bx + int $0x13 + jc 1f /* No EBIOS */ + cmpw $0xAA55, %bx + jne 1f /* No EBIOS */ + testb $1, %cl + jz 1f /* No EBIOS */ + /* EBIOS supported */ + movb $0x42, (ebios_32 - 1 - Entry_32 + 0x7c00) +1: + +/* figure out where FAT and DATA area starts + * (modifies EAX EDX, sets fat_start and data_start variables) + */ + xorl %eax, %eax + movl %eax, 0x44(%bp) /* init buffer status */ + + /* first, find fat_start */ + movw 0x0e(%bp), %ax /* reserved sectors */ + addl 0x1c(%bp), %eax /* hidden sectors */ + movl %eax, 0x48(%bp) /* first FAT sector */ + movl %eax, 0x4c(%bp) /* first data sector, initial value */ + + /* next, find data_start */ + movl 0x10(%bp), %eax /* number of fats, no movzbl needed: the + 2 words after 0x10(%bp) are 0 for fat32 */ + mull 0x24(%bp) /* sectors per fat (EDX=0) */ + addl %eax, 0x4c(%bp) /* first DATA sector */ + +/* Searches for the file in the root directory. + * Returns: EAX = first cluster of file + */ + + movl 0x2c(%bp), %eax /* root dir cluster */ + +1: + pushl %eax /* save cluster */ + call cluster_to_lba_32 + /* EDX is sectors per cluster, EAX is sector number */ + movw $(msg_BootError_32 - Entry_32 + 0x7c00), %si + jc boot_error_32 /* EOC encountered */ + +2: + lesw (loadseg_off_32 - Entry_32)(%bp), %bx /* load to loadseg:0 */ + call readDisk_32 + + xorw %di, %di + + /* Search for kernel file name, and find start cluster */ +3: + movw $11, %cx + movw $(filename_32 - Entry_32 + 0x7c00), %si + repz cmpsb + jz 1f /* note that di now is at dirent+11 */ + + addw $0x20, %di + andw $-0x20, %di /* 0xffe0 */ + cmp 0x0b(%bp), %di /* bytes per sector */ + jnz 3b /* next directory entry */ + + decw %dx /* initially DX holds sectors per cluster */ + jnz 2b /* loop over sectors in cluster */ + + popl %eax /* restore current cluster */ + call next_cluster_32 + jmp 1b /* read next cluster */ + +#ifndef ALTERNATIVE_KERNEL +loadseg_off_32: + .word 0 + .word LOADSEG +#endif + +1: + /* kernel directory entry is found */ + pushw %es:(0x14-11)(%di) /* get cluster number HI */ + pushw %es:(0x1a-11)(%di) /* get cluster number LO */ + popl %eax /* convert to 32bit */ + + xorw %bx, %bx /* read kernel at ES:BX=LOADSEG:0 */ + +/* read kernel */ + +2: + pushl %eax + call cluster_to_lba_32 + /* EDX is sectors per cluster, EAX is sector number */ + jnc 1f + + /* EOC encountered - done */ +#ifdef BOOTGRUB + movw 0x40(%bp), %dx /* boot_drive and boot_partition */ +#else + movb 0x40(%bp), %bl /* FreeDOS kernel uses BL, not DL, for drive */ +#endif + ljmp *(loadseg_off_32 - Entry_32)(%bp) + +1: + call readDisk_32 + decw %dx /* initially DX holds sectors per cluster */ + jnz 1b /* loop over sectors in cluster */ + + popl %eax + call next_cluster_32 + jmp 2b + +/* given a cluster number, find the number of the next cluster in + * the FAT chain. Needs fat_start. + * input: EAX - cluster + * EDX = 0 + * output: EAX - next cluster + * EDX = undefined + */ + +next_cluster_32: + pushw %es + /* pushw %di */ + pushw %bx /* hi word of EBX never used */ + +#if 1 + /* xorl %edx, %edx */ + shll $2, %eax /* 32bit FAT */ + movzwl 0x0b(%bp), %ebx /* bytes per sector */ + divl %ebx /* residue is in EDX */ + /* movw %dx, %di */ +#else + shll $2, %eax /* 32bit FAT */ + ;xchgw %ax, %di /* movw %ax, %di */ + movw %ax, %di + ;shlw $2, %di /* 32bit FAT */ + + pushw %cx + movw 0x0b(%bp), %bx /* bytes per sector */ + bsfw %bx, %cx + ;decw %cx + ;decw %cx + decw %bx + andw %bx, %di /* mask to sector size */ + shrl %cl, %eax + popw %cx +#endif + addl 0x48(%bp), %eax /* add the first FAT sector number. + EAX is absolute sector number now */ + movw $FATSEG, %bx + movw %bx, %es + xorw %bx, %bx + + cmpl 0x44(%bp), %eax /* is it the last accessed and already buffered + FAT sector? */ + jz 1f + movl %eax, 0x44(%bp) /* mark sector EAX as buffered */ + call readDisk_32 /* read sector EAX to buffer */ +1: +#if 1 + //.byte 0x67, 0x26, 0x80, 0x62, 0x03, 0x0f + addr32 andb $0x0f, %es:3(%edx) /* mask out top 4 bits */ + + //.byte 0x67, 0x66, 0x26, 0x8b, 0x02 + addr32 movl %es:(%edx), %eax /* read next cluster number */ +#else + andb $0x0f, %es:3(%di) /* mask out top 4 bits */ + movl %es:(%di), %eax /* read next cluster number */ +#endif + popw %bx + /* popw %di */ + popw %es + ret + +/* Convert cluster number to the absolute sector number + * ... or return carry if EndOfChain! Needs data_start. + * input: EAX - target cluster + * output: EAX - absolute sector + * EDX - [bsSectPerClust] (byte) + * carry clear + * (if carry set, EAX/EDX unchanged, end of chain) + */ + +cluster_to_lba_32: + cmpl $0x0ffffff8, %eax /* check End Of Chain */ + cmc + jb 1f /* carry is stored if EOC */ + + /* sector = (cluster-2) * clustersize + data_start */ + decl %eax + decl %eax + + movzbl 0x0d(%bp), %edx /* sectors per cluster */ + pushw %dx /* only DX would change */ + mull %edx /* EDX = 0 */ + popw %dx + addl 0x4c(%bp), %eax /* data_start */ + /* here, carry is cleared (unless parameters are wrong) */ +1: + ret + +/* Read a sector from disk, using LBA or CHS + * input: EAX - 32-bit DOS sector number + * ES:BX - destination buffer + * (will be filled with 1 sector of data) + * output: ES:BX points one byte after the last byte read. + * EAX - next sector + */ + +readDisk_32: + pushal + xorl %edx, %edx /* EDX:EAX = LBA */ + pushl %edx /* hi 32bit of sector number */ + pushl %eax /* lo 32bit of sector number */ + pushw %es /* buffer segment */ + pushw %bx /* buffer offset */ + pushw $1 /* 1 sector to read */ + pushw $16 /* size of this parameter block */ + + xorl %ecx, %ecx + pushl 0x18(%bp) /* lo:sectors per track, hi:number of heads */ + popw %cx /* ECX = sectors per track */ + divl %ecx /* residue is in EDX */ + /* quotient is in EAX */ + incw %dx /* sector number in DL */ + popw %cx /* ECX = number of heads */ + pushw %dx /* push sector number into stack */ + xorw %dx, %dx /* EDX:EAX = cylinder * TotalHeads + head */ + divl %ecx /* residue is in EDX, head number */ + /* quotient is in EAX, cylinder number */ + xchgb %dl, %dh /* head number should be in DH */ + /* DL = 0 */ + popw %cx /* pop sector number from stack */ + xchgb %al, %ch /* lo 8bit cylinder should be in CH */ + /* AL = 0 */ + shlb $6, %ah /* hi 2bit cylinder ... */ + orb %ah, %cl /* ... should be in CL */ + + movw $0x201, %ax /* read 1 sector */ +ebios_32: /* ebios_32 - 1 points to 0x02 that can be changed to 0x42 */ + +// cmpb $0x0e, 2(%bp) /* force LBA? */ +// jnz 1f /* no, continue */ +// movb $0x42, %ah /* yes, use extended disk read */ +//1: + movw %sp, %si /* DS:SI points to disk address packet */ + movb 0x40(%bp), %dl /* hard disk drive number */ + int $0x13 + popaw /* remove parameter block from stack */ + popal + jc disk_error_32 /* disk read error, jc 1f if caller handles */ + incl %eax /* next sector */ + addw 0x0b(%bp), %bx /* bytes per sector */ + jnc 1f /* 64K bound check */ + pushw %dx + movw %es, %dx + addb $0x10, %dh /* add 1000h to ES */ + /* here, carry is cleared */ + movw %dx, %es + popw %dx +1: + /* carry stored on disk read error */ + ret + + . = . - (. - readDisk_32)/91 + +msg_DiskReadError_32: + + .ascii "disk error\0" + +msg_BootError_32: + + .ascii "No " + +filename_32: + +#ifdef BOOTGRUB + .ascii "GRLDR \0" +#else + .ascii "KERNEL SYS\0" +#endif + +#ifdef ALTERNATIVE_KERNEL +filename_end_32: + + . = Entry_32 + 0x1e8 + +loadseg_off_32: + .word 0 + .word LOADSEG + + . = Entry_32 + 0x1ec + +boot_image_ofs_32: + + .word (filename_32 - Entry_32)+(filename_end_32 - filename_32 - 1)*2048 +#endif + + . = Entry_32 + 0x1ee + +disk_error_32: + + movw $(msg_DiskReadError_32 - Entry_32 + 0x7c00), %si + +boot_error_32: + +/* prints string DS:SI (modifies AX BX SI) */ + +//print_32: +1: + lodsb (%si), %al /* get token */ + //xorw %bx, %bx /* video page 0 */ + movb $0x0e, %ah /* print it */ + int $0x10 /* via TTY mode */ + cmpb $0, %al /* end of string? */ + jne 1b /* until done */ + + /* The caller will change this to + * ljmp $0x9400, $(try_next_partition - _start1) + */ + +1: jmp 1b + + . = Entry_32 + 0x1fc + + .word 0, 0xAA55 /* Win9x uses all 4 bytes as magic value here */ + + . = Entry_32 + 0x200 + + . = _start1 + 0x600 + + //.arch i8086, nojumps + .arch i186, nojumps +/* + * The following is based on FreeDOS, modified heavily by Tinybit in Feb, 2004 + * + * Merges FAT12 and FAT16 boot sectors to ONE FAT boot sector! + * + * Memory layout for GRLDR FAT single stage boot process: + * + * +--------+ + * | | + * |GRLDR | also used as max 128k FAT buffer + * |LOADED | before GRLDR loading starts + * |--------| 2000:0000 + * | | + * |--------| 0000:7E00 + * |BOOTSECT| + * |ORIGIN | + * |--------| 0000:7C00 + * | | + * |--------| 0000:3000 + * |CLUSTER | + * |LIST | + * |--------| 0000:2000 + * | | + * +--------+ + */ + +/* +; +; File: +; boot.asm +; Description: +; DOS-C boot +; +; Copyright (c) 1997; +; Svante Frey +; All Rights Reserved +; +; This file is part of DOS-C. +; +; DOS-C 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, or (at your option) any later version. +; +; DOS-C 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 DOS-C; see the file COPYING. If not, +; write to the Free Software Foundation, 675 Mass Ave, +; Cambridge, MA 02139, USA. +; +; +; +--------+ 1FE0:7E00 +; |BOOT SEC| +; |RELOCATE| +; |--------| 1FE0:7C00 +; | | +; |--------| 1FE0:3000 +; | CLUSTER| +; | LIST | +; |--------| 1FE0:2000 +; | | +; |--------| 0000:7E00 +; |BOOT SEC| overwritten by max 128k FAT buffer +; |ORIGIN | and later by max 134k loaded kernel +; |--------| 0000:7C00 +; | | +; |--------| +; |KERNEL | also used as max 128k FAT buffer +; |LOADED | before kernel loading starts +; |--------| 0060:0000 +; | | +; +--------+ +*/ + +#ifdef BOOTGRUB +#define LOADSEG_12_16 0x2000 +#define FATBUF 0x2000 /* offset of temp buffer for FAT chain */ +#else +#define LOADSEG_12_16 0x0060 +#define FATBUF 0x2000 /* offset of temp buffer for FAT chain */ +#endif + +Entry_12_16: + jmp 1f + + . = Entry_12_16 + 0x02 + + /* The default mode is CHS. This is for maximum compatiblity with + * small-sized disks, e.g., floppies. + * + * Valid values are 0x90 for CHS mode, or 0x0e for LBA mode. + * + * If the BIOS int13 supports LBA, this byte can be safely set to 0x0e. + * + * Some USB BIOSes might have bugs when using CHS mode, so the format + * program should set this byte to 0x0e. It seems that (generally) all + * USB BIOSes have LBA support. + * + * If the format program does not know whether the BIOS has LBA + * support, it may operate this way: + * + * if (partition_start + total_sectors_in_partition) exceeds the CHS + * addressing ability(especially when it is greater than 1024*256*63), + * the caller should set this byte to 0x0e, otherwise, set to 0x90. + */ + + .byte 0x90 /* for CHS. Another possible value is 0x0e for LBA */ + + + . = Entry_12_16 + 0x03 + +#ifdef BOOTGRUB + .ascii "GRLDR " +#endif + + . = Entry_12_16 + 0x0b + + .word 0x200 /* bytes per sector */ + + . = Entry_12_16 + 0x0d + + .byte 1 /* sectors per cluster */ + + . = Entry_12_16 + 0x0e + + .word 1 /* reserved sectors */ + + . = Entry_12_16 + 0x10 + + .byte 2 /* number of FATs */ + + . = Entry_12_16 + 0x11 + + .word 224 /* Max dir entries */ + + . = Entry_12_16 + 0x13 + + .word 2880 /* total sectors in the filesystem */ + + . = Entry_12_16 + 0x15 + + .byte 0xf0 /* media descriptor */ + + . = Entry_12_16 + 0x16 + + .word 9 /* sectors per FAT */ + + . = Entry_12_16 + 0x18 + + .word 18 /* sectors per track */ + + . = Entry_12_16 + 0x1a + + .word 2 /* number of heads */ + + . = Entry_12_16 + 0x1c + + .long 0 /* hidden sectors */ + + . = Entry_12_16 + 0x20 + + .long 0 /* total sectors for large partitions */ + + . = Entry_12_16 + 0x24 + + /* drive number of the boot device. + * This byte is ignored for read. The program will write DL onto + * this byte. The caller should set drive number in DL. + * We assume all BIOSes pass correct drive number in DL. + * That is to say, buggy BIOSes are not supported!! + */ + + .byte 0 + + . = Entry_12_16 + 0x25 + + /* partition number of this filesystem in the boot drive. + * This byte is ignored for read. The boot code will write partition + * number onto this byte. See Entry_12_16 + 0x41 below. + */ + + .byte 0 + + . = Entry_12_16 + 0x26 + + .byte 0x29 /* extended boot signature */ + + . = Entry_12_16 + 0x27 + + .long 0x0AC4AF63 /* volume serial number */ + + . = Entry_12_16 + 0x2b + + .ascii "NO NAME " /* volume label */ + + . = Entry_12_16 + 0x36 + + .ascii "FAT12 " /* filesystem ID */ + +/* +; bp is initialized to 7c00h +%define bsOemName bp+0x03 ; OEM label +%define bsBytesPerSec bp+0x0b ; bytes/sector +%define bsSecPerClust bp+0x0d ; sectors/allocation unit +%define bsResSectors bp+0x0e ; # reserved sectors +%define bsFATs bp+0x10 ; # of fats +%define bsRootDirEnts bp+0x11 ; # of root dir entries +%define bsSectors bp+0x13 ; # sectors total in image +%define bsMedia bp+0x15 ; media descrip: fd=2side9sec, etc... +%define sectPerFat bp+0x16 ; # sectors in a fat +%define sectPerTrack bp+0x18 ; # sectors/track +%define nHeads bp+0x1a ; # heads +%define nHidden bp+0x1c ; # hidden sectors +%define nSectorHuge bp+0x20 ; # sectors if > 65536 +%define drive bp+0x24 ; drive number + bp+0x25 ; partition number for GRLDR +%define extBoot bp+0x26 ; extended boot signature +%define volid bp+0x27 +%define vollabel bp+0x2b +%define filesys bp+0x36 + +%define RootDirSecs bp+0x26 ; # of sectors root dir uses + ; (overwriting unused bytes) +%define fat_start bp+0x28 ; first FAT sector + ; (overwriting unused bytes) +%define root_dir_start bp+0x2c ; first root directory sector + ; (overwriting unused bytes) +%define data_start bp+0x30 ; first data sector + ; (overwriting unused bytes) +%define data_clusters bp+0x34 ; # of clusters in data area + ; (overwriting unused bytes) + bp+0x36 ; bytes per FAT( > 0x1800 means FAT16) + ; (overwriting unused bytes) +*/ + /* not used: [0x26] = byte 0x29 (ext boot param flag) + * [0x27] = dword serial + * [0x2b] = label (padded with 00, 11 bytes) + * [0x36] = "FAT12" or "FAT16",32,32,32 (not used by Windows) + * ([0x3e] is where FreeDOS parts start) + */ + + . = Entry_12_16 + 0x3e +1: + cli + cld + +#ifdef BOOTGRUB + + . = Entry_12_16 + 0x40 + + /* the byte at offset 0x41 stores the real partition number for read. + * the format program or the caller should set it to a correct value. + * For floppies, it should be 0xff, which stands for whole drive. + */ + + movb $0xff, %dh /* boot partition number */ + + cmpb $0xff, %dh /* is floppy? */ + jne 1f + movb $0, %dl /* yes, let drive number = 0 */ +1: +#endif + + xorw %ax, %ax + movw %ax, %ds + movw $0x7c00, %bp + +#ifdef BOOTGRUB + movw %ax, %es + movw %ax, %ss /* stack and BP-relative moves up, too */ + leaw -0x20(%bp), %sp + sti + movw %dx, 0x24(%bp) /* BIOS passes drive number in DL */ + /* AX=0 */ +// xchgw %ax, %dx /* let DX = 0 */ +// xorw %cx, %cx /* CX = 0 */ +#else + movw %bp, %si /* move from 0000:7c00 */ + movw %bp, %di /* move to 1fe0:7c00 */ + movb %dl, 0x24(%si) /* BIOS passes drive number in DL */ +// xchgw %ax, %dx /* let DX = 0 */ + movw $0x1fe0, %ax + movw %ax, %es + movw $0x0100, %cx /* one sector to move */ + repz movsw + /* CX = 0 */ + ljmp $0x1fe0, $(1f - Entry_12_16 + 0x7c00) +1: + movw %ax, %ds + movw %ax, %ss /* stack and BP-relative moves up, too */ + leaw -0x20(%bp), %sp + sti + /* AX=0x1fe0 */ +#endif + + movb $0x41, %ah + movw $0x55AA, %bx + int $0x13 + jc 1f /* No EBIOS */ + cmpw $0xAA55, %bx + jne 1f /* No EBIOS */ + testb $1, %cl + jz 1f /* No EBIOS */ + /* EBIOS supported */ + movb $0x42, (ebios_12_16 - 1 - Entry_12_16 + 0x7c00) +1: +// xorw %cx, %cx + xorw %ax, %ax + + /* GET DRIVE PARMS: Calculate start of some disk areas */ + + movw 0x1c(%bp), %si /* number of hidden sectors(lo) */ + movw 0x1e(%bp), %di /* number of hidden sectors(hi) */ + addw 0x0e(%bp), %si /* number of reserved sectors */ + adcw %ax, %di /* DI:SI = first FAT sector */ + /* AX = 0 */ + + movw %si, 0x28(%bp) /* FAT start sector(lo) */ + movw %di, 0x2a(%bp) /* FAT start sector(hi) */ + + //xchgw %ax, %dx /* let AX = 0 */ + movb 0x10(%bp), %al /* number of FATs */ + /* cbw */ + mulw 0x16(%bp) /* sectors per FAT */ + /* DX:AX = total number of FAT sectors */ + /* DX = 0 since no too many FAT sectors */ + addw %ax, %si + adcw %dx, %di /* DI:SI = root directory start sector */ + movw %si, 0x2c(%bp) /* root directory starting sector(lo) */ + movw %di, 0x2e(%bp) /* root directory starting sector(hi) */ + + /* Calculate how many sectors the root directory occupies */ + + movw 0x0b(%bp), %bx /* bytes per sector */ + movb $5, %cl /* divide BX by 32 */ + shrw %cl, %bx /* BX = directory entries per sector */ + + movw 0x11(%bp), %ax /* max number of root dir entries */ + /* xorw %dx, %dx */ /* assuming DX = 0 */ + divw %bx /* AX = sectors per root directory */ + /* DX = 0 since normally no residue */ + + movw %ax, 0x26(%bp) /* number of sectors the root dir occupies */ + + addw %ax, %si /* DI:SI = first data sector */ + adcw %dx, %di /* assuming DX = 0 */ + + movw %si, 0x30(%bp) /* data starting sector(lo) */ + movw %di, 0x32(%bp) /* data starting sector(hi) */ +#ifdef USE_TOTAL_CLUSTERS + movw 0x13(%bp), %cx /* total sectors(small) */ + jcxz 1f + movw %cx, 0x20(%bp) /* total sectors(large)(lo) */ + movw %dx, 0x22(%bp) /* total sectors(large)(hi), assuming DX = 0 */ +1: + movw 0x20(%bp), %ax /* total sectors(large) */ + movw 0x22(%bp), %bx + addw 0x1c(%bp), %ax /* number of hidden sectors */ + adcw 0x1e(%bp), %bx + subw %si, %ax /* data starting sector */ + sbbw %di, %bx /* BX:AX = total sectors in the data area */ + movb 0x0d(%bp), %dl /* sectors per cluster(DH=0) */ + xchgw %bx, %dx /* DX:AX = total sectors in the data area */ + /* BX = sectors per cluster */ + divw %bx /* AX = total clusters in the data area */ + movw %ax, 0x34(%bp) /* total clusters in the data area */ +#else + movw $0xffff, 0x36(%bp) + movw 0x16(%bp), %ax /* sectors per FAT */ + mulw 0x0b(%bp) /* bytes per sector */ + jc 1f + movw %ax, 0x36(%bp) +1: +#endif + /* Searches for the file in the root directory + * + * Returns: + * AX = first cluster of file + */ + + /* First, read the whole root directory into the temporary buffer */ + + movw 0x2c(%bp), %ax /* root directory starting sector(lo) */ + movw 0x2e(%bp), %dx /* root directory starting sector(hi) */ + movw 0x26(%bp), %di /* number of sectors the root dir occupies */ + lesw (loadseg_off_12_16 - Entry_12_16)(%bp), %bx + /* ES:BX = loadseg:0 */ + call readDisk_12_16 + + lesw (loadseg_off_12_16 - Entry_12_16)(%bp), %di + /* ES:DI = loadseg:0 */ + + + /* Search for kernel file name, and find start cluster */ + +1: + movw $11, %cx + movw $(filename_12_16 - Entry_12_16 + 0x7c00), %si + pushw %di + repz cmpsb + popw %di + movw %es:0x1a(%di), %ax /* get cluster number from dir entry */ + jz 1f + + addw $0x20, %di /* go to next directory entry */ + cmpb %ch, %es:(%di) /* if the first byte of the name is 0, */ + /* there is no more files in the directory */ + /* assuming CH = 0 */ + jnz 1b + movw $(msg_BootError_12_16 - Entry_12_16 + 0x7c00), %si + jmp boot_error_12_16 /* fail if not found */ + +#ifndef ALTERNATIVE_KERNEL +loadseg_off_12_16: .word 0 +loadseg_seg_12_16: .word LOADSEG_12_16 +#endif + +1: + pushw %ax /* store first cluster number */ + /* CX = 0 */ + + + /* Reads the FAT chain and stores it in a temporary buffer in the first + * 64KB. The FAT chain is stored an array of 16-bit cluster numbers, + * ending with 0. + * + * The file must fit in conventional memory, so it can't be larger than + * 640KB. The sector size must be at least 512 bytes, so the FAT chain + * can't be larger than around 3KB. + * + * Call with: AX = first cluster in chain + */ + + /* Load the complete FAT into memory. The FAT can't be larger + * than 128 kb, so it should fit in the temporary buffer. + */ + + lesw (loadseg_off_12_16 - Entry_12_16)(%bp), %bx + /* ES:BX = loadseg:0 */ + movw 0x16(%bp), %di /* sectors per FAT */ + movw 0x28(%bp), %ax /* FAT start sector(lo) */ + movw 0x2a(%bp), %dx /* FAT start sector(hi) */ + call readDisk_12_16 + popw %ax /* restore first cluster number */ + + /* Set ES:DI to the temporary storage for the FAT chain */ + pushw %ds + popw %es + movw (loadseg_seg_12_16 - Entry_12_16)(%bp), %ds + movw $FATBUF, %di + +2: + stosw /* store cluster number */ + movw %ax, %si /* SI = cluster number */ + addw %si, %si /* multiply cluster number by two */ + movw (loadseg_seg_12_16 - Entry_12_16)(%bp), %dx + /* segment for FAT16 */ + jnc 1f + addb $0x10, %dh /* overflow. Add 0x1000 to segment value */ +1: + +#ifdef USE_TOTAL_CLUSTERS + cmpw $0x0ff7, 0x34(%bp) /* total clusters in the data area */ +#else + cmpw $0x1801, 0x36(%bp) /* bytes per FAT */ +#endif + jnb 3f + + /* This is a FAT12 disk */ + + addw %ax, %si /* multiply cluster number by 3 ... */ + shrw $1, %si /* ... and divide by 2 */ + lodsw + + /* If the cluster number was even, the cluster value is now in + * bits 0-11 of AX. If the cluster number was odd, the cluster + * value is in bits 4-15, and must be shifted right 4 bits. If + * the number was odd, CF was set in the last shift instruction. + */ + + jnc 1f + movb $4, %cl + shrw %cl, %ax +1: + andb $0x0f, %ah /* mask off the highest 4 bits */ + cmpw $0x0ff7, %ax /* check for EOF */ + jmp 4f + +3: + /* This is a FAT16 disk. The maximal size of a 16bit FAT + * is 128KB, so it may not fit within a single 64KB segment + */ + + movw %dx, %ds /* DS:SI points to next cluster */ + lodsw /* AX = next cluster */ + + cmpw $0xfff7, %ax /* check for EOF */ +4: + jbe 2b /* continue if not EOF */ + + /* Mark end of FAT chain with 0, so we have a single + * EOF marker for both FAT12 and FAT16 systems. + */ + + xorw %ax, %ax + stosw + + pushw %cs + popw %ds + + /* Loads the file into memory, one cluster at a time */ + + lesw (loadseg_off_12_16 - Entry_12_16)(%bp), %bx + /* ES:BX = loadseg:0 */ + movw $FATBUF, %si /* set DS:SI to the FAT chain */ + +2: + lodsw /* AX = next cluster to read */ + orw %ax, %ax + jnz 1f + + /* EOC encountered - done */ +#ifdef BOOTGRUB + movw 0x24(%bp), %dx /* boot_drive and boot_partition */ +#else + movb 0x24(%bp), %bl /* FreeDOS kernel uses BL, not DL, for drive */ +#endif + ljmp *(loadseg_off_12_16 - Entry_12_16)(%bp) /* boot it! */ + +1: + decw %ax /* cluster numbers start with 2 */ + decw %ax + + movw 0x0d(%bp), %di /* sectors per cluster */ + andw $0xff, %di /* DI = sectors per cluster */ + mulw %di + addw 0x30(%bp), %ax /* data starting sector(lo) */ + adcw 0x32(%bp), %dx /* data starting sector(hi) */ + /* DX:AX = first sector to read */ + call readDisk_12_16 + jmp 2b /* read next cluster */ + +/* Reads a number of sectors into memory. + * + * Call with: DX:AX = 32-bit DOS sector number + * DI = number of sectors to read + * ES:BX = destination buffer + * + * Returns: CF set on error + * ES:BX points one byte after the last byte read. + * DX:AX = next sector number after read + */ + +readDisk_12_16: +2: + pushaw + xorw %cx, %cx + pushw %cx + pushw %cx + pushw %dx + pushw %ax + pushw %es /* buffer segment */ + pushw %bx /* buffer offset */ + incw %cx + pushw %cx /* 1 sector to read */ + movb $16, %cl + pushw %cx /* size of this parameter block */ + + xchgw %ax, %cx /* save AX to CX */ + + /* + * translate sector number to BIOS parameters + * + * LBA = sector-1 offset in track + * + head * sectPerTrack offset in cylinder + * + cyl * sectPerTrack * nHeads offset in platter + * + */ + pushw %bx + movw 0x18(%bp), %ax /* sectors per track */ + movw %ax, %bx + mulb 0x1a(%bp) /* nHeads, but maybe a word value 0x100 */ + jnz 1f + movb %bl, %ah /* nHeads=0x100, so AX=sectPerTrack*0x100 */ +1: + xchgw %ax, %cx /* restore AX from CX, and save AX to CX */ + /* DX:AX = LBA, CX = nHeads * sectPerTrack <= 256*63 */ + divw %cx /* AX = cyl, DX = sector-1 + head * sectPerTrack */ + xchgw %ax, %dx /* DX = cyl, AX = sector-1 + head * sectPerTrack */ + divb %bl /* sectors per track */ + /* DX = cyl, AL = head, AH = sector-1 */ +#if 1 + xchgb %al, %ah /* DX = cyl, AH = head, AL = sector-1 */ + incw %ax /* DX = cyl, AH = head, AL = sector */ + xchgw %ax, %dx /* AX = cyl, DH = head, DL = sector */ + xchgw %ax, %cx /* CX = cyl, DH = head, DL = sector */ + xchgb %cl, %ch /* set cyl number low 8 bits in CH */ + rorb $1, %cl /* move cyl high bits into bits 7-6 */ + rorb $1, %cl /* (assumes top = 0) */ + orb %dl, %cl /* merge sector into cylinder */ +#else + movw %dx, %cx /* CX = cyl, AL = head, AH = sector-1 */ + + /* + * the following manipulations are necessary in order to properly place + * parameters into registers. + * CH = cylinder number low 8 bits + * CL<7-6> = cylinder high two bits + * CL<5-0> = sector + */ + movb %al, %dh /* save head into DH for BIOS */ + xchgb %cl, %ch /* set cyl number low 8 bits in CH */ + rorb $1, %cl /* move cyl high bits into bits 7-6 */ + rorb $1, %cl /* (assumes top = 0) */ + incb %ah /* AH = sector number */ + orb %ah, %cl /* merge sector into cylinder */ +#endif + popw %bx + + movw $0x0201, %ax /* read 1 sector */ +ebios_12_16: /* ebios_12_16 - 1 points to 0x02 that can be changed to 0x42 */ + +// cmpb $0x0e, 2(%bp) /* force LBA? */ +// jnz 1f /* no, continue */ +// movb $0x42, %ah /* yes, use extended disk read */ +//1: + movw %sp, %si /* DS:SI points to disk address packet */ + movb 0x24(%bp), %dl /* drive number */ + int $0x13 +// stc #; only for testing the buggy Virtual PC + popaw /* remove parameter block from stack */ + popaw + jc disk_error_12_16 /* disk read error, jc 1f if caller handles */ + incw %ax /* next sector */ + jnz 1f + incw %dx +1: + addw 0x0b(%bp), %bx /* bytes per sector */ + jnc 1f /* 64K bound check */ + pushw %dx + movw %es, %dx + addb $0x10, %dh /* add 1000h to ES */ + /* here, carry is cleared */ + movw %dx, %es + popw %dx +1: + decw %di + jnz 2b + + /* carry stored on disk read error */ + ret + + . = . - (. - readDisk_12_16)/99 + +msg_DiskReadError_12_16: + + .ascii "disk error\0" + +msg_BootError_12_16: + + .ascii "No " + +filename_12_16: + +#ifdef BOOTGRUB + .ascii "GRLDR \0" +#else + .ascii "KERNEL SYS\0" +#endif + +#ifdef ALTERNATIVE_KERNEL +filename_end_12_16: + + . = Entry_12_16 + 0x1e8 + +loadseg_off_12_16: .word 0 +loadseg_seg_12_16: .word LOADSEG_12_16 + + . = Entry_12_16 + 0x1ec + +boot_image_ofs_12_16: + + .word (filename_12_16 - Entry_12_16)+(filename_end_12_16 - filename_12_16 - 1)*2048 +#endif + + . = Entry_12_16 + 0x1ee + +disk_error_12_16: + + movw $(msg_DiskReadError_12_16 - Entry_12_16 + 0x7c00), %si + +boot_error_12_16: + +/* prints string DS:SI (modifies AX BX SI) */ + +//print_12_16: +1: + lodsb (%si), %al /* get token */ + //xorw %bx, %bx /* video page 0 */ + movb $0x0e, %ah /* print it */ + int $0x10 /* via TTY mode */ + cmpb $0, %al /* end of string? */ + jne 1b /* until done */ + + /* The caller will change this to + * ljmp $0x9400, $(try_next_partition - _start1) + */ + +1: jmp 1b + + . = Entry_12_16 + 0x1fc + + .word 0, 0xAA55 /* Win9x uses all 4 bytes as magic value here */ + + . = Entry_12_16 + 0x200 + + . = _start1 + 0x800 + + + + + .arch i486, nojumps + +/* + #; Ext2 boot sector for GRLDR + */ + + +#define DEBUG call debug_print +#undef DEBUG + + //. = _start1 + 0x800 + +Entry_ext2: + + jmp 1f + + . = Entry_ext2 + 0x02 + + /* The default mode is CHS. This is for maximum compatiblity with + * small-sized disks, e.g., floppies. + * + * Valid values are 0x02 for CHS mode, or 0x42 for LBA mode. + * + * If the BIOS int13 supports LBA, this byte can be safely set to 0x42. + * + * Some USB BIOSes might have bugs when using CHS mode, so the format + * program should set this byte to 0x42. It seems that (generally) all + * USB BIOSes have LBA support. + * + * If the format program does not know whether the BIOS has LBA + * support, it may operate this way: + * + * if (partition_start + total_sectors_in_partition) exceeds the CHS + * addressing ability(especially when it is greater than 1024*256*63), + * the caller should set this byte to 0x42, otherwise, set to 0x02. + */ + + .byte 0x02 /* for CHS. Another possible value is 0x42 for LBA */ + + . = Entry_ext2 + 0x03 + +#if 0 + + .ascii "ext2 grldr" + +#else + +msg_DiskReadError_ext2: + + .ascii "I/O error\0" + +#endif + + . = Entry_ext2 + 0x0d + + /* sectors per block. Valid values are 2, 4, 8, 16, 32. */ + + .byte 2 + + . = Entry_ext2 + 0x0e + + /* bytes per block. + * Valid values are 0x400, 0x800, 0x1000, 0x2000, 0x4000. + */ + + .word 1024 /* bytes per block, at most 16K */ + + . = Entry_ext2 + 0x10 + + /* pointers in pointers-per-block blocks, that is, number of blocks + * covered by a double-indirect block. + * Valid values are 0x10000, 0x40000, 0x100000, 0x400000, 0x1000000. + */ + + .long 0x10000 /* number of blocks covered by double-indirect block */ + /* low word=0 */ + + . = Entry_ext2 + 0x14 + + /* pointers per block, that is, number of blocks covered by an indirect + * block. Valid values are 0x100, 0x200, 0x400, 0x800, 0x1000. + */ + + .long 0x100 /* high word=0, low byte=0 */ + + . = Entry_ext2 + 0x18 + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .word 18 /* sectors per track */ + + . = Entry_ext2 + 0x1a + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .word 2 /* number of heads */ + + . = Entry_ext2 + 0x1c + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .long 0 /* hidden sectors */ + + . = Entry_ext2 + 0x20 + + /* total sectors in the filesystem(or in the partition). + * This value is informative. The code does not use it. + */ + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .long 2880 + + . = Entry_ext2 + 0x24 + + /* This byte is ignored for read. The program will write DL onto + * this byte. The caller should set drive number in DL. + * We assume all BIOSes pass correct drive number in DL. + * That is to say, buggy BIOSes are not supported!! + */ + + .byte 0 /* drive number */ + + . = Entry_ext2 + 0x25 + + /* this is default for floppies, the caller should set it to + * a correct value for hard-drive partitions */ + + .byte 0xff /* partition number, 0xff for whole drive */ + + . = Entry_ext2 + 0x26 + + .word 0x80 /* inode size */ + + . = Entry_ext2 + 0x28 + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .long 2048 /* s_inodes_per_group */ + + . = Entry_ext2 + 0x2c + + /* block number for group descriptors = s_first_data_block + 1. + * Valid values are 2 for 1024-byte blocks, and 1 for otherwise. + */ + + /* this is default for 1.44M floppy, the caller should set it to + * a correct value */ + + .long 2 /* block number for group descriptors */ + + . = Entry_ext2 + 0x30 +1: + cld /* 0xFC */ + + xorw %ax, %ax /* 0x31, 0xC0; CF=0, ZF=1 */ + + /* this byte `nop' will be changed to `cwd' by bootlace for floppy */ + nop /* 0x90=nop, 0x99=cwd */ + /* cwd will set DL=0 forcibly for floppy A: */ + + movw %ax, %ss /* constant SS=0 */ + movw $0x7c00, %sp + + movw %sp, %bp /* constant BP=0x7c00 */ + movw %ax, %ds /* constant DS=0 */ + + pushw %ax /* 0x0000 at 0000:7bfe */ + movw $0x1000, %bx + pushw %bx /* 0x1000 at 0000:7bfc */ + pushw %ax /* 0x0000 at 0000:7bfa */ + /* SP=0x7bfa */ + + /* the 6 bytes in the stack are used by read_block(): + * 0000 ---- -2(%bp) + * 1000 ---- -4(%bp) + * 0000 ---- -6(%bp) + * Don't touch them! + */ + + movb %dl, 0x24(%bp) /* BIOS passes drive number in DL */ + + movb $0x41, %ah + movw $0x55AA, %bx + int $0x13 +#if 0 + jnc 1f + /* No EBIOS */ + movb $0x02, (ebios_ext2 - 1 - Entry_ext2 + 0x7c00) +#else + jc 1f #; No EBIOS + + //testb $1, %cl + //jz 1f #; No EBIOS +#if 0 + /* gcc-4.0.1 does not generate 2-byte code. */ + rcrb $1, %cl #; also can be rorb $1, %cl +#else + .byte 0xD0, 0xD9 #; ror cl: D0 C9 +#endif + jnc 1f #; No EBIOS + + movb $0x42, (ebios_ext2 - 1 - Entry_ext2 + 0x7c00) +#endif +1: + xorl %eax, %eax /* CF=0, ZF=1 */ + +#if 0 + /* the INC touches ZF flag, so use MOV instead */ + + incw %ax + incw %ax /* EAX=2=inode number for root dir */ +#else + + /* MOV keeps all flags untouched, so it is better than INC */ + + movb $2, %al /* EAX=2=inode number for root dir */ +#endif + + /* CF=0, ZF=1 because MOV and PUSH do not touch Flags */ + + /* read root dir to 0000:1000, and grldr to 1000:0000 */ + +4: + /* EAX holds the inode number: for root dir or grldr */ + + /* These 3 PUSHes is intended to place 1000:0000 onto the stack for + * grldr. For root dir, the stack is not used since CF is cleared. + * Although there is no corresponding POPs, this is safe enough + * because the program comes here only twice: the first is for + * the root dir, and the second is for grldr. + * + * For root dir, CF=0 and ZF=1. For grldr, CF=1. + */ + + pushw %di /* 0x1000, see "jz 4b" below. */ + pushw %ss /* 0x0000 */ + pushfw + + /* SP=0x7bf4 for root dir, or 0x7bee for grldr */ + + decl %eax /* EAX=(inode - 1) */ + + /* inode numbers are far less than 0x7fffffff, so it is safe to + * initialise EDX with CDQ */ + + cdq /* let EDX=0 */ + + divl 0x28(%bp) /* s_inodes_per_group */ + /* EAX=group number */ + pushl %edx /* EDX=inode number in the group */ + + /* group numbers are far less than 0x7fffffff, so it is safe to + * initialise EDX with CDQ */ + + cdq /* let EDX=0 */ + shll $5, %eax /* EAX=relative displacement of the group descriptor */ + divl 0x0e(%bp) /* bytes per block */ + /* EAX=relative block number for the group descriptor */ + /* DX=displacement in the block */ + /* EDX high=0 */ + + pushw %dx /* we don't care about EDX high word, because it is 0 */ + + addl 0x2c(%bp), %eax /* EAX=absolute block number for the group descriptor */ + /* CF=0, ZF=0 */ + + call read_block /* 0000:1000 points to the block data containing the group descriptor */ + /* ES changed and > 0, BX=0x1000 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ + + popw %si /* DS:[BX+SI] points to the group descriptor */ + /* DS:[BX+SI+8] points to the starting block number of the group inode table */ + + popl %eax /* inode number in the group */ +// shll $7, %eax /* inode struct size = 0x80 */ +// /* EAX=relative displacement of the inode struct */ +// /* EDX=0 */ + movw 0x26(%bp), %dx /* EDX=inode size */ + mull %edx /* EDX:EAX=relative displacement of the inode struct */ + + divl 0x0e(%bp) /* bytes per block */ + /* EAX=relative block number for the inode struct */ + pushw %dx /* DX=displacement of the inode struct in the block */ + /* EDX high=0 */ + + addl 8(%bx, %si), %eax /* EAX=absolute block number for the inode struct */ + /* CF=0, ZF=0 */ + + call read_block /* 0000:1000 points to the block data containing the inode struct */ + /* ES changed and > 0, BX=0x1000 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ + + popw %si /* DS:[BX+SI] points to the inode struct */ + + addw %bx, %si /* DS:SI points to the inode struct */ + + /* Move the inode struct to a known safe area(0000:0fa8 - 0000:0fff), + * that is, 0x58 bytes immediately before 0000:1000. We care about only + * the beginning 0x58 bytes of the 0x80-byte inode struct, the last + * 0x28 bytes are ignored. The area from 0xfa8+0x28 to 0xfa8+0x57 + * stores 12 direct block pointers. + * + * + * At address Initial value Stores what? + * ========== ============= ====================================== + * 0xfa8+0x04 (const) the size of the file in bytes + * + * 0xfa8+0x08 total blocks blocks left to read + * + * 0xfa8+0x0c 0 serial number of the block to read + * + */ + + pushw %ss + popw %es /* ES=0 */ + + leaw -0x58(%bx), %di /* BX=0x1000, so DI=0x0fa8 */ + //movw $0x0fa8, %di + movb $0x2c, %cl /* 0x2c words = 0x58 bytes */ + + repz movsw /* now ECX=0, BX=0x1000=DI */ + + movl %ecx, (0x0c - 0x58)(%di) /* block serial number of the file */ + /* ECX=0 means first block */ + /* DI=0x1000 */ + + movl (0x04 - 0x58)(%di), %eax /* i_size, the file size */ + decl %eax + + divl 0x0e(%bp) /* bytes per block */ + /* EDX=various */ + incl %eax + movl %eax, (0x08 - 0x58)(%di) /* total blocks for file data */ + + /* + * 0000:1000 trebly indirect block + * 0000:8000 indirect block + * 0000:c000 double indirect block + * 1000:0000 the file data + */ + + /* now DS:SI points to indirect block number */ + + lodsl /* indirect block number */ + testl %eax, %eax + jz 1f + + //pushw %ss + //popw %es /* ES=0 */ + movb $0x80, %bh /* ES:BX=0000:8000 */ +#if 0 + stc + call read_block +#else + call read_block_c +#endif + /* ES changed and > 0, BX=0x8000 */ + /* ECX=EDX=0 */ + /* ZF=0, CF=0 */ + + /* now DS:SI points to double indirect block number */ + + lodsl /* double indirect block number */ + testl %eax, %eax + jz 1f + +#if 0 + pushw %ss + popw %es /* ES=0 */ + movb $0xc0, %bh /* ES:BX=0000:c000 */ + stc + call read_block +#else + movb $0xc0, %bh /* ES:BX=0000:c000 */ + call read_block_c +#endif + /* ES changed and > 0, BX=0xc000 */ + /* ECX=EDX=0 */ + /* ZF=0, CF=0 */ + + /* now DS:SI points to trebly indirect block number */ + + lodsl /* trebly indirect block number */ + testl %eax, %eax /* CF=0, TEST always clears CF */ + jz 1f + /* ZF=0 */ + //pushw %ss + //popw %es /* ES=0 */ + //movb $0x10, %bh /* ES:BX=0000:1000 */ + //stc + call read_block /* 0000:1000 points to the block data */ + /* ES changed and > 0, BX=0x1000 */ + /* ECX=EDX=0 */ + /* ZF=0, CF=0 */ + + /* the block at 0000:1000, which contains the indirect block numbers, + * is just overwritten by the trebly indirect block */ + +1: + /* get absolute block number by block serial number */ + + movl (0x0c - 0x58)(%di), %ebx /* block serial number of the file */ + subl $12, %ebx + jc 3f /* direct block: block serial number < 12 */ + + pushw %bx + subl 0x14(%bp), %ebx + popw %ax + jnc 2f + + /* indirect block: 12 <= block serial number < 12 + 0x14(%bp) */ + + //addw 0x14(%bp), %bx + addb $(0x70 / 4), %ah + //xchgw %ax, %bx + jmp 8f + +2: + pushl %ebx + subl 0x10(%bp), %ebx + jc 7f /* EBX on the stack is < 0x10(%bp). double indirect block: + * 12 + 0x14(%bp) <= block serial number < 12 + 0x14(%bp) + 0x10(%bp) + */ + + /* trebly indirect block: block serial number >= 12 + 0x14(%bp) + 0x10(%bp) */ + + popl %eax /* discard the stack */ + xchgl %eax, %ebx /* move EBX to EAX */ + /* EDX=0 */ + divl 0x10(%bp) + /* EAX=indirect block number, < 0x14(%bp) */ + /* EDX=block number, < 0x10(%bp) */ + + pushl %edx /* EDX < 0x10(%bp) */ + testl %edx, %edx + jnz 7f + + /* EDX=0, so we need to load the double indirect block */ + + shlw $2, %ax + xchgw %ax, %bx + + /* get the double indirect block number from the trebly indirect + * block data */ + + movl (%bx, %di), %eax + +//6: + movw $0xc000, %bx /* ES:BX=0000:c000 */ + + //pushw %ss + //popw %es /* ES=0 */ + //stc + call read_block_c /* 0000:c000 points to the block data */ + /* ES changed and > 0, BX=0xc000 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ +7: + popl %eax /* EAX < 0x10(%bp) */ + cdq /* let EDX=0 (notice the above jc 7f and jnz 7f) */ + divl 0x14(%bp) + /* EAX=indirect block number, < 0x14(%bp) */ + /* EDX=block number, < 0x14(%bp) */ + + pushw %dx /* EDX < 0x14(%bp) */ + testw %dx, %dx + jnz 7f + + /* if DX=0, we need to load the indirect block */ + + //addb $(0xb0 / 4), %ah + shlw $2, %ax + xchgw %ax, %bx + + /* get the indirect block number from the double indirect block data */ + + movl 0xb000(%bx, %di), %eax + //movl (%bx, %di), %eax +//5: + movw $0x8000, %bx /* ES:BX=0000:8000 */ + + //pushw %ss + //popw %es /* ES=0 */ + //stc + call read_block_c /* 0000:8000 points to the block data */ + /* ES changed and > 0, BX=0x8000 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ +7: + popw %ax /* AX < 0x14(%bp) */ +8: + xchgw %ax, %bx +3: + shlw $2, %bx + movl (%bx, %di), %eax + + /* got it! EAX=absolute block number */ + + /* read block data to 1000:0000. For root dir, read each block to + * 1000:0000(overwrite the previous read). For grldr, read blocks + * one by one to the area starting at 1000:0000. + */ + + popfw + popw %bx + popw %es + pushfw + + /* CF=0 and ZF=1 for reading root dir, CF=1 for reading grldr */ + + call read_block /* 1000:0000 points to the block data */ + /* ES changed and > 0x1000, BX=0 */ + /* ECX=EDX=0 */ + /* CF=0, ZF=0 */ + + popfw + pushw %es + pushw %bx + pushfw + + jc 3f /* CF=1, we are reading grldr */ + + /* We have just read a block of the root dir to 1000:0000. + * So we check all dir entries in the block to see if anyone + * matches grldr. + */ + + xorw %si, %si + pushw %ss + popw %es /* ES=0 */ + +2: + pushw %ds /* DS=0 */ + movw %di, %ds /* DS=0x1000 */ + movw $(filename_ext2 - Entry_ext2 + 0x7c00), %di + + pushw %si + lodsl /* This is possible inode number for grldr */ + pushl %eax /* This is possible inode number for grldr */ + lodsw + xchgw %ax, %dx /* rec_len */ + lodsw /* AL=name_len, should be 5 for grldr */ + /* AH=file_type(1 for regular file) */ +#if 0 + cmpw $0x0105, %ax + jnz 5f + movb %al, %cl /* CH is already 0 */ + repz cmpsb +#else + decb %ah + //jnz 5f + xchgw %ax, %cx /* CX=name_len */ + repz cmpsb + jnz 5f + xchgw %ax, %cx /* movb $0, %al */ + scasb +#endif +5: + popl %eax /* This is possible inode number for grldr */ + popw %si + + /* DS=0x1000, EAX=inode number */ + + movw %ds, %di /* DI=0x1000 */ + popw %ds /* DS=0 */ + + stc /* indicates the new inode is for grldr */ + + jz 4b /* grldr is found with EAX=inode number */ + + addw %dx, %si + cmpw 0x0e(%bp), %si /* bytes per block */ + jb 2b + + /* file not found in this block, continue */ + + /* We are lucky that CF=0, which indicates we are dealing with + * the root dir. + */ + +3: + + /* CF=1 for grldr, CF=0 for root dir. */ + + incl (0x0c - 0x58)(%di) + decl (0x08 - 0x58)(%di) + jnz 1b + +#if 0 + /* The above 2 instructions INC and DEC do not touch CF, so we + * can omit this POP-PUSH pair. + */ + + popfw + pushfw +#endif + + movw $(msg_No_grldr_ext2 - Entry_ext2 + 0x7c00), %si + + jnc boot_error_ext2 /* grldr not found in the root dir */ + + /* All grldr blocks have been loaded to memory starting at 1000:0000, + * Before the boot, we pass boot_drive and boot_partition to grldr. + */ + + /* ES>0x1000, BX=0, ECX=EDX=0, DI=0x1000, SS=0, SI>0x7c00, DS=0 + * BP=0x7c00, SP<=0x7c00 + */ + + movw 0x24(%bp), %dx + + /* boot it now! */ + + pushw %di /* 0x1000 */ + pushw %ss /* 0x0000 */ + lret + +read_block_c: + + pushw %ss + popw %es /* ES=0 */ + stc + +/* read_block - read a block + * input: CF - indicator for overlap or consecution + * EAX = block number + * ES:BX - buffer + * + * output: if CF is cleared on input, ES:BX is initialized to 0000:1000 + * ES:BX - buffer filled with data + * ES, EAX - Changed + * ECX = 0 + * EDX = 0 + * ZF = 0 + * CF = 0 + */ + +read_block: + + jc 1f + + .byte 0xC4, 0x5E, 0xFC /* lesw -4(%bp), %bx */ + /* ES:BX=0000:1000 */ + jnz 1f + + //at this time, the gcc cannot generate 3 byte code + .byte 0xC4, 0x5E, 0xFA /* lesw -6(%bp), %bx */ + /* ES:BX=1000:0000 */ + //. = . - (. - read_block) / 6 +1: + movzbl 0x0d(%bp), %ecx /* CX=sectors per block */ + /* ECX high=0 */ + . = . - (. - 1b) / 6 + mull %ecx /* EAX=relative sector number */ + /* EDX=0 */ + . = . - (. - 1b) / 9 + addl 0x1c(%bp), %eax /* EAX=absolute sector number */ + +#if 1 + /* pass through, saving 4 bytes(call and ret) */ +#else + call readDisk_ext2 + ret +#endif + +/* Read sectors from disk, using LBA or CHS + * input: EAX = 32-bit LBA sector number + * CX = number of sectors to read + * ECX high word = 0 + * ES:BX = destination buffer + * + * output: No return on error + * BX not changed + * ES = ES + 0x20 * CX + * EAX = EAX + CX + * ZF = 0 + * CF = 0 + */ + +readDisk_ext2: +2: + pushal + //xorl %edx, %edx /* EDX:EAX = LBA */ + pushl %edx /* hi 32bit of sector number */ + pushl %eax /* lo 32bit of sector number */ + pushw %es /* buffer segment */ + pushw %bx /* buffer offset */ + pushw $1 /* 1 sector to read */ + pushw $16 /* size of this parameter block */ + + //xorl %ecx, %ecx + pushl 0x18(%bp) /* lo:sectors per track, hi:number of heads */ + popw %cx /* ECX = sectors per track */ + divl %ecx /* residue is in EDX */ + /* quotient is in EAX */ + /* EDX high=0, DH=0 */ + incw %dx /* DL=sector number */ + popw %cx /* ECX = number of heads */ + pushw %dx /* push sector number into stack */ + xorw %dx, %dx /* EDX:EAX = cylinder * TotalHeads + head */ + divl %ecx /* residue is in EDX, head number */ + /* quotient is in EAX, cylinder number */ + /* EDX high=0, EAX high=0 */ + + + xchgb %dl, %dh /* head number should be in DH */ + /* DL = 0 */ + popw %cx /* pop sector number from stack */ + xchgb %al, %ch /* lo 8bit cylinder should be in CH */ + /* AL = 0 */ + shlb $6, %ah /* hi 2bit cylinder ... */ + orb %ah, %cl /* ... should be in CL */ + + incw %ax /* AL=1, read 1 sector */ + + /* Instead of 0x0e, the LBA indicator at 2(%bp) is + * + * 0x42 for LBA + * + * and + * + * 0x02 for CHS + */ +#if 0 + movb $0x42, %ah + /* ebios_ext2 - 1 points to 0x42 that can be changed to 0x02 */ +#else + movb $0x02, %ah + /* ebios_ext2 - 1 points to 0x02 that can be changed to 0x42 */ +#endif +ebios_ext2: + + //andb 2(%bp), %ah + + movw %sp, %si /* DS:SI points to disk address packet */ + movb 0x24(%bp), %dl /* drive number */ + int $0x13 + jc disk_error_ext2 + movw %es, %ax + addw $0x20, %ax /* here, carry is cleared */ + movw %ax, %es + popaw /* remove parameter block from stack */ + popal + incl %eax /* next sector, here ZF=0 */ + loop 2b + ret + + //. = . - (. - readDisk_ext2)/74 + +//msg_DiskReadError_ext2: +// +// .ascii "disk error\0" + +msg_No_grldr_ext2: + + .ascii "No " + +filename_ext2: + .ascii "grldr\0" + + . = Entry_ext2 + 0x1ee + +filename_end_ext2: + + .word (filename_ext2 - Entry_ext2)+(filename_end_ext2 - filename_ext2 - 1)*2048 + + . = Entry_ext2 + 0x1f0 + +disk_error_ext2: + + movw $(msg_DiskReadError_ext2 - Entry_ext2 + 0x7c00), %si + +boot_error_ext2: + +/* prints string DS:SI (modifies AX BX SI) */ + +//print_ext2: +1: + lodsb (%si), %al /* get token */ + //xorw %bx, %bx /* video page 0 */ + movb $0x0e, %ah /* print it */ + int $0x10 /* via TTY mode */ + cmpb $0, %al /* end of string? */ + jne 1b /* until done */ +#if 1 + + /* The caller will change this to + * ljmp $0x9400, $(try_next_partition - _start1) + */ + +1: jmp 1b + +#else + /* boot failed, try to hand over the control to supervisor */ + ldsw (1f + 3 - Entry_ext2)(%bp), %si + lodsl + cmpl $0x9400b8fa, %eax +1: jnz 1b /* no supervisor, hang up. */ + ljmp $0x9400, $(try_next_partition - _start1) + + //. = . - (. - disk_error_ext2) / 30 +#endif + + . = Entry_ext2 + 0x1fe + + .word 0xAA55 + + . = _start1 + 0xA00 + +#define INSIDE_GRLDR + +#include "ntfsbs.S" + + . = _start1 + 0x1200 + + .arch i586, jumps + +#ifdef DEBUG + + . = Entry_ext2 + 0x201 + +debug_print: + + pushfl + pushal + movl %eax, %ebp + call 2f +#if 0 + popal + pushal + movl %ebx, %ebp + call 2f + popal + pushal + movl %ecx, %ebp + call 2f + popal + pushal + movl %edx, %ebp + call 2f + popal + pushal + movl %esi, %ebp + call 2f + popal + pushal + movl %edi, %ebp + call 2f + popal + popfl + pushfl + pushal + pushfl + popl %ebp /* flags */ + call 2f + movw %ds, %bp + shll $16, %ebp + movw %es, %bp + call 2f + movw $0x0e0d, %ax /* print CR */ + int $0x10 /* via TTY mode */ + movw $0x0e0a, %ax /* print LF */ + int $0x10 /* via TTY mode */ +#endif + popal + popfl + ret +2: + movw $7, %cx +1: + xorw %bx, %bx /* video page 0 */ + movl %ebp, %eax + shrl %cl, %eax + shrl %cl, %eax + shrl %cl, %eax + shrl %cl, %eax + andb $0x0f, %al + addb $0x30, %al + movb $0x0e, %ah /* print char in AL */ + int $0x10 /* via TTY mode */ + + decw %cx + testw %cx, %cx + jns 1b + + movw $0x0e20, %ax /* print space */ + int $0x10 /* via TTY mode */ + ret +#endif + +#if 1 + /* restore GRLDR_CS */ + + /* this code is executed at 0000:MONITOR, which must be a 16-byte + * aligned address. The address 0000:MONITOR should be designed in + * a way that could avoid memory confliction with volume boot records + * (currently FAT12/16/32/NTFS/EXT2/3 are built in). + */ + + /* CS=code */ + + .align 16 + +restore_GRLDR_CS: +2: + call 1f +1: + popw %bx # instruction pointer of 1b + movw %cs, %ax + shrw $4, %bx + addw %ax, %bx # BX=segment value of this code + pushw %bx + pushw $(1f - 2b) + lret +1: + /* modify gdt base */ + xorl %eax, %eax + movw %bx, %ax + shll $4, %eax + addl $(gdt -2b), %eax + movl %eax, %cs:(gdt - 2b + 2) + + movw $GRLDR_CS, %bx + movw %bx, %es + movw %ds, %bx # save old DS to BX + + cli + lgdt %cs:(gdt - 2b) + movl %cr0, %eax + orb $1, %al + movl %eax, %cr0 + + movw $8, %si + movw %si, %ds + + xorl %esi, %esi + xorl %edi, %edi + movl $(0x9000 / 4), %ecx + + cld + repz movsl + + movw $16, %si + movw %si, %ds + + andb $0xfe, %al + movl %eax, %cr0 + + movw %bx, %ds # restore DS from BX + + ljmp $GRLDR_CS, $(try_next_partition - _start1) + +#endif + +# Descriptor tables +# +# NOTE: The intel manual says gdt should be sixteen bytes aligned for +# efficiency reasons. However, there are machines which are known not +# to boot with misaligned GDTs, so alter this at your peril! If you alter +# GDT_ENTRY_BOOT_CS (in asm/segment.h) remember to leave at least two +# empty GDT entries (one for NULL and one reserved). +# +# NOTE: On some CPUs, the GDT must be 8 byte aligned. This is +# true for the Voyager Quad CPU card which will not boot without +# This directive. 16 byte aligment is recommended by intel. +# + .align 16 +gdt: + /* this is the default null entry in GDT */ + .word gdt_end - gdt - 1 # gdt limit + .long (GRLDR_CS * 16 + gdt - _start1) # linear address of gdt + .word 0 # pad 2 bytes + + /* real mode data segment base=0x200000 */ + .word 0xFFFF, 0 + .byte 0x20, 0x92, 0, 0 + + /* real mode data segment base=0 */ + .word 0xFFFF, 0 + .byte 0, 0x92, 0, 0 + +gdt_end: + +helper_start: + + /* helper function begins here + * before the call: + * CF=1 : indicates an invalid or corrupt entry + * CF=0 : indicates a valid entry + * + * on return: + * CF=1 : means "below", try next entry + * CF=0,ZF=1 : means "equal", helper did nothing, so we need + * a further try to boot via NT bootsector + * CF=0,ZF=0 : means "above", helper succeeded, boot it now + */ + + sti + + /* DS=SS=0x9400 */ + pushw %cs + popw %ds + + pushw $FS_BOOT + popw %es + + /* ES=FS_BOOT */ + + /* Format of partition information blocks. + * + * Offset Length in bytes Field + * 00h 1 Set to 80h if this partition is active. + * 01h 1 Partition's starting head. + * 02h 2 Partition's starting sector and track. + * 04h(SI) 1 Partition's ID number. + * 05h 1 Partition's ending head. + * 06h 2 Partition's ending sector and track. + * 08h 4 Starting LBA. + * 0Ch 4 Partition's length in sectors. + */ + + pushw %ds /* DS=0x9400 */ + pushw %es /* ES=FS_BOOT */ + pushal + pushfw + + //pushw %si + //stc + //jc invalid_or_null /* invalid or null entry */ +#if 0 + /* backup 63 sectors at FS_BOOT:0 to 63 sectors at FS_BOOT:8000 + * this piece of code is no longer useful. + */ + pushw %es + popw %ds + xorw %si, %si + movw $0x8000, %di + movw $0x3f00, %cx + cld + repz movsw +#endif + +#if (defined(GRLDR_MBR)) || (defined(GRLDR_INSTALL)) + testb $0x80, %cs:0x02 /* boot previous MBR first? */ + jnz 2f /* no, continue to find GRLDR */ + + /* yes, call the routine for booting the previous MBR. + * it will not return on success. + * on failure, it will return here + */ + + /* before we call the routine, we will check if the user want to + * skip this step and continue to find the GRLDR + */ +#if 0 + movw $(press_space_bar_string - _start1), %si + cmpw $0x3920, %cs:0x04 + je 1f + movw $(press_hot_key_string - _start1), %si +1: + /* if timeout==0, don't display the message */ + + cmpb $0, %cs:0x03 + je 1f + call print_message /* CS:SI points to message string */ + movw $(press_any_key_string - _start1), %si + call print_message /* CS:SI points to message string */ +#else + cmpb $0, %cs:0x03 + je 1f + movw $(press_hot_key_pre - _start1), %si + call print_message + movw $(press_hot_key_name - _start1), %si + call print_message + movw $(press_hot_key_sub - _start1), %si + call print_message +#endif +1: + call sleep_5_seconds + jc 1f /* desired hot-key pressed */ + call boot_prev_mbr //Error_modify +1: + orb $0x80, %cs:0x02 +2: +#endif + popfw + popal + popw %es + popw %ds + + pushw %ds /* DS=0x9400 */ + pushw %es /* ES=FS_BOOT */ + pushal + pushfw + + //cmpb $0x0e, 0x00 /* EBIOS previously checked OK? */ + //jbe 1f /* yes, skip the check */ + movb $0x02, 0x00 /* initialise this byte to 0x02 */ + movb $0x41, %ah /* EBIOS check existence */ + movw $0x55aa, %bx + int $0x13 + jc 1f /* No EBIOS */ + cmpw $0xaa55, %bx + jnz 1f /* No EBIOS */ + testb $1, %cl + jz 1f /* No EBIOS */ + movb $0x42, 0x00 /* LBA supported, save 0x42 to 9400:0000 */ +1: + popfw + popal + popw %es + popw %ds + + pushw %ds /* DS=0x9400 */ + pushw %es /* ES=FS_BOOT */ + pushal + pushfw + + pushaw + cmpw $0x1c2, %si + jne 1f + /* initialize partition number and partition entries end */ + movw $0xffff, 0x1bc /* hd partition number */ + movw $0x01fe, 0x1ba /* partition entries end */ +1: + pushw %dx + testb %dl, %dl + jns 1f /* floppy, use normal CHS mode */ + cmpw $0x1f2, %si /* is it a primary partition? */ + ja 2f /* no, it is an extended partition */ + movl 4(%si), %eax + movl %eax, 8(%si) /* parent part_start saved here */ + xorl %eax, %eax + movl %eax, 4(%si) /* current part_start(0) saved here */ +2: + //movl -4(%si), %eax + //cmpl $0xfffffe00, %eax /* check the starting CHS */ + //jb 1f /* use normal CHS mode */ + + /* get CHS total number of sectors */ + pushw %es + pushw %ds + movb $8, %ah /* read drive parameters changes DX,ES,DI */ + //movb $0x80, %dl /* BIOS drive number is in DL */ + int $0x13 + popw %ds + popw %es + jc 3f + testb $63, %cl + jnz 2f +3: + /* failed to get drive parameters, use maximum value */ +#if 0 + popw %dx + pushw %dx + cmpb $0x80, %dl + jne 3f + pushw %ds + xorw %ax, %ax + movw %ax, %ds + cmpb $0, 0x475 + popw %ds + je 3f + +3: +#endif + movw $0xffff, %cx + movw %cx, %dx +2: + //xorl %eax, %eax + movzbl %dh, %eax + incw %ax + movzbl %cl, %edx + andb $63, %dl + mulw %dx /* DX=0, AX=product */ + shrb $6, %cl + xchgb %cl, %dh + xchgb %ch, %dl + incw %dx /* DX=total cylinders */ + mull %edx /* EDX=0, EAX=product */ + + /* check the partition's starting LBA */ + movl 4(%si), %ebx + addl 8(%si), %ebx /* EBX=start_LBA */ + + testl %ebx, %ebx + je 1f + + ///* we always use LBA mode */ + ////cmpl %eax, %ebx + ////jb 1f /* use normal CHS mode */ + cmpb $0x42, 0x00 /* EBIOS present? */ + jne 1f /* no, skip the LBA mode int13 call */ + + /* load partition boot track to FS_BOOT using LBA mode */ + popw %ax /* AX=orig DX which holds drive number DL */ + pushw %ax + pushl %edx /* EDX=0, higher 4 bytes of starting LBA */ + pushl %ebx /* lower 4 bytes of starting LBA */ + pushw %es /* ES=FS_BOOT */ + pushw %dx /* DX=0, ES:0 is the buffer */ + //pushl $0x003f0010 /* transfer 63 sectors */ + pushw $0x3f /* transfer 63 sectors */ + pushw $0x10 /* size of disk address packet */ + xchgw %ax, %dx /* restore drive number DL from AL */ + movb $0x42, %ah /* extended read */ + movw %sp, %si /* DS:SI points to disk address packet */ + int $0x13 /* ignore the read failure */ + popaw /* adjust the stack */ + jc 1f + popw %dx + popaw + + //popw %ax /* discard flags in the stack */ + popfw + clc + + pushfw /* push new flags with CF=0 */ + pushaw + pushw %dx +1: + popw %dx + popaw + + popfw + popal + popw %es + popw %ds + + pushw %ds /* DS=0x9400 */ + pushw %es /* ES=FS_BOOT */ + pushal + pushfw + + pushw %si + + pushfw + pushw %es +//--------------------------------------------------------- + /* print "Try (hd0,n): " or "Try (fd0): "*/ + pushw %ds + popw %es /* ES=DS=CS=0x9400 */ + + cld /* for stosb */ + xorw %ax, %ax + testb %dl, %dl + jns 1f /* floppy */ + /* hard drive */ +#if 0 + movw %si, %ax + subw $0x1c2, %ax + shrw $4, %ax + cmpw $0x1fe, %si /* is in MBR? */ + jb 1f /* yes */ + /* no, it is an entry in an extended partition */ + movb $0xFC, (add_sub_si + 2 - _start1) /* addw $-4, %si */ + incw 0x1bc /* logical partition number */ + movb 0x1bc, %al +#else + incw 0x1bc /* logical partition number */ + movw 0x1bc, %ax + cmpb $4, %al + jb 1f + movb $0xFC, (add_sub_si + 2 - _start1) /* addw $-4, %si */ +#endif +1: + /* AL=partition number, AH=0 */ + pushw %ax + + movw $(partition_message - _start1 + 7), %di /* drive type */ + movb %dl, %al + shrb $7, %al /* drive type: floppy=0, harddrive=1 */ + shlb $1, %al + addw $0x6466, %ax /* "fd" or "hd" */ + stosw + movb %dl, %al + andb $0x7f, %al /* drive number */ + aam /* convert binary to decimal, AH=high, AL=low */ + testb %ah, %ah + jz 1f + addb $0x30, %ah + movb %ah, (%di) + incw %di +1: + addb $0x30, %al + stosb + + popw %ax + + testb %dl, %dl + jns 2f /* floppy */ + /* this is a hard drive, the partition number is in AL */ + movb $0x2c, (%di) /* "," */ + incw %di + aam /* convert binary to decimal, AH=high, AL=low */ + testb %ah, %ah + jz 1f + addb $0x30, %ah + movb %ah, (%di) + incw %di +1: + addb $0x30, %al + stosb +2: + movl $0x00203a29, (%di) /* "): \0" */ + + movw $(partition_message - _start1), %si + call print_message /* CS:SI points to message string */ +//--------------------------------------------------------- + popw %es + popfw + //stc + jc invalid_or_null /* invalid or null entry */ + + xorw %si, %si + pushw %es + popw %ds + + /* DS=ES=FS_BOOT */ + + /* First, check for ext2 filesystem */ + + cmpw $0xEF53, 0x438 /* Magic signature */ + jnz 1f + xorl %eax, %eax + cmpl %eax, 0x400 /* s_inodes_count */ + jz 1f + cmpl %eax, 0x404 /* s_blocks_count */ + jz 1f +// cmpw %ax, 0x458 /* s_inode_size, usually 0x80 */ +// jz 1f + cmpl %eax, 0x420 /* s_blocks_per_group */ + jz 1f + cmpl %eax, 0x428 /* s_inodes_per_group */ + jz 1f + movl 0x414, %eax /* s_first_data_block */ + movw %ax, %bx /* BX=1 for 1K block, 0 otherwise */ + shrl $1, %eax /* must be 0 */ + jnz 1f + movl 0x418, %ecx /* s_log_block_size */ + cmpl $4, %ecx /* max size of block is 16K */ + ja 1f + negw %cx /* CF=0 for 1K block, CF=1 otherwise */ + adcw %ax, %bx /* EAX=0 */ + decw %bx + jnz 1f + + /* BX = 0 */ + /* EAX= 0 */ + + movw $0x80, %ax /* EXT2_GOOD_OLD_INODE_SIZE */ + movw %ax, %cs:0x826 /* inode size */ + movl 0x44C, %ecx /* ECX=s_rev_level */ + jecxz 3f /* EXT2_GOOD_OLD_REV */ + movw 0x458, %ax /* AX=s_inode_size */ + testw %ax, %ax + jz 1f /* invalid inode size */ + pushw %ax + pushw %dx + movb 0x418, %cl /* s_log_block_size */ + addb $10, %cl + xorw %dx, %dx /* DX=0 */ + incw %dx /* DX=1 */ + shlw %cl, %dx /* DX=block size in bytes */ + xchgw %ax, %cx /* CX=s_inode_size */ + xchgw %ax, %dx /* AX=block size in bytes */ + xorw %dx, %dx /* DX:AX=block size in bytes */ + divw %cx /* quo=AX, rem=DX */ + testw %dx, %dx + popw %dx + popw %ax + jnz 1f /* invalid inode size */ + movw %ax, %cs:0x826 /* inode size */ +3: + /* BX = 0 */ + + /* super block is sane */ + + //pushw %cs + //popw %ds + ///* DS=SS=0x9400 */ + ///* ES=FS_BOOT */ + cld + movw $0x800, %si + xorw %di, %di + movw $0x0200, %cx /* yes, we need 2 sectors if enable debug */ + + repz cs movsw /* CS segment override prefix(=0x2E) */ + + /* modify the boot partition number */ + + /* the boot partition number is at offset 0x25 for ext2 */ + + testb %dl, %dl + jns 3f /* no modification for floppy */ + movw $0x25, %di + movw %cs:0x1bc, %ax /* partition number */ + stosb +3: + /* fix for ext2 partition: hidden_sectors, offset 0x1c */ + popw %si /* DI points to old entry in MBR */ + pushw %si + xorl %eax, %eax /* let hidden_sectors=0 for floppy */ + testb %dl, %dl + jns 3f /* floppy */ + movl %cs:4(%si), %eax + addl %cs:8(%si), %eax +3: + /* BX = 0 */ + + movl %eax, %es:0x1c(%bx) /* adjust hidden_sectors for EXT2 */ + + /* fix for ext2 partition: EBIOS indicator, offset 0x02 */ + + movb %cs:0x00(%bx), %al + movb %al, %es:0x02(%bx) + + /* fix for ext2 partition: sectors per block, offset 0x0d */ + /* fix for ext2 partition: bytes per block, offset 0x0e */ + /* fix for ext2 partition: dwords per block(dpb), offset 0x14 */ + /* fix for ext2 partition: square of dpb, offset 0x10 */ + + movb %es:0x418, %cl /* s_log_block_size */ + //incw %cx + movl $2, %eax + shlw %cl, %ax + movb %al, %es:0x0d(%bx) + shlw $9, %ax /* block size is word wide */ + movw %ax, %es:0x0e(%bx) + shrw $2, %ax + movl %eax, %es:0x14(%bx) + addb $8, %cl + shll %cl, %eax + movl %eax, %es:0x10(%bx) + + + /* fix for ext2 partition: sectors per track, offset 0x18 */ + /* fix for ext2 partition: number of heads, offset 0x1a */ +#if 1 + pushw %ds + pushw %es + pushw %bx + pushw %dx + movb $8, %ah /* read drive parameters changes DX,ES,DI,BX */ + movb $0x80, %dl /* BIOS drive number is in DL */ + int $0x13 + movw %dx, %ax + popw %dx + popw %bx + popw %es + popw %ds + jc 3f + andb $63, %cl + jz 3f + movb %cl, %es:0x18(%bx) + shrw $8, %ax + incw %ax + movw %ax, %es:0x1a(%bx) +3: +#else + testb %dl, %dl + jns 3f /* floppy */ + popw %di /* DI points to old entry in MBR */ + pushw %di + movw %cs:1(%di), %ax + andb $63, %ah + movb %ah, %es:0x18 + xorb %ah, %ah + incw %ax + movw %ax, %es:0x1a +3: +#endif + + /* fix for ext2 partition: s_inodes_per_group, offset 0x28 */ + movl %es:0x428, %eax /* s_inodes_per_group */ + movl %eax, %es:0x28(%bx) + + /* fix for ext2 partition: block number for group descriptors, offset 0x2c */ + /* At which block the group descriptors begin? */ + movl %es:0x414, %eax /* s_first_data_block */ + incw %ax + movl %eax, %es:0x2c(%bx) + + /* fix for ext2 partition: on error go back to supervisor, offset 0x01fc */ + movw $0x01fc, %si + movw %si, %di + lodsw + cmpw $0xFEEB, %ax /* EB FE is jmp back to itself(infinite loop) */ + jnz 3f + decw %ax /* AL=0xEA, ljmp */ + stosb + //movw $(try_next_partition - _start1), %ax + movw $MONITOR, %ax + stosw + //movw %cs, %ax /* AX=0x9400 */ + xorw %ax, %ax + stosw /* the last byte 0x00 is in the next sector! */ +// addw $0x0f, %di +// movw $(restore_GRLDR_CS - _start1), %si +// movw $((gdt_end - restore_GRLDR_CS) / 4), %cx +// .byte 0x2e /* %cs: prefix */ +// repz movsl +3: + + movw $(EXT2_message - _start1), %si + call print_message /* CS:SI points to message string */ + + clc + jmp move_entries_and_return + +1: + #; It is not EXT2. Check for FAT12/16/32/NTFS. + + /* DS=ES=FS_BOOT */ + + cmpw $0x200, 0x0b(%si) /* bytes per sector */ + jne 1f /* not a normal BPB */ + movb 0x0d(%si), %al /* sectors per cluster */ + testb %al, %al + jz 1f /* invalid if = 0 */ + movb %al, %cl + movw $128, %ax + divb %cl /* quo=AL, rem=AH */ + testb %ah, %ah + jnz 1f /* invalid if not 2^n */ + movw 0x18(%si), %ax /* sectors per track */ + testw %ax, %ax + jz 1f /* invalid if = 0 */ + cmpw $63, %ax + ja 1f /* invalid if > 63 */ + movw 0x1a(%si), %ax /* number of heads */ + decw %ax /* Max head number, should be a byte */ + testb %ah, %ah /* should be 0 */ + jnz 1f /* invalid if number of heads > 256 */ + cmpb $0xf0, 0x15(%si) /* media descriptor */ + jb 1f + + cmpb $0x42, %cs:0x00 /* EBIOS present? */ + jne 3f + //movb $0x41, %ah /* EBIOS check existence */ + //movw $0x55aa, %bx + //int $0x13 + //jc 3f /* No EBIOS */ + //cmpw $0xaa55, %bx + //jnz 3f /* No EBIOS */ + //testb $1, %cl + //jz 3f /* No EBIOS */ + movb $0x0e, 0x02(%si) /* force LBA */ +3: + cld + movw $0x0600, %bx /* FAT12/FAT16 */ + movw $0x003c, %cx /* FAT12/FAT16 */ + + movb 0x10(%si), %al /* number of FATs(NTFS:0, FAT:1,2) */ + cmpb $2, %al + ja 1f /* abnormal FAT */ + movw 0x11(%si), %ax /* max root entries */ + testw %ax, %ax + jnz 2f /* FAT12/FAT16 */ + + /* FAT32 or NTFS */ + movw 0x13(%si), %ax /* total sectors(small) */ + testw %ax, %ax + jnz 1f /* invalid FAT32 BPB */ + movw 0x16(%si), %ax /* sectors per FAT(small) */ + testw %ax, %ax + jnz 1f /* invalid FAT32 BPB */ + movb 0x10(%si), %al /* number of FATs(NTFS:0, FAT:1,2) */ + testb %al, %al + jz 8f + + /* FAT32 */ + movl 0x20(%si), %eax /* FAT32 total sectors */ + testl %eax, %eax + jz 1f + movl 0x24(%si), %eax /* FAT32 sectors per FAT */ + testl %eax, %eax + jz 1f + movw $0x0400, %bx /* FAT32 */ + movw $0x0058, %cx /* FAT32 */ + movw $(FAT32_message - _start1), %si + jmp 7f +8: + /* NTFS */ + movl 0x20(%si), %eax /* FAT32 total sectors */ + testl %eax, %eax + jnz 1f + //movw 0x11(%si), %ax /* max root entries */ + //testw %ax, %ax + //jnz 1f + movw 0x0e(%si), %ax /* reserved sectors */ + testw %ax, %ax + jnz 1f + + /* BUG fix for extended NTFS partition */ + popw %si /* SI points to old entry in MBR */ + pushw %si + xorl %eax, %eax /* let hidden_sectors=0 for floppy */ + testb %dl, %dl + jns 3f /* floppy */ + movl %cs:4(%si), %eax + addl %cs:8(%si), %eax +3: + movl %eax, 0x1c /* adjust hidden_sectors for NTFS */ + + movb %dl, 0x24 /* adjust drive number for NTFS */ + +#if 1 + // Load NTFS using internal boot sector at 0xA00 + + movw $(NTFS5_message - _start1), %si + call print_message /* CS:SI points to message string */ + + movw $0xA00, %bx + movw $0x52, %cx + + pushw %cs + popw %ds + + /* DS=SS=0x9400 */ + /* ES=FS_BOOT */ + + movw %bx, %si + xorw %di, %di + lodsw + stosw + addw %cx, %si + addw %cx, %di + movw $0x800, %cx + subw %di, %cx + + repz movsb + + /* modify the boot partition number */ + movb %es:1, %al + addb $5, %al /* AL is less than 0x80 */ + cbw /* AH=0 */ + xchgw %ax, %di /* move AX to DI */ + movb $0xff, %al /* partition=whole drive for floppy */ + testb %dl, %dl + jns 3f /* no modification for floppy */ + movb 0x1bc, %al /* partition number */ +3: + stosb + + /* fix for NTFS partition: on error go back to supervisor, offset 0x01fa */ + + movw $0x01fa, %di + movw %es:(%di), %ax + cmpw $0xFEEB, %ax /* EB FE is jmp back to itself(infinite loop) */ + jnz 3f + decw %ax /* AL=0xEA, ljmp */ + stosb + //movw $(try_next_partition - _start1), %ax + movw $MONITOR, %ax + stosw + + //movw %cs, %ax /* AX=0x9400 */ + xorw %ax, %ax + stosw /* DI=0x01ff */ +3: + clc + jmp move_entries_and_return + +#else + + /* modify the boot partition number */ + movb $0xB6, %al /* 0xB6="MOV DH,imm8" */ + movb %cs:0x1bc, %ah + testb %dl, %dl + js 3f + movb $0xff, %ah /* partition number for floppy is whole drive */ +3: + /* before the call: + * AH= partition number + * AL= 0xB6 ; 0xB6 is opcode of "MOV DH,imm8" + * DL= drive number + * + * on return: CF=0 if there is NTFS boot record; + * CF=1 otherwise. + * CF of flags_orig on the stack will set if CF=1 + */ + + call modify_NTFS_boot_record + //jnc move_entries_and_return + //movw $(NTFS5_message - _start1), %si + ////jmp 4f + //call print_message /* CS:SI points to message string */ + //stc + jmp move_entries_and_return + +#endif + +2: + /* FAT12/FAT16 */ + movb 0x10(%si), %al /* number of FATs(NTFS:0, FAT:1,2) */ + testb %al, %al + jz 1f + movw 0x16(%si), %ax /* sectors per FAT(small) */ + testw %ax, %ax + jz 1f + movw $(FAT16_message - _start1), %si + cmpw $12, %ax + ja 7f + movw $(FAT12_message - _start1), %si +7: + /* BUG fix for extended FAT12/16/32 partition */ + popw %di /* DI points to old entry in MBR */ + pushw %di + xorl %eax, %eax /* let hidden_sectors=0 for floppy */ + testb %dl, %dl + jns 3f /* floppy */ + movl %cs:4(%di), %eax + addl %cs:8(%di), %eax +3: + movl %eax, 0x1c /* adjust hidden_sectors for FAT */ + + call print_message /* CS:SI points to message string */ + pushw %cs + popw %ds + /* DS=SS=0x9400 */ + /* ES=FS_BOOT */ + movw %bx, %si + xorw %di, %di + lodsw + stosw + addw %cx, %si + addw %cx, %di + movw $0x0200, %cx + subw %di, %cx + repz movsb + /* modify the boot partition number */ + movb %es:1, %al + addb $5, %al /* AL is less than 0x80 */ + cbw /* AH=0 */ + xchgw %ax, %di /* move AX to DI */ + movb $0xff, %al /* partition=whole drive for floppy */ + testb %dl, %dl + jns 3f /* no modification for floppy */ + movb 0x1bc, %al /* partition number */ +3: + stosb + + /* fix for FAT12/16/32 partition: on error go back to supervisor, offset 0x01fa */ + //pushw %es + //popw %ds + movw $0x01fa, %di + //movw %di, %si + //lodsw + movw %es:(%di), %ax + cmpw $0xFEEB, %ax /* EB FE is jmp back to itself(infinite loop) */ + jnz 3f + decw %ax /* AL=0xEA, ljmp */ + stosb + //movw $(try_next_partition - _start1), %ax + movw $MONITOR, %ax + stosw + //movw %cs, %ax /* AX=0x9400 */ + xorw %ax, %ax + stosw /* DI=0x01ff */ +3: + + clc + jmp move_entries_and_return +1: + #; It is not FAT12/16/32/NTFS. Check for extended partition. + + /* DS=ES=FS_BOOT */ + + pushw %cs + popw %es + + /* ES=SS=0x9400 */ + /* DS=FS_BOOT */ + + popw %si + pushw %si + cmpb $0x05, %es:(%si) /* extended */ + je 1f + cmpb $0x0f, %es:(%si) /* Win95 extended (LBA) */ + je 1f + cmpb $0x15, %es:(%si) /* hidden extended */ + je 1f + cmpb $0x1f, %es:(%si) /* hidden win95 extended (LBA) */ + je 1f + cmpb $0x85, %es:(%si) /* Linux extended */ + je 1f + movw $(non_MS_message - _start1), %si +4: + call print_message /* CS:SI points to message string */ + stc + jmp move_entries_and_return +1: + /* extended partition entry */ + cmpw $0x1fe, %si + jb 1f + decw %es:0x1bc /* count the partitions in extended zone */ +1: + movw $(extended_message - _start1), %si + call print_message /* CS:SI points to message string */ + movw $0x1be, %si + movw $4, %cx +5: + //xorl %eax, %eax + //cmpl %eax, (%si) + //jnz 2f + movl (%si), %eax + cmpw 2(%si), %ax /* Is EAX high word equal to AX? */ + jnz 2f + cmpb %al, %ah /* Is AL=AH? */ + jnz 2f + + /* now all 4 bytes in EAX are equal to each other. */ + cmpl %eax, 4(%si) + jnz 2f + cmpl %eax, 8(%si) + jnz 2f + cmpl %eax, 12(%si) + jz 3f /* entry with 16 dups of a byte means empty entry */ +2: + movb (%si), %al + shlb $1, %al + jnz 1f + //jnz 3f /* invalid entry is treated as empty entry */ + movb 2(%si), %al + and $63, %al /* starting sector number */ + jz 1f + //jz 3f /* invalid entry is treated as empty entry */ + movb 6(%si), %al + and $63, %al /* ending sector number */ + jz 1f + //jz 3f /* invalid entry is treated as empty entry */ + movl 8(%si), %eax /* starting LBA */ + testl %eax, %eax + jz 1f + //jz 3f /* invalid entry is treated as empty entry */ + movl 12(%si), %eax /* total number of sectors in partition */ + testl %eax, %eax + jz 1f +3: + addw $16, %si + loop 5b + cmpw $0xaa55, (%si) + jnz 1f + + movw $0x1be, %si + movw $4, %cx + popw %bx /* the old SI points to extended partition ID in MBR */ + pushw %bx +5: +#if 1 + //xorl %eax, %eax + //cmpl %eax, (%si) + //jnz 2f + movl (%si), %eax + cmpw 2(%si), %ax /* Is EAX high word equal to AX? */ + jnz 2f + cmpb %al, %ah /* Is AL=AH? */ + jnz 2f + + /* now all 4 bytes in EAX are equal to each other. */ + cmpl %eax, 4(%si) + jnz 2f + cmpl %eax, 8(%si) + jnz 2f + cmpl %eax, 12(%si) + jz 3f /* entry with 16 dups of a byte means empty entry */ +2: + /* now it is an acceptable entry */ + movw %es:0x1ba, %di /* partition entries end */ + /* ensure our stack not to be overwritten by the partition entries */ + cmpw $0x83f0, %di + ja 3f /* try next */ + /* ensure our code not to be overwritten by the partition entries */ + cmpw $0x3fe, %di + jne 6f + /* more entries stores at 0x9be00-0x9c3ff */ + movw $0x7e00, %di + movw %di, %es:0x1ba +6: + addw $16, %es:0x1ba /* increment partition entries end */ + + lodsl + stosl + lodsl + stosl + + xchgw %ax, %dx /* save AL(the partition ID)to DL */ + + lodsl + xchgl %eax, %edx /* restore AL from DL(the partition ID) + * and save EAX to EDX */ + cmpb $0x05, %al + je 6f + cmpb $0x0f, %al + je 6f + cmpb $0x15, %al + je 6f + cmpb $0x1f, %al + je 6f + cmpb $0x85, %al + je 6f + /* normal partition, copied to 0x941fe-0x943fb */ + addl %es:4(%bx), %edx /* current partition start */ +6: + /* extended partition, copied to 0x941fe-0x943fb */ + xchgl %eax, %edx /* restore or update EAX from EDX */ + stosl + lodsl /* adjust SI only */ + movl %es:8(%bx), %eax /* parent partition start ... */ + stosl /* ... stored here */ + jmp 2f +3: + addw $16, %si +#endif + //. = 5b + 0x7c +2: + loop 5b + + /* extended partition is not a normal one, so set carry to try next */ + stc + jmp move_entries_and_return + +invalid_or_null: +1: + movw $(invalid_message - _start1), %si + call print_message /* CS:SI points to message string */ + stc + +move_entries_and_return: + popw %si + pushfw + pushw %cs + popw %ds + pushw %cs + popw %es + pushw %si + cmpw $0x202, %si + jne 1f + /* move entries backward 1 entry */ + movw $0x1fe, %di + movw $0x20e, %si + movw $0xf8, %cx /* 0x1f0 bytes = 0xf8 words */ + cld /* move upward */ + repz movsw + movw $0x3ee, %di + movw $0x7e00, %si + movw $0x8, %cx /* 0x10 bytes = 0x8 words */ + cld /* move upward */ + repz movsw + movw $0x7e00, %di + movw $0x7e10, %si + movw $0x2f8, %cx /* 0x5f0 bytes = 0x2f8 words */ + cld /* move upward */ + repz movsw + cmpw $0x7e10, 0x1ba + jne 2f + movw $0x40e, 0x1ba +2: + subw $0x10, 0x1ba + +1: + popw %si + movw $0x1ff, (add_sub_si + 5 - _start1) + cmpw $0x1fe, 0x1ba + jne 1f + decw (add_sub_si + 5 - _start1) + cmpw $0x31b2, %si /* floppy? */ + je 1f /* yes */ + cmpw $0x1f2, %si + ja 2f /* logical partition */ + jb 1f /* primary partition 0, 1, 2 */ + /* primary partition 3 */ + cmpw $0x0003, 0x1bc /* are there any logical partitions? */ + ja 1f /* yes */ +2: +inc_hard_drive: + + /* all partitions on the drive have been checked, try next drive. + * + * the current stack is: + * + * SP + 38 : DS + * SP + 36 : ES + * SP + 32 : EAX + * SP + 28 : ECX + * SP + 24 : EDX + * SP + 20 : EBX + * SP + 16 : ESP_temp + * SP + 12 : EBP + * SP + 8 : ESI + * SP + 4 : EDI + * SP + 2 : flags_orig + * SP : flags + * + */ + + /* get total hard drives */ + xorw %ax, %ax + movw %ax, %ds + movb 0x475, %dh + pushw %cs + popw %ds +// cmpb $16, %dh +// jnb 2f +// movb $16, %dh +//2: + orb $0x80, %dh /* CF=0, DH=Max harddrive number + 1 */ + //xchgw %ax, %cx /* CL=Max harddrive number + 1, CH=0 */ + movw %sp, %bp + movb 24(%bp), %dl /* BIOS drive number is in DL */ +2: + jnc 3f + call print_message /* CS:SI points to message string */ + movw $(drive_number_string - _start1), %si + movb %dl, %al + andb $0x7f, %al + aam /* AH=high decimal, AL=low decimal */ + addw $0x3030, %ax + xchgb %al, %ah + movw %ax, 9(%si) + call print_message /* CS:SI points to message string */ +3: + incw %dx + cmpb %dh, %dl + jnb 2f /* all drives checked, try floppy finally */ + + pushw %bx + pushw %dx + pushw %es + movb $8, %ah /* read drive parameters changes DX, ES, DI */ + int $0x13 + popw %es + jc 3f /* try next hard drive */ + //xchgw %ax, %cx /* this moves CL to AL */ + andb $63, %cl /* CL=sectors per track, CF cleared */ + stc + jz 3f /* try next hard drive */ + popw %dx /* get DL */ + popw %bx + movb %dl, %ch /* DL saved at BP high byte in the stack */ + pushw %cx /* push new BX onto stack */ + pushw %dx + //movb $0x02, %ah + //movw %ax, %si /* save AX to SI: read 1 track */ + movw $0x201, %ax /* read 1 sector */ + movw $0x7e00, %bx /* read MBR to 9400:7e00 */ + movw $1, %cx + //popw %dx + //pushw %dx + xorb %dh, %dh + stc + int $0x13 + sti +3: + popw %dx + popw %bx /* BL=sectors per track, BH=DL */ + + //movw %si, %bx /* BL=sectors per track */ + + movw $(Error_while_reading_string - _start1), %si + jc 2b /* read failure, try next hard drive */ + + /* on seccessful return, should be: ah=0 for OK, al=1 for 1 sector */ + //decw %ax /* some BIOSes return incorrect AL */ + testb %ah, %ah + stc + jnz 2b + + /* The new partition table might be empty or invalid. + * Move the new partition table onto the old one while checking + */ + + //movb %dl, %bh /* DL saved at BP high byte in the stack */ + + movw $0x7fbe, %si + movw $0x01be, %di + +3: + cmpw $0x1fe, %di + jnb 3f + + xorl %ecx, %ecx + + lodsl + stosl + orl %eax, %ecx + lodsl + stosl + orl %eax, %ecx + lodsl + stosl + orl %eax, %ecx + lodsl + stosl + orl %eax, %ecx + jecxz 3b /* null entry, check next */ + + //lodsw + //stosw + movb -16(%si), %al + shlb $1, %al + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_boot_indicator_string - _start1), %si + jnz 2b + xchgw %ax, %si /* restore SI from AX */ + //lodsw + //stosw + movb -14(%si), %al + andb $63, %al + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_sectors_per_track_string - _start1), %si + jz 2b + xchgw %ax, %si /* restore SI from AX */ + //lodsw + //stosw + //lodsw + //stosw + movb -10(%si), %al + andb $63, %al + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_sectors_per_track_string - _start1), %si + jz 2b + xchgw %ax, %si /* restore SI from AX */ + //lodsl + //stosl + movl -8(%si), %eax + testl %eax, %eax + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_start_sector_string - _start1), %si + jz 2b + xchgw %ax, %si /* restore SI from AX */ + + //lodsl + //stosl + movl -4(%si), %eax + testl %eax, %eax + stc + xchgw %ax, %si /* save SI to AX */ + movw $(partition_end_sector_string - _start1), %si + jz 2b + xchgw %ax, %si /* restore SI from AX */ + + jmp 3b +3: + cmpw $0xAA55, (%si) + stc + xchgw %ax, %si /* save SI to AX */ + movw $(no_boot_signature_string - _start1), %si + jnz 2b + xchgw %ax, %si /* restore SI from AX */ + //lodsw + //stosw /* store boot signature */ + + /* Now the partition table is OK */ + + movw %bx, 12(%bp) /* adjust BP in the stack */ + + movw $0x1b2, 8(%bp) /* adjust SI in the stack */ + + /* temp change the code: call self_modify_once + * + * "call self_modify_once" at add_sub_si is: + * + * .byte 0xE8 + * .word (self_modify_once - add_sub_si - 3) + * + */ + movb $0xE8, (add_sub_si - _start1) + movw $(self_modify_once - add_sub_si - 3), (add_sub_si + 1 - _start1) + + /* initialize partition number and partition entries end */ + movw $0xffff, 0x1bc /* hd partition number */ + movw $0x01fe, 0x1ba /* partition entries end */ + + jmp 1f +2: + /* get here if all drives have been checked */ +#if 0 + movw $0x202, 8(%bp) /* adjust SI in the stack */ + + /* restore the original code: addw $-4, %si */ + movw $0xC683, (add_sub_si - _start1) /* 0x83, 0xC6 */ + movb $0xFC, (add_sub_si + 2 - _start1) /* 0xFC */ +#endif + //-------------------------------------------------------------------- + /* change the code: jmp Error_modify + * + * "jmp Error_modify" at Error_or_prev_MBR: + * + * .byte 0xE9 + * .word (Error_modify - Error_or_prev_MBR - 3) + * + */ + movb $0xE9, (Error_or_prev_MBR - _start1) + movw $(Error_modify - Error_or_prev_MBR - 3), (Error_or_prev_MBR + 1 - _start1) + //-------------------------------------------------------------------- + + //-------------------------------------------------------------------- + /* floppy search disabled ? */ +#if 0 + testb $1, 0x02 /* test bit0 of the third byte */ + jz 1f /* zero means floppy search enabled */ + /* 0x1fd or below means disable floppy search */ + decw (add_sub_si + 5 - _start1) +#else + movb 0x02, %al + andb $0x01, %al + subb %al, (add_sub_si + 5 - _start1) +#endif + //-------------------------------------------------------------------- + +1: +#if 0 + popfw + lahf /* Load Flags into AH Register. */ + /* AH = SF:ZF:xx:AF:xx:PF:xx:CF */ + /* CF will be moved to ZF */ + movb %ah, %al + andb $1, %al /* CF=0 */ + shlb $6, %al /* move CF to ZF */ + popfw + lahf /* Load Flags into AH Register. */ + /* AH = SF:ZF:xx:AF:xx:PF:xx:CF */ + andb $0xbf, %ah /* 0xbf= binary 1011 1111. It clears ZF */ + orb %al, %ah +#else + popw %ax /* AX=Flags */ + popfw /* Flags_orig */ + lahf /* Load Flags_orig into AH Register. */ + /* AH = SF:ZF:xx:AF:xx:PF:xx:CF */ + shlb $2, %ah + rorw $2, %ax /* move CF of Flags to ZF of Flags_orig */ +#endif + + sahf /* update flags */ + /* current CF is the CF of Flags_orig */ + /* current ZF is the CF of Flags */ + jc 1f /* CF=1 means failed in loading bootsector */ + popal /* get drive number DL */ + pushal + pushfw + cmpb $0xff, %cs:0x06 + jz 2f + movb %cs:0x1bc, %dh + testb %dl, %dl + js 3f + movb $0xff, %dh /* partition # for floppy is "whole drive" */ +3: + cmpw %cs:0x06, %dx + jz 2f + popfw + stc + pushfw +2: + popfw +1: + popal + popw %es + popw %ds + ret + +self_modify_once: + /* when we get here, SI should be 0x1b2, and BP high holds DL */ + addw $12, %si /* 0x83, 0xC6, 0x0C */ + movw %bp, %ax + movb %ah, %dl + + /* note: DS=0x9400 */ + + /* restore the original code: addw $12, %si */ + movw $0xC683, (add_sub_si - _start1) /* 0x83, 0xC6 */ + movb $0x0C, (add_sub_si + 2 - _start1) /* 0x0C */ + ret + +Error_modify: + cmpb $0xff, %cs:0x06 /* preferred drive? */ + jz 1f /* not active. Turn to the final step. */ + + /* preferred drive is already handled, so de-activate it now. */ + movb $0xff, %cs:0x06 + + /* we will do the second pass, from drive 0x80. */ + movb $0x7f, %dl /* this will become 0x80 after inc. */ + + /* pass "error" to PUSHF, simulating a load failure, in order + * to try the first entry after return from the helper function. + */ + + stc + + pushw $(helper_call + 3 - _start1) /* return address */ + pushw %cs /* 0x9400, it is for DS. */ + pushw $FS_BOOT /* 0x0d00, it is for ES. */ + pushal + //pushl %eax + //pushl %ecx + //pushl %edx + //pushl %ebx + //pushl %esp + //pushl %ebp + //pushl %esi + //pushl %edi + pushfw /* CF=1 */ + pushfw + + pushw %cs + popw %es /* ES=0x9400 */ + + /* redo from start: DL will be 0x80 after inc. */ + jmp inc_hard_drive +1: +boot_prev_mbr: + + /* prepare to boot the previous MBR */ + + /* at this moment DS=0x9400, ES=$FS_BOOT or ES=0x9400 */ + xorw %ax, %ax + //pushw %ax /* AX=0, for the segment of 0000:7c00 */ + movw %ax, %es /* ES=0x0000 */ + movw %ax, %ds /* DS=0x0000 */ + pushw %ds + pushw %es + movw $0x0202, %ax /* read 2 sectors ... */ + movw $0x7A00, %bx /* ... to 0000:7A00 */ + //pushw %bx /* BX=0x7c00, for the offset of 0000:7c00 */ + movw $0x0001, %cx /* from the first sector ... */ + movw $0x0080, %dx /* ... of the first hard drive */ + stc + int $0x13 + sti + popw %es + popw %ds + jc 1f + testb %ah, %ah + jnz 1f + cmpw $0xAA55, 0x7dfe + jne 1f + cmpw $0xAA55, 0x7bfe + jne 1f + + /* has a valid partition table ? */ + movw $0x7dbe, %si +3: + cmpw $0x7dfe, %si + jnb 3f /* partition table is OK */ + movw $4, %cx + + movw %si, %di +2: + lodsl + negl %eax + jc 2f + loop 2b + /* empty entry, check next */ + jmp 3b +2: + /* non-empty entry */ + movw %di, %si + + lodsw + shlb $1, %al + jnz 2f + lodsw + andb $63, %al + jz 2f + lodsw + lodsw + andb $63, %al + jz 2f + lodsl + negl %eax + jnc 2f + lodsl + negl %eax + jc 3b +2: + stc /* invalid partition table */ +3: + pushfw + + /* disable the boot of non-MBR bootsector ? */ + testb $2, %cs:0x02 /* test bit1 of the third byte */ + jz 2f /* zero means non-MBR enabled */ + popfw + jc 1f /* invalid partition table, print "Error" */ + + /* the partition table is valid */ + pushfw + +2: + /* the check passed, and the boot is permitted */ + popfw + + jc 2f /* invalid partition table */ + + /* use partition table in MBR instead */ + + /* copy 72 bytes at 0000:7bb8 to 0000:7db8 */ + + movw $0x7bb8, %si + movw $0x7db8, %di + movw $36, %cx + cld + repz movsw + +2: + testb $0x80, %cs:0x02 /* test bit 7 of the third byte */ + jz 2f /* zero means boot prev-MBR first */ + + movw $(Cannot_find_GRLDR_string - _start1), %si + call print_message /* CS:SI points to message string */ +//#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + movw $(press_space_bar_string - _start1), %si + cmpw $0x3920, %cs:0x04 + je 3f + movw $0x3920, %cs:0x04 + #;movw $(press_hot_key_string - _start1), %si +3: + call print_message /* CS:SI points to message string */ + movw $(prev_MBR_string - _start1), %si + call print_message /* CS:SI points to message string */ +//#else +// movw $(press_hot_key_pre - _start1), %si +// call print_message +// movw $(press_hot_key_name - _start1), %si +// call print_message +// movw $(press_hot_key_sub - _start1), %si +// call print_message +//#endif +3: + call sleep_5_seconds + /* if hot-key is pressed, wait forever until another key is pressed. */ + movb $0xff, %cs:0x03 + jc 3b /* desired hot-key is pressed */ +2: + /* boot the previous MBR */ + + /* clear the DUCE indicator */ + movl $0, 0x5FC /* DS=ES=0 */ + + //movb $0x80, %dl + ljmp $0, $0x7c00 +1: + /* no previous MBR, print "Error" */ + ///* Note the 0000:7C00 is on the stack */ + //popw %ax /* AX=0x0000 */ + //popw %ax /* AX=0x7C00 */ + + testb $0x80, %cs:0x02 /* are we called prior to the GRLDR search? */ + jnz 1f /* no, it is a failure at last */ + /* yes, so return to the caller */ + movw $(continue_string - _start1), %si + call print_message /* CS:SI points to message string */ + call sleep_5_seconds + ret +1: + movw $(message_string_helper - _start1), %si + call print_message /* CS:SI points to message string */ +1: jmp 1b /* hang */ + +sleep_5_seconds: + /* sleep 5 seconds */ + + /* sleep forever if %cs:0x03 is 0xff */ + + /* calculate the timeout ticks */ + + pushw %ds + pushl %esi + pushl %edx + + movl $0xffffffff, %edx + movzbl %cs:0x03, %eax + cmpb $0xff, %al + je 1f + movl $18, %edx /* 18.2 ticks per second. We simply use 18. */ + mulw %dx /* EDX=0, EAX=ticks */ + xchgw %ax, %dx /* EAX=0, EDX=ticks */ +1: + xorw %ax, %ax + movw %ax, %ds + movl 0x46c, %eax /* initial tick */ + movl %eax, %ecx /* ECX=initial tick */ + testl %edx, %edx + js 1f + addl %edx, %eax /* EAX=timeout tick */ + pushl %eax + + movzbl %cs:0x03, %eax + orl %eax, %eax + jz 3f + + movw $(hot_key_timeout_pre - _start1), %si + pushl %eax + call print_message + popl %eax + + movw $(hot_key_timeout_num - _start1), %si + call print_decimal +3: + movl %ecx, %esi + addl $18, %esi + + popl %eax + jmp 3f +1: + movl %edx, %eax /* EAX=0xffffffff */ + movl %edx, %esi +3: + movl 0x46c, %ebx /* EBX=current tick */ + cmpl %ecx, %ebx + jnb 2f + + /* current tick is less than initial tick, this means the ticks have + * overflowed to the next day, and EBX is rather small. */ + xorl %ecx, %ecx + movl %edx, %eax + movl $18, %esi +2: + /* check if there is any key press. */ + pushl %eax + movb $1, %ah + int $0x16 + pushw %ax + pushfw + + movb $0x11, %ah + int $0x16 + jnz 1f + popfw + jnz 2f + + /* no, there is no key press. */ + + popw %ax + popl %eax + + cmpl %esi, %ebx + jb 4f + pushl %esi + pushl %eax + pushl %edx + + + subl %esi, %eax + xorl %edx, %edx + movl $18, %esi + divl %esi + + movw $(hot_key_timeout_num - _start1), %si + pushl %ebx + call print_decimal + popl %ebx + + popl %edx + popl %eax + popl %esi + addl $18, %esi +4: + cmpl %eax, %ebx /* timeout? */ + jbe 3b /* no, continue to wait */ + + /* timeout reached, CF=0, no key pressed. */ + popl %edx + popl %esi + popw %ds + ret +1: + popfw +2: + /* yes, there is a key press. */ +#if 0 + /* clear the keyboard buffer */ + movb $1, %ah + int $0x16 + jz 1f /* no keys, end */ + movb $0, %ah + int $0x16 /* discard the key */ + jmp 1b +1: +#endif + + /* check if it is the desired key. */ + + xorw %cs:0x04, %ax /* CF=0 */ + popw %ax + je 1f + xorw %cs:0x04, %ax /* CF=0 */ + jne 2f /* not desired, return CF=0 */ + + /* remove the desired key from the keyboard buffer. */ + + movb $0, %ah + int $0x16 /* discard the key */ + jmp 3f +1: + /* remove the desired key from the keyboard buffer. */ + + movb $0x10, %ah + int $0x16 /* discard the key */ +3: + stc /* CF=1, the desired key pressed */ +2: + popl %eax + popl %edx + popl %esi + popw %ds + ret + +out_decimal: + /* + * input: EAX = number, CS:SI = buffer + */ + + pushl %edx + pushl %ecx + pushw %bx + + movl $10, %ecx + movw %si, %bx + +1: + xorl %edx, %edx + divl %ecx + addb $'0', %dl + movb %dl, %cs:(%si) + incw %si + orl %eax, %eax + jnz 1b + + pushw %si + +1: + decw %si + cmpw %bx, %si + jbe 1f + movb %cs:(%si), %al + xchgb %al, %cs:(%bx) + movb %al, %cs:(%si) + incw %bx + jmp 1b +1: + + popw %si + + popw %bx + popl %ecx + popl %edx + ret + +print_decimal: + pushw %si + call out_decimal + +1: + cmpb $'\b', %cs:(%si) + jz 2f + movb $' ', %cs:(%si) + incw %si + jmp 1b +2: + popw %si + call print_message + ret + +#if 0 +modify_NTFS_boot_record: + + /* before the call: + * AH= partition number + * AL= 0xB6 ; 0xB6 is opcode of "MOV DH,imm8" + * DL= drive number + * + * on return: CF=0 if there is NTFS boot record; + * CF=1 otherwise. + * CF of flags_orig on the stack will set if CF=1 + */ + + /* + * + * the current stack is: + * + * SP + 40 : DS + * SP + 38 : ES + * SP + 34 : EAX + * SP + 30 : ECX + * SP + 26 : EDX + * SP + 22 : EBX + * SP + 18 : ESP_temp + * SP + 14 : EBP + * SP + 10 : ESI + * SP + 6 : EDI + * SP + 4 : flags_orig + * SP + 2 : SI ; SI points to old entry in MBR + * SP : return_IP + * + */ + + /* DS=ES=FS_BOOT */ + + /* change NTLDR to GRLDR */ + + /* check GR or NT or anything else */ + + pushw %ax + + movw $0x200, %si + lodsw + cmpw $5, %ax + jne 1f /* failure */ + lodsw + testb %ah, %ah /* high byte of unicode ASCII should be 0 */ + jne 1f /* failure */ + + /* 'N' should be a capital letter */ + + cmpb $0x41, %al /* Less than 'A' */ + jb 1f /* failure */ + cmpb $0x5A, %al /* Greater than 'Z'*/ + ja 1f /* failure */ + + xchgw %ax, %cx /* save AX to CX. CL='N' */ + + lodsw + testb %ah, %ah /* high byte of unicode ASCII should be 0 */ + jne 1f /* failure */ + + /* 'T' should be a capital letter */ + + cmpb $0x41, %al /* Less than 'A' */ + jb 1f /* failure */ + cmpb $0x5A, %al /* Greater than 'Z'*/ + ja 1f /* failure */ + + movb %al, %ch /* save AL to CH. CH='T' */ + + lodsw + cmpw $0x4C, %ax /* 'L' */ + jne 1f /* failure */ + lodsw + cmpw $0x44, %ax /* 'D' */ + jne 1f /* failure */ + lodsw + cmpw $0x52, %ax /* 'R' */ + jne 1f /* failure */ + lodsw + cmpw $0x04, %ax /* length of "$I30" */ + jne 1f /* failure */ + lodsw + cmpw $0x24, %ax /* '$' */ + jne 1f /* failure */ + lodsw + cmpw $0x49, %ax /* 'I' */ + jne 1f /* failure */ + lodsw + cmpw $0x33, %ax /* '3' */ + jne 1f /* failure */ + lodsw + cmpw $0x30, %ax /* '0' */ + jne 1f /* failure */ + + + /* assume it is NT bootsector. first, find "NTLDR". CX holds "NT" */ + movw $0x0100, %di + movb %cl, %al /* AL="N" */ + movb $1, %ah /* AH=Carry for SAHF below */ + movl $0x52444c00, %ebx /* "LDR" */ + movb %ch, %bl /* 'T' */ + movw $0x00fa, %cx + + /* now AL holds 'N' and BL holds 'T' */ + + //cld /* already upward */ +3: + repnz scasb /* find "N" */ + jcxz 4f /* gets the end, exit */ + cmpl %ebx, (%di) /* is it "NTLDR"? */ + jnz 3b /* no, continue to find */ + + /* "NTLDR" is found, so we believe it is NT boot sector. */ + + movw $0x5247, -1(%di) /* change "NT" to "GR" */ + + /* CF=0 for now */ + + lahf /* Load Flags into AH */ + /* AH = SF:ZF:xx:AF:xx:PF:xx:CF */ + /* AH = binary xxxxxxx0 */ + jmp 3b +4: + sahf /* Store AH into flags SF ZF xx AF xx PF xx CF */ + + /* CF=0 means "NTLDR" is found, CF=1 means "NTLDR" is not found. */ + + jc 1f /* failure */ + + movl $0x00520047, 0x202 /* change to "G R L D R" */ + + /* check NT 4.0 */ + + movw $0x406, %si + movl (%si), %ebx /* NT 4.0 */ + cmpl $0x03E8B800, %ebx /* MOV AX, 03E8 */ + jnz 3f + + movl 0x84, %ebx + cmpl $0x680007E8, %ebx /* call 008e; push (0D00) */ + jnz 3f + +// movw 0x154, %bx /* CR LF at end of "A disk read error occurred." */ +// cmpw $0x0A0D, %bx /* CR LF */ +// jnz 3f +// movw 0x180, %bx /* CR LF at end of "A kernel file is missing from the disk." */ +// cmpw $0x0A0D, %bx /* CR LF */ +// jnz 3f +// movw 0x1A8, %bx /* CR LF at end of "A kernel file is too discontiguous." */ +// cmpw $0x0A0D, %bx /* CR LF */ +// jnz 3f +// movw 0x1F8, %bx /* CR LF at end of "NTLDR is compressed." */ +// cmpw $0x0A0D, %bx /* CR LF */ +// jnz 3f + + movl 0xE8, %ebx + cmpl $0x13CD80B2, %ebx /* "B2 80"="mov DL, 80", "CD 13"="int 13" */ + jnz 3f + + popw %ax + movw %ax, 4(%si) + + movl $0x68909090, %ebx /* nop;nop;nop;push (0D00) */ + movl %ebx, 0x84 + +// /* change CRLF in NTFS error messages to spaces */ +// movw $0x2020, %bx /* change CRLF to 2 spaces */ +// movw %bx, 0x154 +// movw %bx, 0x180 +// movw %bx, 0x1A8 +// movw %bx, 0x1F8 + + movb %dl, 0xE9 /* modify drive number */ + + /* modify NTFS boot record */ + movb $0xea, %al /* ljmp, hand over the control to supervisor */ + movb %al, 0x122 + //movw $(try_next_partition - _start1), %ax /* offset for ljmp */ + movw $MONITOR, %ax /* offset for ljmp */ + movw %ax, 0x123 + //movw %cs, %ax /* AX=0x9400, segment for ljmp */ + xorw %ax, %ax + movw %ax, 0x125 + + movw $(NTFS4_message - _start1), %si + call print_message /* CS:SI points to message string */ + clc + ret +3: + /* check NT 5.0 */ + + movw $0x44b, %si + movl (%si), %ebx /* NT 5.0 */ + cmpl $0x03E8B800, %ebx /* MOV AX, 03E8 */ + jz 2f + + movw $0x479, %si + movl (%si), %ebx /* NT 5.1 SP2 */ + cmpl $0x03E8B800, %ebx /* MOV AX, 03E8 */ + jnz 1f +2: + movl 0x71, %ebx + cmpl $0x680053E8, %ebx /* call 00C7; push (0D00) */ + jnz 1f + + //movw 0x183, %bx /* CR LF at begin of "A disk read error occurred." */ + movb 0x1F8, %bl + movb $1, %bh + movw (%bx), %bx + cmpw $0x0A0D, %bx /* CR LF */ + jnz 1f + //movw 0x1A0, %bx /* CR LF at begin of "NTLDR is missing." */ + movb 0x1F9, %bl + movb $1, %bh + movw (%bx), %bx + cmpw $0x0A0D, %bx /* CR LF */ + jnz 1f + //movw 0x1B3, %bx /* CR LF at begin of "NTLDR is compressed." */ + movb 0x1FA, %bl + movb $1, %bh + movw (%bx), %bx + cmpw $0x0A0D, %bx /* CR LF */ + jnz 1f + + popw %ax + movw %ax, 4(%si) + + movl $0x68909090, %ebx /* nop;nop;nop;push (0D00) */ + movl %ebx, 0x71 + + /* change CRLF in NTFS error messages to spaces */ + movw $0x2020, %ax + movb 0x1F8, %bl + movb $1, %bh + movw %ax, (%bx) // 0x183 + movb 0x1F9, %bl + movb $1, %bh + movw %ax, (%bx) // 0x1A0 + movb 0x1FA, %bl + movb $1, %bh + movw %ax, (%bx) // 0x1B3 + + /* modify NTFS boot record */ + movb $0xEA, %al /* ljmp, hand over the control to supervisor */ + movb %al, 0x167 + //movw $(try_next_partition - _start1), %ax /* offset for ljmp */ + movw $MONITOR, %ax /* offset for ljmp */ + movw %ax, 0x168 + //movw %cs, %ax /* AX=0x9400, segment for ljmp */ + xorw %ax, %ax + movw %ax, 0x16A + + cmpw $0x44b, %si + jne 2f + movw $(NTFS5_message - _start1), %si + jmp 3f +2: + movw $(NTFS5p_message - _start1), %si +3: + call print_message /* CS:SI points to message string */ + clc + ret +1: + /* NTFS boot record not found. */ + + movw $(NTFS_no_boot_record_message - _start1), %si + call print_message /* CS:SI points to message string */ + + popw %ax + popl %eax /* return_IP and SI */ + popfw + stc + pushfw + pushl %eax /* return_IP and SI */ + ret +#endif + +//#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) +move_helper: + + /* called only once and only when the boot loader loaded this code */ + pushw %si + pushw %bx + pushl %eax + + movw $0x0003, %ax /* set display mode: 80*25 color text */ + int $0x10 + + movw $0x200, %si + movw %si, %di + movw $0xf00, %cx + cld + repz movsw + + popl %eax + popw %bx + popw %si + ret +//#endif + +#if (defined(GRLDR_MBR)) || (defined(GRLDR_INSTALL)) +filesystem_boot: + /* The partition boot record successfully modified, just boot it */ + + /* + * The boot might fail, but we want to take back the control. + * So we save the registers now. + */ + pushw %ds + pushw %es + pushal + + /* DS=CS=GRLDR_CS, ES=FS_BOOT */ + + /* save GRLDR_CS */ + + movw %es, %bx # save old ES to BX + + cli + lgdt gdt - _start1 + movl %cr0, %eax + orb $1, %al + movl %eax, %cr0 + + movw $8, %si + movw %si, %es + + xorl %esi, %esi + xorl %edi, %edi + movl $(0x9000 / 4), %ecx + + cld + repz movsl + + movw $16, %si + movw %si, %es + + andb $0xfe, %al + movl %eax, %cr0 + + movw %bx, %es # restore ES from BX + + /* move FS_BOOT:0000 to 0:7c00 */ +#if 0 + /* for single sector boot record */ + movw $0x0200, %cx /* move 2 sectors, the old FS_BOOT:0000 will + * keep untouched. */ +#else + /* for 4-sector NTFS boot record */ + movw $0x0400, %cx /* move 4 sectors, the old FS_BOOT:0000 will + * keep untouched. */ +#endif + xorw %si, %si + pushw %si /* SI=0, for the segment of 0000:7c00 */ + movw $0x7c00, %di + pushw %di /* DI=0x7c00, for the offset of 0000:7c00 */ + pushw %es /* ES=FS_BOOT */ + popw %ds /* DS=FS_BOOT */ + pushw %si /* SI=0 */ + popw %es /* ES=0 */ + cld + repz movsw + + movw $MONITOR, %di + movw $(restore_GRLDR_CS - _start1), %si + movw $((gdt_end - restore_GRLDR_CS) / 4), %cx + cld + repz cs movsl /* CS segment override prefix(=0x2E) */ + + pushw %es /* ES=0 */ + popw %ds /* DS=0 */ + sti + lret //ljmp $0, $0x7c00 +#endif + +press_space_bar_string: + .ascii "\r\nPress space bar\0" + +press_hot_key_pre: + .ascii "\r\nPress \0" + +press_hot_key_sub: + .ascii " to start GRUB, any other key to boot previous MBR ...\0" + +hot_key_timeout_pre: + .ascii "\r\nTimeout : \0" + +hot_key_timeout_num: + .ascii " \b\b\b\0" + +continue_string: + .ascii "\r\nInvalid previous MBR. Press any key to start GRUB ...\0" + +Cannot_find_GRLDR_string: + .ascii "\r\nCannot find GRLDR.\0" + +prev_MBR_string: + .ascii " to hold the screen, any other key to boot previous MBR ...\0" + +Error_while_reading_string: + .ascii "\r\nError while reading MBR of \0" + +drive_number_string: + .ascii "drive (hd0 ) \0" + +partition_boot_indicator_string: + .ascii "\r\nInvalid boot indicator in partition table of \0" + +partition_sectors_per_track_string: + .ascii "\r\nInvalid sectors_per_track in partition table of \0" + +partition_start_sector_string: + .ascii "\r\nInvalid start_sector in partition table of \0" + +partition_end_sector_string: + .ascii "\r\nInvalid end_sector in partition table of \0" + +no_boot_signature_string: + .ascii "\r\nNo boot signature in partition table of \0" + +message_string_helper: + .ascii "\r\nError: Cannot find GRLDR in all devices. Press Ctrl+Alt+Del to restart.\0" + +partition_message: + .ascii "\r\nTry (hd0,0 ) : \0" + +EXT2_message: + .ascii "EXT2: \0" +NTFS4_message: + .ascii "NTFS4: \0" +NTFS5_message: + .ascii "NTFS5: \0" +NTFS5p_message: + .ascii "NTFS5p: \0" +FAT32_message: + .ascii "FAT32: \0" +FAT16_message: + .ascii "FAT16: \0" +FAT12_message: + .ascii "FAT12: \0" +non_MS_message: + .ascii "non-MS: skip \0" +extended_message: + .ascii "Extended: \0" +invalid_message: + .ascii "invalid or null \0" +#if 0 +NTFS_no_boot_record_message: + .ascii "This partition is NTFS but with unknown boot record. Please\r\ninstall Microsoft NTFS boot sectors to this partition correctly, or create an\r\nFAT12/16/32 partition and place the same copy of GRLDR and MENU.LST there.\0" +#endif + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + . = _start1 + 0x1ffa +#else + . = . + (0x3ec - ((. - _start1) % 0x200)) % 0x200 + +press_hot_key_name: + + /* hot key name, the address is (grldr_signature - 16) */ + + .ascii "hot-key\0" + + . = press_hot_key_name + 14 + + //. = . + (0x3fa - ((. - _start1) % 0x200)) % 0x200 +#endif + + /* version word of grldr.mbr, the address is (grldr_signature - 2) */ + + .word 2 + +grldr_signature: + .byte 0x47, 0x52, 0x55, 0xaa /* signature for helper */ + + .align 0x200 + +#if (! defined(GRLDR_MBR)) && (! defined(GRLDR_INSTALL)) + + /* pre_stage2 start at 0x2000 for grldr */ + + . = _start1 + 0x2000 + +#endif + +#if defined(GRLDR_MBR) + /* if the size is less than 8192, let it be 8192 */ + . = . + (0x2000 - (. - _start1)) * (0x4000 / (. - _start1 + 0x2001)) +#endif + +pre_stage2_start: + + --- grub2-1.99.orig/debian/grub-extras/ntldr-img/ntfsbs.S +++ grub2-1.99/debian/grub-extras/ntldr-img/ntfsbs.S @@ -0,0 +1,1504 @@ +/* + * GRUB Utilities -- Utilities for GRUB Legacy, GRUB2 and GRUB for DOS + * Copyright (C) 2007 Bean (bean123@126.com) + * + * 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. + */ + +/* NTFS boot sector for loading GRLDR , written by bean + * + * This file can be compiled as standaolne boot sector, or it can be embeded in + * GRLDR.MBR at 0xA00 , right after the ext2 boot sector + * + * To compile the standalone ntfsbs.bin: + * gcc -c -o ntfsbs.o ntfsbs.S + * gcc -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 -o ntfsbs_exec ntfsbs.o + * objcopy -O binary ntfsbs_exec ntfsbs.bin + * + * To install the standalone ntfsbs.bin: + * grubinst --restore=ntfsbs.bin DEVICE_OR_FILE + * + * Where DEVICE_OR_FILE specify a NTFS partition + * + * Limitations: + * 1. Don't support >1K MFT record size, >4K INDEX record size + * 2. Don't support encrypted file + * 3. Don't support >4K non-resident attribute list and $BITMAP + * + */ + +#ifndef INSIDE_GRLDR + + .text + + .code16 +#endif + +#define AT_STANDARD_INFORMATION 0x10 +#define AT_ATTRIBUTE_LIST 0x20 +#define AT_FILENAME 0x30 +#define AT_OBJECT_ID 0x40 +#define AT_SECURITY_DESCRIPTOR 0x50 +#define AT_VOLUME_NAME 0x60 +#define AT_VOLUME_INFORMATION 0x70 +#define AT_DATA 0x80 +#define AT_INDEX_ROOT 0x90 +#define AT_INDEX_ALLOCATION 0xA0 +#define AT_BITMAP 0xB0 +#define AT_SYMLINK 0xC0 +#define AT_EA_INFORMATION 0xD0 +#define AT_EA 0xE0 + +#define MAX_MFT_SIZE 1 // 1<<(1+9) = 1024 +#define MAX_IDX_SIZE 3 // 1<<(3+9) = 4096 + +#define LOADSEG_NT 0x2000 + +#define MMFT_BASE 0x2000 +#define MMFT_EMFT (MMFT_BASE +1024) +#define MMFT_EBUF (MMFT_BASE + 2048) + +#define CMFT_BASE (MMFT_BASE + 6144) +#define CMFT_EMFT (CMFT_BASE + 1024) +#define CMFT_EBUF (CMFT_BASE + 2048) + +#define INDX_BASE (CMFT_BASE + 6144) + +#define SBUF_BASE (INDX_BASE + 4096) + +#define NTFS_Large_Structure_Error_Code 1 +#define NTFS_Corrupt_Error_Code 2 +#define NTFS_Run_Overflow_Error_Code 3 +#define NTFS_No_Data_Error_Code 4 +#define NTFS_Decompress_Error_Code 5 + +#define NT_FG_COMP 1 +#define NT_FG_MMFT 2 +#define NT_FG_ALST 4 +#define NT_FG_GPOS 8 + +#define nt_boot_drive -2(%bp) +#define nt_blocksize -4(%bp) +#define nt_spc -5(%bp) +#define nt_mft_size -6(%bp) +#define nt_idx_size -7(%bp) +#define nt_mft_start -12(%bp) +#define nt_remain_len -16(%bp) +//#define nt_file_count -18(%bp) + +#define nt_flag (%di) +#define nt_attr_cur 2(%di) +#define nt_attr_nxt 4(%di) +#define nt_attr_end 6(%di) +#define nt_curr_vcn 8(%di) +#define nt_curr_lcn 0x10(%di) +#define nt_attr_ofs 0x14(%di) +#define nt_target_vcn 0x18(%di) +#define nt_read_count 0x1C(%di) +#define nt_vcn_offset 0x20(%di) + +#define nt_emft_buf 1024(%di) +#define nt_edat_buf 2048(%di) + + .arch i586 + +Entry_nt: + jmp 1f + + . = Entry_nt + 0x02 + + .byte 0x90 /* for CHS. Another possible value is 0x0e for LBA */ + + .ascii "NTFS " + + .word 0 /* 0B - Bytes per sector */ + .byte 0 /* 0D - Sectors per cluster */ + .word 0 /* 0E - reserved sectors, unused */ + .byte 0 /* 10 - number of FATs, unused */ + .word 0 /* 11 - Max dir entries for FAT12/FAT16, unused */ + .word 0 /* 13 - total sectors for FAT12/FAT16, unused */ + .byte 0xF8 /* 15 - Media descriptor */ + .word 0 /* 16 - sectors per FAT for FAT12/FAT16, unused */ + .word 255 /* 18 - Sectors per track */ + .word 63 /* 1A - Number of heads */ +nt_part_ofs: + .long 0 /* 1C - hidden sectors */ + .long 0 /* 20 - total sectors for FAT32, unused */ + .long 0x800080 + /* 24 - Usually 80 00 80 00, A value of 80 00 00 00 has + * been seen on a USB thumb drive which is formatted + * with NTFS under Windows XP. Note this is removable + * media and is not partitioned, the drive as a whole + * is NTFS formatted. + */ + .long 0,0 /* 28 - Number of sectors in the volume */ + .long 0,0 /* 30 - LCN of VCN 0 of the $MFT */ + .long 0,0 /* 38 - LCN of VCN 0 of the $MFTMirr */ + .long 0 /* 40 - Clusters per MFT Record */ + .long 4 /* 44 - Clusters per Index Record */ + .long 0,0 /* 48 - Volume serial number */ + .long 0 /* 50 - Checksum, usually 0 */ + +1: + + . = Entry_nt + 0x54 + + cli + cld + + . = Entry_nt + 0x56 + + /* the byte at offset 0x57 stores the real partition number for read. + * the format program or the caller should set it to a correct value. + * For floppies, it should be 0xff, which stands for whole drive. + */ + + movb $0xff, %dh /* boot partition number */ + + xorw %ax, %ax + movw %ax, %ds + movw $0x7c00, %bp + movw %ax, %es + + movw %ax, %ss /* stack and BP-relative moves up, too */ + leaw -0x20(%bp), %sp + sti + + movw %dx, nt_boot_drive + + /* Test if your BIOS support LBA mode */ + movb $0x41, %ah + movw $0x55AA, %bx + int $0x13 + jc 1f /* No EBIOS */ + cmpw $0xAA55, %bx + jne 1f /* No EBIOS */ + testb $1, %cl + jz 1f /* No EBIOS */ + /* EBIOS supported */ + movb $0x42, (ebios_nt - 1 - Entry_nt)(%bp) +1: + + cmpl $0x42555247, (nt_sector_mark - Entry_nt)(%bp) + jz 1f // Must be called from GRLDR.MBR + + movw $0x7E00, %bx + movl (nt_part_ofs - Entry_nt)(%bp), %eax + incl %eax + call readDisk_nt // Load the second sector from disk + call readDisk_nt // Load the third sector from disk + call readDisk_nt +1: + + xorl %eax, %eax + movw 0xb(%bp), %ax // Bytes per sector (blocksize) + movw %ax, nt_blocksize + + call convert_to_power_2 + movb %cl, %bl + movb 0xd(%bp), %al // Sectors per cluster + call convert_to_power_2 + movb %cl, %ch + addb %bl, %ch + subb $9, %ch // 1< + +#endif + +#include +#include + +#include "utils.h" + +static unsigned char ebuf[512]; + +#if defined(WIN32) + +#ifdef __GNUC__ // Mingw or Cygwin + +#define u_off_t off64_t +#define u_lseek lseek64 + +#else + +#define u_off_t __int64 +#define u_lseek _lseeki64 + +#endif + +#else + +#define u_off_t off_t // In FreeBSD, off_t is 64-bit ! +#define u_lseek lseek + +#endif + +int go_sect(int hd,unsigned long sec) +{ + // Test if 64-bit seek is supported + if (sizeof(u_off_t)>=8) + { + u_off_t bs,rs; + + bs=sec; + bs<<=9; + rs=u_lseek(hd,bs,SEEK_SET); + return (bs!=rs); + } + else + { + unsigned long bs[2]; + + bs[0]=sec<<9; + bs[1]=sec>>23; + if (bs[1]) + return 1; + return (lseek(hd,bs[0],SEEK_SET)!=bs[0]); + } +} + +// Partition enumerator +// xe->cur is the current partition number, before the first call to xd_enum, +// it should be set to 0xFF +// xe->nxt is the target partition number, if it equals 0xFF, it means enumerate +// all partitions, otherwise, it means jump to the specific partition. +int xd_enum(int hd,xde_t* xe) +{ + int nn=512,kk=1,cc; + + for (cc=xe->cur;;) + { + if (cc==0xFF) + { + unsigned long pt[4][2]; + int i,j,np; + + if (go_sect(hd,0)) + return 1; + if (read(hd,ebuf,nn)!=nn) + return 1; + if (valueat(ebuf,0x1FE,unsigned short)!=0xAA55) + return 1; + np=0; + for (i=0x1BE;i<0x1FE;i+=16) + if (ebuf[i+4]) + { + if ((pt[np][1]=valueat(ebuf,i+12,unsigned long))==0) + return 1; + pt[np++][0]=valueat(ebuf,i+8,unsigned long); + } + if (np==0) + return 1; + // Sort partition table base on start address + for (i=0;ipt[j][0]) k=j; + if (k!=i) + { + unsigned long tt; + + tt=pt[i][0]; + pt[i][0]=pt[k][0]; + pt[k][0]=tt; + tt=pt[i][1]; + pt[i][1]=pt[k][1]; + pt[k][1]=tt; + } + } + // Should have space for MBR + if (pt[0][0]==0) + return 1; + // Check for partition overlap + for (i=0;ipt[i+1][0]) + return 1; + cc=0; + } + else if (kk) + cc++; + if ((unsigned char)cc>xe->nxt) + return 1; + if (cc<4) + { + if (xe->nxt<4) + { + // Empty partition + if (! ebuf[xe->nxt*16+4+0x1BE]) + return 1; + xe->cur=xe->nxt; + xe->dfs=ebuf[xe->nxt*16+4+0x1BE]; + xe->bse=valueat(ebuf,xe->nxt*16+8+0x1BE,unsigned long); + xe->len=valueat(ebuf,xe->nxt*16+12+0x1BE,unsigned long); + return 0; + } + else if (xe->nxt!=0xFF) + cc=4; + else while (cc<4) + { + if (ebuf[cc*16+4+0x1BE]) + { + xe->cur=cc; + xe->dfs=ebuf[cc*16+4+0x1BE]; + xe->bse=valueat(ebuf,cc*16+8+0x1BE,unsigned long); + xe->len=valueat(ebuf,cc*16+12+0x1BE,unsigned long); + return 0; + } + cc++; + } + } + if ((cc==4) && (kk)) + { + int i; + + // Scan for extended partition + for (i=0;i<4;i++) + if ((ebuf[i*16+4+0x1BE]==5) || (ebuf[i*16+4+0x1BE]==0xF)) break; + if (i==4) + return 1; + xe->ebs=xe->bse=valueat(ebuf,i*16+8+0x1BE,unsigned long); + } + else + { + // Is end of extended partition chain ? + if ((ebuf[4+0x1CE]!=0x5) && (ebuf[4+0x1CE]!=0xF) || + (valueat(ebuf,8+0x1CE,unsigned long)==0)) + return 1; + xe->bse=xe->ebs+valueat(ebuf,8+0x1CE,unsigned long); + } + { + int r; + + while (1) + { + if (go_sect(hd,xe->bse)) + return 1; + + if (read(hd,ebuf,nn)!=nn) + return 1; + + if (valueat(ebuf,0x1FE,unsigned short)!=0xAA55) + return 1; + + if ((ebuf[4+0x1BE]==5) || (ebuf[4+0x1BE]==0xF)) + if (valueat(ebuf,8+0x1BE,unsigned long)==0) + return 1; + else + { + xe->bse=xe->ebs+valueat(ebuf,8+0x1BE,unsigned long); + continue; + } + break; + } + kk=(ebuf[4+0x1BE]!=0); + if ((kk) && ((xe->nxt==0xFF) || (cc==xe->nxt))) + { + xe->cur=cc; + xe->dfs=ebuf[4+0x1BE]; + xe->bse+=valueat(ebuf,8+0x1BE,unsigned long); + xe->len=valueat(ebuf,12+0x1BE,unsigned long); + return 0; + } + } + } +} + +#define EXT2_SUPER_MAGIC 0xEF53 + +int mbr_nhd, mbr_spt; + +void split_chs(unsigned char* chs,unsigned long* c,unsigned long* h,unsigned long* s) +{ + *h=chs[0]; + *s=(chs[1] & 0x3F)-1; + *c=((unsigned long)(chs[1]>>6))*256+chs[2]; +} + +int chk_chs(unsigned long nhd,unsigned long spt,unsigned long lba,unsigned char* chs) +{ + unsigned long c,h,s; + + split_chs(chs,&c,&h,&s); + if (c==0x3FF) + return ((nhd==h+1) && (spt==s+1)); + else + return (c*nhd*spt+h*spt+s==lba); +} + +int chk_mbr(unsigned char* buf) +{ + unsigned long nhd,spt,a1,a2,c2,h2,s2; + int i; + + i=0x1BE; + while ((i<0x1FE) && (buf[i+4]==0)) + i+=16; + if (i>=0x1FE) + return 0; + a1=valueat(buf[i],8,unsigned long); + a2=a1+valueat(buf[i],12,unsigned long)-1; + if (a1>=a2) + return 0; + split_chs(buf+i+5,&c2,&h2,&s2); + if (c2==0x3FF) + { + nhd=h2+1; + spt=s2+1; + if (! chk_chs(nhd,spt,a1,buf+i+1)) + return 0; + } + else + { + unsigned long c1,h1,s1; + long n1,n2; + + split_chs(buf+i+1,&c1,&h1,&s1); + if ((c1==0x3FF) || (c1>c2)) + return 0; + n1=(long)(c1*a2)-(long)(c2*a1)-(long)(c1*s2)+(long)(c2*s1); + n2=(long)(c1*h2)-(long)(c2*h1); + if (n2<0) + { + n2=-n2; + n1=-n1; + } + if ((n2==0) || (n1<=0) || (n1 % n2)) + return 0; + spt=(unsigned long)(n1/n2); + if (c2) + { + n1=(long)a2-(long)s2-(long)(h2*spt); + n2=(long)(c2*spt); + if ((n2==0) || (n1<=0) || (n1 % n2)) + return 0; + nhd=(unsigned long)(n1/n2); + } + else + nhd=h2+1; + } + if ((nhd==0) || (nhd>255) || (spt==0) || (spt>63)) + return 0; + i+=16; + while (i<0x1FE) + { + if (buf[i+4]) + { + if ((! chk_chs(nhd,spt,valueat(buf[i],8,unsigned long),buf+i+1)) || + (! chk_chs(nhd,spt,valueat(buf[i],8,unsigned long)+valueat(buf[i],12,unsigned long)-1,buf+i+5))) + return 0; + } + i+=16; + } + mbr_nhd=(int)nhd; + mbr_spt=(int)spt; + return 1; +} + +int get_fstype(unsigned char* buf) +{ + if (chk_mbr(buf)) + return FST_MBR; + + // The first sector of EXT2 might not contain the 0xAA55 signature + if (valueat(buf[1024],56,unsigned short)==EXT2_SUPER_MAGIC) + return FST_EXT2; + if (valueat(buf[0],0x1FE,unsigned short)!=0xAA55) + return FST_OTHER; + if (! strncmp(&buf[0x36],"FAT",3)) + return ((buf[0x26]==0x28) || (buf[0x26]==0x29))?FST_FAT16:FST_OTHER; + if (! strncmp(&buf[0x52],"FAT32",5)) + return ((buf[0x42]==0x28) || (buf[0x42]==0x29))?FST_FAT32:FST_OTHER; + if (! strncmp(&buf[0x3],"NTFS",4)) + return ((buf[0]==0xEB) && (buf[1]==0x52))?FST_NTFS:FST_OTHER; + return FST_OTHER; +} + +char* fst2str(int fs) +{ + switch (fs) { + case FST_OTHER: + return "Other"; + case FST_MBR: + return "MBR"; + case FST_FAT16: + return "FAT12/FAT16"; + case FST_FAT32: + return "FAT32"; + case FST_NTFS: + return "NTFS"; + case FST_EXT2: + return "EXT2/EXT3"; + default: + return "Unknown"; + } +} + +typedef struct { + int id; + char* str; +} fstab_t; + +static fstab_t fstab[]= { + {0x1,"FAT12"}, + {0x4,"FAT16"}, + {0x5,"Extended"}, + {0x6,"FAT16B"}, + {0x7,"NTFS"}, + {0xB,"FAT32"}, + {0xC,"FAT32X"}, + {0xE,"FAT16X"}, + {0xF,"ExtendedX"}, + {0x11,"(H)FAT12"}, + {0x14,"(H)FAT16"}, + {0x16,"(H)FAT16B"}, + {0x17,"(H)NTFS"}, + {0x1B,"(H)FAT32"}, + {0x1C,"(H)FAT32X"}, + {0x1E,"(H)FAT16X"}, + {0x82,"Swap"}, + {0x83,"Ext2"}, + {0xA5,"FBSD"}, + {0,"Other"}}; + +char* dfs2str(int fs) +{ + int i; + + for (i=0;fstab[i].id;i++) + if (fs==fstab[i].id) + return fstab[i].str; + return fstab[i].str; +} --- grub2-1.99.orig/debian/grub-extras/ntldr-img/bin2h.c +++ grub2-1.99/debian/grub-extras/ntldr-img/bin2h.c @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2008 Robert Millan + * + * 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 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, see . + */ + +#include +#include + +int +main (int argc, char *argv[]) +{ + int b, i; + char *sym; + unsigned int len; + + if (argc != 3) + { + fprintf (stderr, "Usage: %s symbol_name length\n", argv[0]); + exit (1); + } + + sym = argv[1]; + len = atoi (argv[2]); + + b = getchar (); + if (b == EOF) + goto abort; + + printf ("/* THIS CHUNK OF BYTES IS AUTOMATICALY GENERATED */\n" + "unsigned char %s[%u] =\n{\n", sym, len); + + while (1) + { + printf ("0x%02x", b); + + b = getchar (); + if (b == EOF) + goto end; + + for (i = 0; i < 16 - 1; i++) + { + printf (", 0x%02x", b); + + b = getchar (); + if (b == EOF) + goto end; + } + + printf (",\n"); + } + +end: + printf ("\n};\n"); + +abort: + exit (0); +} --- grub2-1.99.orig/debian/grub-extras/ntldr-img/README +++ grub2-1.99/debian/grub-extras/ntldr-img/README @@ -0,0 +1,11 @@ + +grub-extras is meant to be used as an overlay on grub2 source tree. + +Build instructions: + + - Copy grub-extras in a subdirectory of your grub2 checkout. + For example, "grub-extras". + + - Export GRUB_CONTRIB environment variable to point to this directory. + + - Build GRUB as usual. --- grub2-1.99.orig/debian/grub-extras/ntldr-img/g2hdr.S +++ grub2-1.99/debian/grub-extras/ntldr-img/g2hdr.S @@ -0,0 +1,99 @@ +/* + * GRUB Utilities -- Utilities for GRUB Legacy, GRUB2 and GRUB for DOS + * Copyright (C) 2007 Bean (bean123@126.com) + * + * 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 + + .file "g2hdr.S" + + .text + + .code16 + + .globl start, _start + +start: +_start: + + // We are at 0x2000:0 + // Move itself to 0x800:0 + // Don't modify dx + + cld + movw %cs, %ax + movw %ax, %ds + movw $0x800, %ax + movw %ax, %es + xorw %si, %si + movw %si, %di + movw $0x80, %cx + + rep + movsl + + ljmp $0, $(jump_start-start+0x8000) + +jump_start: + // Move data from 0x2040:0 to 0x820:0 + + movw $0x2040, %ax + movw %ax, %ds + movw $0x820, %ax + movw %ax, %es + xorl %eax, %eax + movb %dh, %al + movl %eax, GRUB_KERNEL_MACHINE_INSTALL_DOS_PART + movl GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, %eax + addl $GRUB_KERNEL_MACHINE_RAW_SIZE, %eax + xorl %ecx, %ecx + +1: + xorw %si, %si + movw %si, %di + + movw $0x8000, %cx + cmpl %ecx, %eax + jae 2f + movw %ax, %cx +2: + + pushw %cx + addw $3, %cx + shrw $2, %cx + + rep + movsl + + popw %cx + + movw %ds, %si + addw $0x800, %si + movw %si, %ds + + movw %es, %si + addw $0x800, %si + movw %si, %es + + subl %ecx, %eax + jnz 1b + + ljmp $0, $(0x8000 + 0x200) + + . = _start + 0x200 - 2 + + .word 0xAA55 --- grub2-1.99.orig/debian/grub-extras/ntldr-img/Makefile.core.def +++ grub2-1.99/debian/grub-extras/ntldr-img/Makefile.core.def @@ -0,0 +1,21 @@ +AutoGen definitions Makefile.tpl; + +image = { + name = g2hdr; + i386_pc = contrib/ntldr-img/g2hdr.S; + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; + i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x0'; + objcopyflags = '-O binary'; + enable = i386_pc; +}; + +image = { + name = grldr; + i386_pc = contrib/ntldr-img/grldrstart.S; + i386_pc = contrib/ntldr-img/ntfsbs.S; + i386_pc_ccasflags = -DGRLDR_MBR; + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; + i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x7c00'; + objcopyflags = '-O binary'; + enable = i386_pc; +}; --- grub2-1.99.orig/debian/grub-extras/ntldr-img/grubinst.c +++ grub2-1.99/debian/grub-extras/ntldr-img/grubinst.c @@ -0,0 +1,1036 @@ +/* + * GRUB Utilities -- Utilities for GRUB Legacy, GRUB2 and GRUB for DOS + * Copyright (C) 2007 Bean (bean123@126.com) + * + * 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 +#include + +#ifndef WIN32 + +#define O_BINARY 0 + +#endif + +#include "grub_mbr.h" +#include "utils.h" +#include "version.h" + +// Application flags, used by this program + +#define AFG_VERBOSE 1 +#define AFG_PAUSE 2 +#define AFG_READ_ONLY 4 +#define AFG_NO_BACKUP_MBR 8 +#define AFG_FORCE_BACKUP_MBR 16 +#define AFG_RESTORE_PREVMBR 32 +#define AFG_LIST_PART 64 +#define AFG_IS_FLOPPY 128 +#define AFG_LBA_MODE 256 +#define AFG_CHS_MODE 512 +#define AFG_OUTPUT 1024 +#define AFG_EDIT 2048 + +// Grldr flags, this flag is used by grldr.mbr + +#define GFG_DISABLE_FLOPPY 1 +#define GFG_DISABLE_OSBR 2 +#define GFG_DUCE 4 +#define GFG_PREVMBR_LAST 128 + +#define APP_NAME "grubinst: " + +#define print_pause if (afg & AFG_PAUSE) {fputs("Press to continue ...\n",stderr); fflush(stderr); fgetc(stdin);} + +#define print_apperr(a) { fprintf(stderr,APP_NAME "%s\n",a); print_pause; } +#define print_syserr(a) { perror(APP_NAME a); print_pause; } + +void help(void) +{ + fputs("Usage:\n" + "\tgrubinst [OPTIONS] DEVICE_OR_FILE\n\n" + "OPTIONS:\n\n" + "\t--help,-h\t\tShow usage information\n\n" + "\t--pause\t\t\tPause before exiting\n\n" + "\t--version\t\tShow version information\n\n" + "\t--verbose,-v\t\tVerbose output\n\n" + "\t--list-part,-l\t\tList all logical partitions in DEVICE_OR_FILE\n\n" + "\t--save=FN,-s=FN\t\tSave the orginal MBR/BS to FN\n\n" + "\t--restore=FN,-r=FN\tRestore MBR/BS from previously saved FN\n\n" + "\t--restore-prevmbr,-r\tRestore previous MBR saved in the second sector\n" + "\t\t\t\tof DEVICE_OR_FILE\n\n" + "\t--read-only,-t\t\tdo everything except the actual write to the\n" + "\t\t\t\tspecified DEVICE_OR_FILE. (test mode)\n\n" + "\t--no-backup-mbr\t\tdo not copy the old MBR to the second sector of\n" + "\t\t\t\tDEVICE_OR_FILE.\n\n" + "\t--force-backup-mbr\tforce the copy of old MBR to the second sector\n" + "\t\t\t\tof DEVICE_OR_FILE.(default)\n\n" + "\t--mbr-enable-floppy\tenable the search for GRLDR on floppy.(default)\n\n" + "\t--mbr-disable-floppy\tdisable the search for GRLDR on floppy.\n\n" + "\t--mbr-enable-osbr\tenable the boot of PREVIOUS MBR with invalid\n" + "\t\t\t\tpartition table (usually an OS boot sector).\n" + "\t\t\t\t(default)\n\n" + "\t--mbr-disable-osbr\tdisable the boot of PREVIOUS MBR with invalid\n" + "\t\t\t\tpartition table (usually an OS boot sector).\n\n" + "\t--duce\t\t\tdisable the feature of unconditional entrance\n" + "\t\t\t\tto the command-line.\n\n" + "\t--boot-prevmbr-first\ttry to boot PREVIOUS MBR before the search for\n" + "\t\t\t\tGRLDR.\n\n" + "\t--boot-prevmbr-last\ttry to boot PREVIOUS MBR after the search for\n" + "\t\t\t\tGRLDR.(default)\n\n" + "\t--preferred-drive=D\tpreferred boot drive number, 0 <= D < 255.\n\n" + "\t--preferred-partition=P\tpreferred partition number, 0 <= P < 255.\n\n" + "\t--time-out=T,-t=T\twait T seconds before booting PREVIOUS MBR. if\n" + "\t\t\t\tT is 0xff, wait forever. The default is 5.\n\n" + "\t\t\t\tbefore booting PREVIOUS MBR. K is a word\n" + "\t\t\t\tvalue, just as the value in AX register\n" + "\t\t\t\treturned from int16/AH=1. The high byte is the\n" + "\t\t\t\tscan code and the low byte is ASCII code. The\n" + "\t\t\t\tdefault is 0x3920 for space bar.\n\n" + "\t--key-name=S\t\tSpecify the name of the hot key.\n\n" + "\t--floppy,-f\t\tif DEVICE_OR_FILE is floppy, use this option.\n\n" + "\t--floppy=N\t\tif DEVICE_OR_FILE is a partition on a hard\n" + "\t\t\t\tdrive, use this option. N is used to specify\n" + "\t\t\t\tthe partition number: 0,1,2 and 3 for the\n" + "\t\t\t\tprimary partitions, and 4,5,6,... for the\n" + "\t\t\t\tlogical partitions.\n\n" + "\t--sectors-per-track=S\tspecifies sectors per track for --floppy.\n" + "\t\t\t\t1 <= S <= 63, default is 63.\n\n" + "\t--heads=H\t\tspecifies number of heads for --floppy.\n" + "\t\t\t\t1 <= H <= 256, default is 255.\n\n" + "\t--start-sector=B\tspecifies hidden sectors for --floppy=N.\n\n" + "\t--total-sectors=C\tspecifies total sectors for --floppy.\n" + "\t\t\t\tdefault is 0.\n\n" + "\t--lba\t\t\tuse lba mode for --floppy. If the floppy BIOS\n" + "\t\t\t\thas LBA support, you can specify --lba here.\n" + "\t\t\t\tIt is assumed that all floppy BIOSes have CHS\n" + "\t\t\t\tsupport. So you would rather specify --chs.\n" + "\t\t\t\tIf neither --chs nor --lba is specified, then\n" + "\t\t\t\tthe LBA indicator(i.e., the third byte of the\n" + "\t\t\t\tboot sector) will not be touched.\n\n" + "\t--chs\t\t\tuse chs mode for --floppy. You should specify\n" + "\t\t\t\t--chs if the floppy BIOS does not support LBA.\n" + "\t\t\t\tWe assume all floppy BIOSes have CHS support.\n" + "\t\t\t\tSo it is likely you want to specify --chs.\n" + "\t\t\t\tIf neither --chs nor --lba is specified, then\n" + "\t\t\t\tthe LBA indicator(i.e., the third byte of the\n" + "\t\t\t\tboot sector) will not be touched.\n\n" + "\t--install-partition=I\tInstall the boot record onto the boot area of\n" + "\t-p=I\t\t\tpartition number I of the specified hard drive\n" + "\t\t\t\tor harddrive image DEVICE_OR_FILE.\n\n" + "\t--boot-file=F,-b=F\tChange the name of boot file.\n\n" + "\t--load-seg=S\t\tChange load segment for boot file.\n\n" + "\t--grub2,-2\t\tLoad grub2 kernel g2ldr instead of grldr.\n\n" + "\t--output,-o\t\tSave embeded grldr.mbr to DEVICE_OR_FILE.\n\n" + "\t--edit,-e\t\tEdit external grldr/grldr.mbr.\n", + stderr); +} + +int afg,gfg,def_drive,def_part,time_out,hot_key,part_num; +int def_spt,def_hds,def_ssc,def_tsc; +char *save_fn,*restore_fn,*boot_file,boot_file_83[12],*key_name; +unsigned short load_seg; + +static char fn_buf[24]; + +char* get_disk_name(int n) +{ +#if defined(WIN32) + sprintf(fn_buf,"\\\\.\\PhysicalDrive%d",n); +#elif defined(LINUX) + sprintf(fn_buf,"/dev/hd%c",'a'+n); +#elif defined(FREEBSD) + sprintf(fn_buf,"/dev/ad%d",n); +#else + print_apperr("Disk device is not supported in your system"); + return NULL; +#endif + return fn_buf; +} + +char* get_flop_name(int n) +{ +#if defined(WIN32) + if (n>1) + { + print_apperr("Only two floppy drives are supported"); + return NULL; + } + sprintf(fn_buf,"\\\\.\\%c:",'A'+n); +#elif defined(LINUX) || defined(FREEBSD) + sprintf(fn_buf,"/dev/fd%d",n); +#else + print_apperr("Floppy device is not supported in your system"); + return NULL; +#endif + return fn_buf; +} + +char* parse_fname(char* fn) +{ + if ((afg & AFG_OUTPUT) && (fn[0]=='(')) + { + print_apperr("Can\'t use device name while using --output option"); + return NULL; + } + if ((! strncmp(fn,"(hd",3)) || (! strncmp(fn,"(fd",3))) + { + int n; + char *p; + + n=strtol(&fn[3],&p,0); + if ((n<0) || (n>=MAX_DISKS)) + { + print_apperr("Invalid device number"); + return NULL; + } + if (*p==',') + { + part_num=strtol(p+1,&p,0); + if ((part_num<0) || (part_num>=MAX_PARTS)) + { + print_apperr("Invalid partition number"); + return NULL; + } + } + if ((*p!=')') || (*(p+1)!=0)) + { + print_apperr("Invalid device name"); + return NULL; + } + if (fn[1]=='h') + fn=get_disk_name(n); + else + { + fn=get_flop_name(n); + afg|=AFG_IS_FLOPPY; + } + } + return fn; +} + +char* str_upcase(char* str) +{ + int i; + + for (i=0;str[i];i++) + if ((str[i]>='a') && (str[i]<='z')) + str[i]-='a'-'A'; + + return str; +} + +char* str_lowcase(char* str) +{ + int i; + + for (i=0;str[i];i++) + if ((str[i]>='A') && (str[i]<='Z')) + str[i]+='a'-'A'; + + return str; +} + +int SetBootFile(char* fn) +{ + char* pc; + + if (*fn==0) + return 1; + if (strlen(fn)>7) + return 1; + pc=strchr(fn,'.'); + if (pc) + if ((pc==fn) || (pc-fn>8) || (strlen(pc+1)>3)) + return 1; + str_upcase(fn); + memset(boot_file_83,' ',sizeof(boot_file_83)-1); + if (pc) + { + memcpy(boot_file_83,fn,pc-fn); + memcpy(&boot_file_83[8],pc+1,strlen(pc+1)); + } + else + memcpy(boot_file_83,fn,strlen(fn)); + str_lowcase(fn); + boot_file=fn; + return 0; +} + +int chk_mbr(unsigned char* buf); + +void list(int hd) +{ + xde_t xe; + + xe.cur=xe.nxt=0xFF; + fprintf(stderr," # id base leng\n"); + while (! xd_enum(hd,&xe)) + fprintf(stderr,"%2d %02X %8X %8X\n",xe.cur,xe.dfs,xe.bse,xe.len); +} + +int is_grldr_mbr(char* buf) +{ + int i,n; + + i=0x1B7; + n=sizeof("Missing MBR-helper.")-1; + + while ((i>n) && (buf[i]==0)) + i--; + return (! strcmp(&buf[i-n+1],"Missing MBR-helper.")); +} + +int install(char* fn) +{ + int hd,nn,fs,slen; + char prev_mbr[sizeof(grub_mbr)]; + unsigned long ssec; + + if (fn==NULL) + return 1; + + if (afg & AFG_EDIT) + { + unsigned short r1,r2; + + if (afg & AFG_VERBOSE) + fprintf(stderr,"Edit mode\n"); + hd=open(fn,O_RDWR | O_BINARY,0644); + if (hd==-1) + { + print_syserr("open"); + return errno; + } + r1=valueat(grub_mbr[0x1FFA],0,unsigned short); + nn=read(hd,grub_mbr,sizeof(grub_mbr)); + if (nn==-1) + { + print_syserr("read"); + close(hd); + return errno; + } + if (nnvalueat(prev_mbr[n],8,unsigned long)) + ofs=valueat(prev_mbr[n],8,unsigned long); + } + if (ofs<(sizeof(prev_mbr)>>9)) + { + print_apperr("Not enough room to install mbr"); + close(hd); + return 1; + } + slen=sizeof(prev_mbr); + if (go_sect(hd,ofs)) + { + print_apperr("Can\'t seek to the first partition"); + close(hd); + return 1; + } + if (read(hd,bs,sizeof(bs))!=sizeof(bs)) + { + print_apperr("Fail to read boot sector"); + close(hd); + return 1; + } + nfs=get_fstype(bs); + if (nfs==FST_FAT32) + sln=0x5A - 0xB; + else if (nfs==FST_FAT16) + sln=0x3E - 0xB; + else + sln=0; + if (sln) + { + memcpy(&grub_mbr[0xB],&bs[0xB],sln); + valueat(grub_mbr[0],0x1C,unsigned long)=0; + valueat(grub_mbr[0],0xE,unsigned short)+=ofs; + } + } + else if (fs==FST_NTFS) + slen=2048; + else + slen=512; + + if (go_sect(hd,ssec)) + { + print_apperr("Can\'t seek to the start sector"); + close(hd); + return 1; + } + + if (save_fn) + { + int h2; + + h2=open(save_fn,O_CREAT | O_TRUNC | O_RDWR | O_BINARY,S_IREAD | S_IWRITE); + if (h2==-1) + { + print_syserr("open save file"); + close(hd); + return errno; + } + nn=write(h2,prev_mbr,slen); + if (nn==-1) + { + print_syserr("write save file"); + close(hd); + close(h2); + return errno; + } + if (nn=argc) + { + print_apperr("No filename specified"); + return 1; + } + if (idx + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 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, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. --- grub2-1.99.orig/debian/grub-extras/915resolution/915resolution.c +++ grub2-1.99/debian/grub-extras/915resolution/915resolution.c @@ -0,0 +1,978 @@ +/* 915resolution - Utility to change vbemodes on the intel + * integrated video chipset */ + +/* + * Based on Nathan Coulson's http://nathancoulson.com/proj/eee/grub-1.96-915resolution-0.5.2-3.patch + * Oct 10, 2008, Released as 915 + * Oct 10, 2008, Updated to include support for 945GM thanks to Scot Doyle + */ + +/* Copied from 915 resolution created by steve tomjenovic + * 915 resolution was in the public domain. + * + * All I have done, was make the above program run within + * the grub2 environment. + * + * Some of the checks are still commented, as I did not find + * easy replacement for memmem. + * + * Slightly edited by Nathan Coulson (conathan@gmail.com) + */ + +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2003,2007 Free Software Foundation, Inc. + * Copyright (C) 2003 NIIBE Yutaka + * + * GRUB 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. + * + * GRUB 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 GRUB. If not, see . + */ + + +/* 915 resolution by steve tomljenovic + * + * This was tested only on Sony VGN-FS550. Use at your own risk + * + * This code is based on the techniques used in : + * + * - 855patch. Many thanks to Christian Zietz (czietz gmx net) + * for demonstrating how to shadow the VBIOS into system RAM + * and then modify it. + * + * - 1280patch by Andrew Tipton (andrewtipton null li). + * + * - 855resolution by Alain Poirier + * + * This source code is into the public domain. + */ + +#include +#include +#include +#include +#include +#include +#include + +GRUB_MOD_LICENSE ("GPLv3+"); + +#define printf grub_printf +#define malloc grub_malloc +#define free grub_free +#define strcmp grub_strcmp +#define fprintf(stream,template,args...) grub_printf(template, ## args) +#define strtol(x,y,z) grub_strtoul(x,y,z) +#define atoi(x) grub_strtoul(x,NULL,10) +#define assert(x) +#define memset grub_memset +#define outl grub_outl +#define outb grub_outb +#define inl grub_inl +#define inb grub_inb + +#define NEW(a) ((a *)(malloc(sizeof(a)))) +#define FREE(a) (free(a)) + +#define VBIOS_START 0xc0000 +#define VBIOS_SIZE 0x10000 + +#define VBIOS_FILE "/dev/mem" + +#define FALSE 0 +#define TRUE 1 + +#define MODE_TABLE_OFFSET_845G 617 + +#define RES915_VERSION "0.5.3" + +#define ATI_SIGNATURE1 "ATI MOBILITY RADEON" +#define ATI_SIGNATURE2 "ATI Technologies Inc" +#define NVIDIA_SIGNATURE "NVIDIA Corp" +#define INTEL_SIGNATURE "Intel Corp" + +#define DEBUG 0 + +typedef unsigned char * address; +typedef unsigned char byte; +typedef unsigned short word; +typedef unsigned char boolean; +typedef unsigned int cardinal; + +typedef enum { + CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM, CT_945GME, + CT_946GZ, CT_G965, CT_Q965, CT_965GM, CT_G33, CT_Q33, CT_Q35, CT_500GMA +} chipset_type; + +char * chipset_type_names[] = { + "UNKNOWN", "830", "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM", "945GME", + "946GZ", "G965", "Q965", "965GM", "G33", "Q33", "Q35", "500GMA" +}; + +typedef enum { + BT_UNKWN, BT_1, BT_2, BT_3 +} bios_type; + +char * bios_type_names[] = {"UNKNOWN", "TYPE 1", "TYPE 2", "TYPE 3"}; + +int freqs[] = { 60, 75, 85 }; + +typedef struct { + byte mode; + byte bits_per_pixel; + word resolution; + byte unknown; +} __attribute__((packed)) vbios_mode; + +typedef struct { + byte unknow1[2]; + byte x1; + byte x_total; + byte x2; + byte y1; + byte y_total; + byte y2; +} __attribute__((packed)) vbios_resolution_type1; + +typedef struct { + unsigned long clock; + + word x1; + word htotal; + word x2; + word hblank; + word hsyncstart; + word hsyncend; + + word y1; + word vtotal; + word y2; + word vblank; + word vsyncstart; + word vsyncend; +} __attribute__((packed)) vbios_modeline_type2; + +typedef struct { + byte xchars; + byte ychars; + byte unknown[4]; + + vbios_modeline_type2 modelines[]; +} __attribute__((packed)) vbios_resolution_type2; + +typedef struct { + unsigned long clock; + + word x1; + word htotal; + word x2; + word hblank; + word hsyncstart; + word hsyncend; + + word y1; + word vtotal; + word y2; + word vblank; + word vsyncstart; + word vsyncend; + + word timing_h; + word timing_v; + + byte unknown[6]; +} __attribute__((packed)) vbios_modeline_type3; + +typedef struct { + unsigned char unknown[6]; + + vbios_modeline_type3 modelines[]; +} __attribute__((packed)) vbios_resolution_type3; + + +typedef struct { + cardinal chipset_id; + chipset_type chipset; + bios_type bios; + + int bios_fd; + address bios_ptr; + + vbios_mode * mode_table; + cardinal mode_table_size; + + byte b1, b2; + + boolean unlocked; +} vbios_map; + + +static cardinal get_chipset_id(void) { + outl(0x80000000, 0xcf8); + return inl(0xcfc); +} + +static chipset_type get_chipset(cardinal id) { + chipset_type type; + + switch (id) { + case 0x35758086: + type = CT_830; + break; + + case 0x25608086: + type = CT_845G; + break; + + case 0x35808086: + type = CT_855GM; + break; + + case 0x25708086: + type = CT_865G; + break; + + case 0x25808086: + type = CT_915G; + break; + + case 0x25908086: + type = CT_915GM; + break; + + case 0x27708086: + type = CT_945G; + break; + + case 0x27a08086: + type = CT_945GM; + break; + + case 0x27ac8086: + type = CT_945GME; + break; + + case 0x29708086: + type = CT_946GZ; + break; + + case 0x29a08086: + type = CT_G965; + break; + + case 0x29908086: + type = CT_Q965; + break; + + case 0x2a008086: + type = CT_965GM; + break; + + case 0x29c08086: + type = CT_G33; + break; + + case 0x29b08086: + type = CT_Q35; + break; + + case 0x29d08086: + type = CT_Q33; + break; + + case 0x81008086: + type = CT_500GMA; + break; + + default: + type = CT_UNKWN; + break; + } + + return type; +} + + +static vbios_resolution_type1 * map_type1_resolution(vbios_map * map, word res) { + vbios_resolution_type1 * ptr = ((vbios_resolution_type1*)(map->bios_ptr + res)); + return ptr; +} + +static vbios_resolution_type2 * map_type2_resolution(vbios_map * map, word res) { + vbios_resolution_type2 * ptr = ((vbios_resolution_type2*)(map->bios_ptr + res)); + return ptr; +} + +static vbios_resolution_type3 * map_type3_resolution(vbios_map * map, word res) { + vbios_resolution_type3 * ptr = ((vbios_resolution_type3*)(map->bios_ptr + res)); + return ptr; +} + + +static boolean detect_bios_type(vbios_map * map, int entry_size) { + unsigned i; + short int r1, r2; + + r1 = r2 = 32000; + + for (i=0; i < map->mode_table_size; i++) { + if (map->mode_table[i].resolution <= r1) { + r1 = map->mode_table[i].resolution; + } + else { + if (map->mode_table[i].resolution <= r2) { + r2 = map->mode_table[i].resolution; + } + } + + /*printf("r1 = %d r2 = %d\n", r1, r2);*/ + } + + return (r2-r1-6) % entry_size == 0; +} + + +static void close_vbios(vbios_map * map); + + +static vbios_map * open_vbios(chipset_type forced_chipset) { + vbios_map * map = NEW(vbios_map); + memset (map, 0, sizeof(vbios_map)); + + /* + * Determine chipset + */ + + if (forced_chipset == CT_UNKWN) { + map->chipset_id = get_chipset_id(); + + map->chipset = get_chipset(map->chipset_id); + } + else if (forced_chipset != CT_UNKWN) { + map->chipset = forced_chipset; + } + else { + map->chipset = CT_915GM; + } + + /* + * Map the video bios to memory + */ + + map->bios_ptr = (unsigned char *) VBIOS_START; + +#if 0 + /* + * check if we have ATI Radeon + */ + + if (memmem(map->bios_ptr, VBIOS_SIZE, ATI_SIGNATURE1, strlen(ATI_SIGNATURE1)) || + memmem(map->bios_ptr, VBIOS_SIZE, ATI_SIGNATURE2, strlen(ATI_SIGNATURE2)) ) { + fprintf(stderr, "ATI chipset detected. 915resolution only works with Intel 800/900 series graphic chipsets.\n"); + close(map->bios_fd); + exit(2); + } + + /* + * check if we have NVIDIA + */ + + if (memmem(map->bios_ptr, VBIOS_SIZE, NVIDIA_SIGNATURE, strlen(NVIDIA_SIGNATURE))) { + fprintf(stderr, "NVIDIA chipset detected. 915resolution only works with Intel 800/900 series graphic chipsets.\n"); + close(map->bios_fd); + exit(2); + } + + /* + * check if we have Intel + */ + + if (map->chipset == CT_UNKWN && memmem(map->bios_ptr, VBIOS_SIZE, INTEL_SIGNATURE, strlen(INTEL_SIGNATURE))) { + fprintf(stderr, "Intel chipset detected. However, 915resolution was unable to determine the chipset type.\n"); + + fprintf(stderr, "Chipset Id: %x\n", map->chipset_id); + + fprintf(stderr, "Please report this problem to stomljen@yahoo.com\n"); + + close_vbios(map); + exit(2); + } +#endif + + /* + * check for others + */ + + if (map->chipset == CT_UNKWN) { + fprintf(stderr, "Unknown chipset type and unrecognized bios.\n"); + fprintf(stderr, "915resolution only works with Intel 800/900 series graphic chipsets.\n"); + + fprintf(stderr, "Chipset Id: %x\n", map->chipset_id); + close_vbios(map); + return 0; + } + + /* + * Figure out where the mode table is + */ + + { + address p = map->bios_ptr + 16; + address limit = map->bios_ptr + VBIOS_SIZE - (3 * sizeof(vbios_mode)); + + while (p < limit && map->mode_table == 0) { + vbios_mode * mode_ptr = (vbios_mode *) p; + + if (((mode_ptr[0].mode & 0xf0) == 0x30) && ((mode_ptr[1].mode & 0xf0) == 0x30) && + ((mode_ptr[2].mode & 0xf0) == 0x30) && ((mode_ptr[3].mode & 0xf0) == 0x30)) { + + map->mode_table = mode_ptr; + } + + p++; + } + + if (map->mode_table == 0) { + fprintf(stderr, "Unable to locate the mode table.\n"); + fprintf(stderr, "Please run the program 'dump_bios' as root and\n"); + fprintf(stderr, "email the file 'vbios.dmp' to stomljen@yahoo.com.\n"); + + fprintf(stderr, "Chipset: %s\n", chipset_type_names[map->chipset]); + close_vbios(map); + return 0; + } + } + + /* + * Determine size of mode table + */ + + { + vbios_mode * mode_ptr = map->mode_table; + + while (mode_ptr->mode != 0xff) { + map->mode_table_size++; + mode_ptr++; + } + } + + /* + * Figure out what type of bios we have + * order of detection is important + */ + + if (detect_bios_type(map, sizeof(vbios_modeline_type3))) { + map->bios = BT_3; + } + else if (detect_bios_type(map, sizeof(vbios_modeline_type2))) { + map->bios = BT_2; + } + else if (detect_bios_type(map, sizeof(vbios_resolution_type1))) { + map->bios = BT_1; + } + else { + fprintf(stderr, "Unable to determine bios type.\n"); + fprintf(stderr, "Please run the program 'dump_bios' as root and\n"); + fprintf(stderr, "email the file 'vbios.dmp' to stomljen@yahoo.com.\n"); + + fprintf(stderr, "Chipset: %s\n", chipset_type_names[map->chipset]); + fprintf(stderr, "Mode Table Offset: $C0000 + $%x\n", ((cardinal)map->mode_table) - ((cardinal)map->bios_ptr)); + fprintf(stderr, "Mode Table Entries: %u\n", map->mode_table_size); + return 0; + } + + return map; +} + +static void close_vbios(vbios_map * map) { + assert(!map->unlocked); + + FREE(map); +} + +static void unlock_vbios(vbios_map * map) { + + assert(!map->unlocked); + + map->unlocked = TRUE; + + switch (map->chipset) { + case CT_UNKWN: + break; + case CT_830: + case CT_855GM: + outl(0x8000005a, 0xcf8); + map->b1 = inb(0xcfe); + + outl(0x8000005a, 0xcf8); + outb(0x33, 0xcfe); + break; + case CT_845G: + case CT_865G: + case CT_915G: + case CT_915GM: + case CT_945G: + case CT_945GM: + case CT_945GME: + case CT_946GZ: + case CT_G965: + case CT_Q965: + case CT_965GM: + case CT_G33: + case CT_Q35: + case CT_Q33: + case CT_500GMA: + outl(0x80000090, 0xcf8); + map->b1 = inb(0xcfd); + map->b2 = inb(0xcfe); + + outl(0x80000090, 0xcf8); + outb(0x33, 0xcfd); + outb(0x33, 0xcfe); + break; + } + +#if DEBUG + { + cardinal t = inl(0xcfc); + printf("unlock PAM: (0x%08x)\n", t); + } +#endif +} + +static void relock_vbios(vbios_map * map) { + + assert(map->unlocked); + map->unlocked = FALSE; + + switch (map->chipset) { + case CT_UNKWN: + break; + case CT_830: + case CT_855GM: + outl(0x8000005a, 0xcf8); + outb(map->b1, 0xcfe); + break; + case CT_845G: + case CT_865G: + case CT_915G: + case CT_915GM: + case CT_945G: + case CT_945GM: + case CT_945GME: + case CT_946GZ: + case CT_G965: + case CT_Q965: + case CT_965GM: + case CT_G33: + case CT_Q35: + case CT_Q33: + case CT_500GMA: + outl(0x80000090, 0xcf8); + outb(map->b1, 0xcfd); + outb(map->b2, 0xcfe); + break; + } + +#if DEBUG + { + cardinal t = inl(0xcfc); + printf("relock PAM: (0x%08x)\n", t); + } +#endif +} + + +static void list_modes(vbios_map *map, cardinal raw) { + cardinal i, x, y; + + for (i=0; i < map->mode_table_size; i++) { + switch(map->bios) { + case BT_1: + { + vbios_resolution_type1 * res = map_type1_resolution(map, map->mode_table[i].resolution); + + x = ((((cardinal) res->x2) & 0xf0) << 4) | res->x1; + y = ((((cardinal) res->y2) & 0xf0) << 4) | res->y1; + + if (x != 0 && y != 0) { + printf("Mode %02x : %dx%d, %d bits/pixel\n", map->mode_table[i].mode, x, y, map->mode_table[i].bits_per_pixel); + } + + if (raw) + { + printf("Mode %02x (raw) :\n\t%02x %02x\n\t%02x\n\t%02x\n\t%02x\n\t%02x\n\t%02x\n\t%02x\n", map->mode_table[i].mode, res->unknow1[0],res->unknow1[1], res->x1,res->x_total,res->x2,res->y1,res->y_total,res->y2); + } + + } + break; + case BT_2: + { + vbios_resolution_type2 * res = map_type2_resolution(map, map->mode_table[i].resolution); + + x = res->modelines[0].x1+1; + y = res->modelines[0].y1+1; + + if (x != 0 && y != 0) { + printf("Mode %02x : %dx%d, %d bits/pixel\n", map->mode_table[i].mode, x, y, map->mode_table[i].bits_per_pixel); + } + } + break; + case BT_3: + { + vbios_resolution_type3 * res = map_type3_resolution(map, map->mode_table[i].resolution); + + x = res->modelines[0].x1+1; + y = res->modelines[0].y1+1; + + if (x != 0 && y != 0) { + printf("Mode %02x : %dx%d, %d bits/pixel\n", map->mode_table[i].mode, x, y, map->mode_table[i].bits_per_pixel); + } + } + break; + case BT_UNKWN: + break; + } + } +} + +static void gtf_timings(int x, int y, int freq, + unsigned long *clock, + word *hsyncstart, word *hsyncend, word *hblank, + word *vsyncstart, word *vsyncend, word *vblank) +{ + int hbl, vbl, vfreq; + + vbl = y + (y+1)/(20000.0/(11*freq) - 1) + 1.5; + vfreq = vbl * freq; + hbl = 16 * (int)(x * (30.0 - 300000.0 / vfreq) / + (70.0 + 300000.0 / vfreq) / 16.0 + 0.5); + + *vsyncstart = y; + *vsyncend = y + 3; + *vblank = vbl - 1; + *hsyncstart = x + hbl / 2 - (x + hbl + 50) / 100 * 8 - 1; + *hsyncend = x + hbl / 2 - 1; + *hblank = x + hbl - 1; + *clock = (x + hbl) * vfreq / 1000; +} + +static void set_mode(vbios_map * map, cardinal mode, cardinal x, cardinal y, cardinal bp, cardinal htotal, cardinal vtotal) { + int xprev, yprev; + cardinal i, j; + + for (i=0; i < map->mode_table_size; i++) { + if (map->mode_table[i].mode == mode) { + switch(map->bios) { + case BT_1: + { + vbios_resolution_type1 * res = map_type1_resolution(map, map->mode_table[i].resolution); + + if (bp) { + map->mode_table[i].bits_per_pixel = bp; + } + + res->x2 = (htotal?(((htotal-x) >> 8) & 0x0f) : (res->x2 & 0x0f)) | ((x >> 4) & 0xf0); + res->x1 = (x & 0xff); + + res->y2 = (vtotal?(((vtotal-y) >> 8) & 0x0f) : (res->y2 & 0x0f)) | ((y >> 4) & 0xf0); + res->y1 = (y & 0xff); + if (htotal) + res->x_total = ((htotal-x) & 0xff); + + if (vtotal) + res->y_total = ((vtotal-y) & 0xff); + } + break; + case BT_2: + { + vbios_resolution_type2 * res = map_type2_resolution(map, map->mode_table[i].resolution); + + res->xchars = x / 8; + res->ychars = y / 16 - 1; + xprev = res->modelines[0].x1; + yprev = res->modelines[0].y1; + + for(j=0; j < 3; j++) { + vbios_modeline_type2 * modeline = &res->modelines[j]; + + if (modeline->x1 == xprev && modeline->y1 == yprev) { + modeline->x1 = modeline->x2 = x-1; + modeline->y1 = modeline->y2 = y-1; + + gtf_timings(x, y, freqs[j], &modeline->clock, + &modeline->hsyncstart, &modeline->hsyncend, + &modeline->hblank, &modeline->vsyncstart, + &modeline->vsyncend, &modeline->vblank); + + if (htotal) + modeline->htotal = htotal; + else + modeline->htotal = modeline->hblank; + + if (vtotal) + modeline->vtotal = vtotal; + else + modeline->vtotal = modeline->vblank; + } + } + } + break; + case BT_3: + { + vbios_resolution_type3 * res = map_type3_resolution(map, map->mode_table[i].resolution); + + xprev = res->modelines[0].x1; + yprev = res->modelines[0].y1; + + for (j=0; j < 3; j++) { + vbios_modeline_type3 * modeline = &res->modelines[j]; + + if (modeline->x1 == xprev && modeline->y1 == yprev) { + modeline->x1 = modeline->x2 = x-1; + modeline->y1 = modeline->y2 = y-1; + + gtf_timings(x, y, freqs[j], &modeline->clock, + &modeline->hsyncstart, &modeline->hsyncend, + &modeline->hblank, &modeline->vsyncstart, + &modeline->vsyncend, &modeline->vblank); + if (htotal) + modeline->htotal = htotal; + else + modeline->htotal = modeline->hblank; + if (vtotal) + modeline->vtotal = vtotal; + else + modeline->vtotal = modeline->vblank; + + modeline->timing_h = y-1; + modeline->timing_v = x-1; + } + } + } + break; + case BT_UNKWN: + break; + } + } + } +} + +static void display_map_info(vbios_map * map) { + printf("Chipset: %s\n", chipset_type_names[map->chipset]); + printf("BIOS: %s\n", bios_type_names[map->bios]); + + printf("Mode Table Offset: $C0000 + $%x\n", ((cardinal)map->mode_table) - ((cardinal)map->bios_ptr)); + printf("Mode Table Entries: %u\n", map->mode_table_size); +} + + +static int parse_args(cardinal argc, char *argv[], chipset_type *forced_chipset, cardinal *list, cardinal *mode, cardinal *x, cardinal *y, cardinal *bp, cardinal *raw, cardinal *htotal, cardinal *vtotal) { + cardinal index = 0; + + *list = *mode = *x = *y = *raw = *htotal = *vtotal = 0; + *bp = 0; + + *forced_chipset = CT_UNKWN; + + + if ((argc > index) && !strcmp(argv[index], "-c")) { + index++; + + if(argc<=index) { + return 0; + } + + if (!strcmp(argv[index], "845")) { + *forced_chipset = CT_845G; + } + else if (!strcmp(argv[index], "855")) { + *forced_chipset = CT_855GM; + } + else if (!strcmp(argv[index], "865")) { + *forced_chipset = CT_865G; + } + else if (!strcmp(argv[index], "915G")) { + *forced_chipset = CT_915G; + } + else if (!strcmp(argv[index], "915GM")) { + *forced_chipset = CT_915GM; + } + else if (!strcmp(argv[index], "945G")) { + *forced_chipset = CT_945G; + } + else if (!strcmp(argv[index], "945GM")) { + *forced_chipset = CT_945GM; + } + else if (!strcmp(argv[index], "945GME")) { + *forced_chipset = CT_945GME; + } + else if (!strcmp(argv[index], "946GZ")) { + *forced_chipset = CT_946GZ; + } + else if (!strcmp(argv[index], "G965")) { + *forced_chipset = CT_G965; + } + else if (!strcmp(argv[index], "Q965")) { + *forced_chipset = CT_Q965; + } + else if (!strcmp(argv[index], "965GM")) { + *forced_chipset = CT_965GM; + } + else if (!strcmp(argv[index], "G33")) { + *forced_chipset = CT_G33; + } + else if (!strcmp(argv[index], "Q35")) { + *forced_chipset = CT_Q35; + } + else if (!strcmp(argv[index], "Q33")) { + *forced_chipset = CT_Q33; + } + else if (!strcmp(argv[index], "500GMA")) { + *forced_chipset = CT_500GMA; + } + else { + *forced_chipset = CT_UNKWN; + } + + index++; + + if (argc<=index) { + return 0; + } + } + + if ((argc > index) && !strcmp(argv[index], "-l")) { + *list = 1; + index++; + + if(argc<=index) { + return 0; + } + } + + if ((argc > index) && !strcmp(argv[index], "-r")) { + *raw = 1; + index++; + + if(argc<=index) { + return 0; + } + } + + if (argc-index < 3 || argc-index > 6) { + return -1; + } + + *mode = (cardinal) strtol(argv[index], NULL, 16); + *x = (cardinal)atoi(argv[index+1]); + *y = (cardinal)atoi(argv[index+2]); + + + if (argc-index > 3) { + *bp = (cardinal)atoi(argv[index+3]); + } + else { + *bp = 0; + } + + if (argc-index > 4) { + *htotal = (cardinal)atoi(argv[index+4]); + } + else { + *htotal = 0; + } + + if (argc-index > 5) { + *vtotal = (cardinal)atoi(argv[index+5]); + } + else { + *vtotal = 0; + } + + return 0; +} + +static void usage(void) { + printf("Usage: 915resolution [-c chipset] [-l] [mode X Y] [bits/pixel] [htotal] [vtotal]\n"); + printf(" Set the resolution to XxY for a video mode\n"); + printf(" Bits per pixel are optional. htotal/vtotal settings are additionally optional.\n"); + printf(" Options:\n"); + printf(" -c force chipset type (THIS IS USED FOR DEBUG PURPOSES)\n"); + printf(" -l display the modes found in the video BIOS\n"); + printf(" -r display the modes found in the video BIOS in raw mode (THIS IS USED FOR DEBUG PURPOSES)\n"); +} + +static int main (int argc, char *argv[]) +{ + vbios_map * map; + cardinal list, mode, x, y, bp, raw, htotal, vtotal; + chipset_type forced_chipset; + + printf("Intel 800/900 Series VBIOS Hack : version %s\n\n", RES915_VERSION); + + if (parse_args(argc, argv, &forced_chipset, &list, &mode, &x, &y, &bp, &raw, &htotal, &vtotal) == -1) { + usage(); + return 2; + } + + map = open_vbios(forced_chipset); + display_map_info(map); + + printf("\n"); + + if (list) { + list_modes(map, raw); + } + + if (mode!=0 && x!=0 && y!=0) { + unlock_vbios(map); + + set_mode(map, mode, x, y, bp, htotal, vtotal); + + relock_vbios(map); + + printf("Patch mode %02x to resolution %dx%d complete\n", mode, x, y); + + if (list) { + list_modes(map, raw); + } + } + + close_vbios(map); + + return 0; +} + + + + + +static grub_err_t +grub_cmd_915resolution (grub_command_t cmd __attribute__ ((unused)), + int argc, char *argv[]) +{ + return main (argc, argv); +} + +static grub_command_t cmd; + +GRUB_MOD_INIT(915resolution) +{ + cmd = grub_register_command ("915resolution", grub_cmd_915resolution, + "915resolution", "Intel VBE editor"); +} + +GRUB_MOD_FINI(915resolution) +{ + grub_unregister_command (cmd); +} --- grub2-1.99.orig/debian/grub-extras/915resolution/README +++ grub2-1.99/debian/grub-extras/915resolution/README @@ -0,0 +1,11 @@ + +grub-extras is meant to be used as an overlay on grub2 source tree. + +Build instructions: + + - Copy grub-extras in a subdirectory of your grub2 checkout. + For example, "grub-extras". + + - Export GRUB_CONTRIB environment variable to point to this directory. + + - Build GRUB as usual. --- grub2-1.99.orig/debian/grub-extras/915resolution/Makefile.core.def +++ grub2-1.99/debian/grub-extras/915resolution/Makefile.core.def @@ -0,0 +1,8 @@ +AutoGen definitions Makefile.tpl; + +module = { + name = '915resolution'; + i386_pc = contrib/915resolution/915resolution.c; + cflags = -Wno-error; + enable = i386_pc; +}; --- grub2-1.99.orig/debian/legacy/update-grub +++ grub2-1.99/debian/legacy/update-grub @@ -0,0 +1,1068 @@ +#!/bin/bash +# +# Insert a list of installed kernels in a grub config file +# Copyright 2001 Wichert Akkerman +# Copyright (C) 2007,2008 Free Software Foundation, Inc. +# +# This file 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 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 GRUB. If not, see . +# +# Contributors: +# Jason Thomas +# David B.Harris +# Marc Haber +# Crispin Flowerday + +# Abort on errors +set -e + +host_os=`uname -s | tr '[A-Z]' '[a-z]'` + +abort() { + message=$@ + + echo >&2 + echo -e "$message" >&2 + echo >&2 + exit 1 +} + +find_grub_dir () +{ + echo -n "Searching for GRUB installation directory ... " >&2 + + for d in /boot/grub /boot/boot/grub ; do + if [ -d "$d" ] ; then + grub_dir="$d" + break + fi + done + + if [ -z "$grub_dir" ] ; then + abort "No GRUB directory found.\n To create a template run 'mkdir /boot/grub' first.\n To install grub, install it manually or try the 'grub-install' command.\n ### Warning, grub-install is used to change your MBR. ###" + else + echo "found: $grub_dir" >&2 + fi + + echo $grub_dir +} + +# This function was borrowed from grub2/util/update-grub_lib.in +make_system_path_relative_to_its_root () +{ + path=$1 + # abort if file doesn't exist + if test -e $path ; then : ;else + return 1 + fi + + # canonicalize + if path=`readlink -f $path` ; then : ; else + return 1 + fi + + # if not a directory, climb up to the directory containing it + if test -d $path ; then + dir=$path + else + dir=`echo $path | sed -e "s,/[^/]*$,,g"` + fi + + num=`stat -c %d $dir` + + # this loop sets $dir to the root directory of the filesystem we're inspecting + while : ; do + parent=`readlink -f $dir/..` + if [ "x`stat -c %d $parent`" = "x$num" ] ; then : ; else + # $parent is another filesystem; we found it. + break + fi + if [ "x$dir" = "x/" ] ; then + # / is our root. + break + fi + dir=$parent + done + + # This function never prints trailing slashes (so that its output can be + # appended a slash unconditionally). Each slash in $dir is considered a + # preceding slash, and therefore the root directory is an empty string. + if [ "$dir" = "/" ] ; then + dir="" + fi + + echo $path | sed -e "s,^$dir,,g" +} + +# The grub installation directory +grub_dir=$(find_grub_dir) + +# Full path to the device.map +device_map=$grub_dir/device.map + +find_device () +{ + if ! test -e ${device_map} ; then + echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null + fi + grub-probe --device-map=${device_map} -t device $1 2> /dev/null +} + +# Usage: convert_raid1 os_device +# Checks if os_device is a software raid1. +# If so, converts to first physical device in array. +convert_raid1 () +{ + case $1 in + /dev/md[0-9] | /dev/md/[0-9]) + : ;; # Continue + *) + return 1 ;; + esac + + [ -x /sbin/mdadm ] || return 1 + + # Check that the raid device is raid1 + raidlevel=$(mdadm -D -b $1 | grep "^ARRAY" | \ + sed "s/^.*level=//" | cut -d" " -f1) + [ "$raidlevel" = "raid1" ] || return 1 + + # Take only the first device that makes up the raid + raiddev=$(mdadm -D $1 | grep -A1 "Number" | grep "dev" \ + | sed "s/^.*\(\/dev\/.*\)$/\1/") + [ -n "$raiddev" ] || return 1 + + echo $raiddev + return 0 +} + +# Usage: convert os_device +# Convert an OS device to the corresponding GRUB drive. +convert () { + if ! test -e ${device_map} ; then + echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null + fi + GRUB_LEGACY_0_BASED_PARTITIONS=1 grub-probe --device-map=${device_map} -t drive -d "$1" 2> /dev/null || { + echo "warning: grub-probe can't find drive for $1." >&2 + tmp_map=$(mktemp -t device.map.XXXXXXXX) + grub-mkdevicemap --device-map=${tmp_map} --no-floppy >/dev/null 2>&1 || true + GRUB_LEGACY_0_BASED_PARTITIONS=1 grub-probe --device-map=${tmp_map} -t drive -d "$1" || { + rm -f ${tmp_map} + return 1 + } + echo "Please check ${device_map}, you might have to regenerate it with grub-mkdevicemap." >&2 + rm -f ${tmp_map} + } +} + +# Usage: convert_default os_device +# Convert an OS device to the corresponding GRUB drive. +convert_default () { + # Check if device is software raid1 array + if tmp_dev=$(convert_raid1 $1 2>/dev/null) ; then + : # Use device returned by convert_raid1 + else + tmp_dev=$1 + fi + + convert $tmp_dev +} + +## Configuration Options + +# Full path to the menu.lst +menu_file_basename=menu.lst +menu_file=$grub_dir/$menu_file_basename + +# Full path to the default file +default_file_basename=default +default_file=$grub_dir/$default_file_basename + +# the device for the / filesystem +root_device=$(find_device "/") + +# loop-AES arranges things so that /dev/loop/X can be our root device, but +# the initrds that Linux uses don't like that. +case ${root_device} in + /dev/loop/*|/dev/loop[0-9]) + root_device=`losetup ${root_device} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` + ;; +esac + +# the device for the /boot filesystem +boot_device=$(find_device "/boot") + +# where grub looks for the kernels at boot time +kernel_dir=`make_system_path_relative_to_its_root /boot` + +# the "-t abstraction" check is a workaround untill #484297 is fixed +if abstraction=`grub-probe -t abstraction --device ${root_device} 2> /dev/null` && [ "$abstraction" = "" ] && \ + root_uuid=`grub-probe --device-map=${device_map} --device ${root_device} --target=fs_uuid 2> /dev/null` && \ + test -e "/dev/disk/by-uuid/${root_uuid}" ; then + linux_root_device=UUID=${root_uuid} +else + linux_root_device=${root_device} +fi + +# Default kernel options, overidden by the kopt statement in the menufile. +kopt="root=$linux_root_device ro" + +# Title +title="Debian GNU/`uname -s | sed -e s,GNU/,,g`" + +# should update-grub remember the default entry +updatedefaultentry="false" + +# Drive(in GRUB terms) where the kernel is located. Overridden by the +# groot statement in menufile. +grub_root_device=$(convert_default "$boot_device") + +# should grub create the alternative boot options in the menu + alternative="true" + +# should grub lock the alternative boot options in the menu + lockalternative="false" + +# additional options to use with the default boot option, but not with the +# alternatives + defoptions="" + +# should grub lock the old kernels + lockold="false" + +# Xen hypervisor options to use with the default Xen boot option + xenhopt="" + +# Xen Linux kernel options to use with the default Xen boot option + xenkopt="console=tty0" + +# options to use with the alternative boot options + altoptions="(single-user mode) single" + +# controls howmany kernels are listed in the config file, +# this does not include the alternative kernels + howmany="all" + +# should grub create a memtest86 entry + memtest86="true" + +# should grub add "savedefault" to default boot options + savedefault="false" + +# stores the command line arguments + command_line_arguments=$1 + +# read user configuration +if test -f "/etc/default/grub" ; then + . /etc/default/grub +fi + +# Default options to use in a new config file. This will only be used if $menu_file +# doesn't already exist. Only edit the lines between the two "EOF"s. The others are +# part of the script. +newtemplate=$(tempfile) +cat > "$newtemplate" <&2 +if [ -f "$default_file" ] ; then + echo "found: $default_file" >&2 +else + echo "Generating $default_file file and setting the default boot entry to 0" >&2 + if [ -f /usr/lib/grub-legacy/grub-set-default ] ; then + /usr/lib/grub-legacy/grub-set-default $1 + else + grub-set-default $1 + fi +fi + +# Make sure we use the standard sorting order +LC_COLLATE=C +# Magic markers we use +start="### BEGIN AUTOMAGIC KERNELS LIST" +end="### END DEBIAN AUTOMAGIC KERNELS LIST" + +startopt="## ## Start Default Options ##" +endopt="## ## End Default Options ##" + +# Extract options from config file +ExtractMenuOpt() +{ + opt=$1 + + sed -ne "/^$start\$/,/^$end\$/ { + /^$startopt\$/,/^$endopt\$/ { + /^# $opt=/ { + s/^# $opt=\(.*\)\$/\1/ + p + } + } + }" $menu +} + +GetMenuOpts() +{ + opt=$1 + + sed -ne "/^$start\$/,/^$end\$/ { + /^$startopt\$/,/^$endopt\$/ { + /^# $opt=/ { + p + } + } + }" $menu +} + +ExtractMenuOpts() +{ + opt=$1 + + GetMenuOpts $opt | sed "s/^# $opt=\(.*\)\$/\1=\"\2\"/" +} + +GetMenuOpt() +{ + opt=$1 + value=$2 + + [ -z "$(GetMenuOpts "$opt")" ] || value=$(ExtractMenuOpt "$opt") + + echo $value +} + +# Compares two version strings A and B +# Returns -1 if AB +# This compares version numbers of the form +# 2.4.14.2 > 2.4.14 +# 2.4.14random = 2.4.14-random > 2.4.14-ac10 > 2.4.14 > 2.4.14-pre2 > +# 2.4.14-pre1 > 2.4.13-ac99 +CompareVersions() +{ + local sedexp="s,.*/vmlinu[zx]-,,g;s/[._-]\(pre\|rc\|test\|git\|trunk\)/~\1/g" + local a=`echo $1 | sed -e "$sedexp"` + local b=`echo $2 | sed -e "$sedexp"` + if [ "$a" = "$b" ] ; then + echo 0 + elif dpkg --compare-versions "$a" gt "$b" ; then + echo 1 + else + echo -1 + fi +} + +# looks in the directory specified for an initrd image with the version specified +FindInitrdName() +{ + # strip trailing slashes + directory=$(echo $1 | sed -e 's#/*$##') + version=$2 + + # initrd + # initrd.img + # initrd-lvm + # .*.gz + + initrdName="" + names="initrd initrd.img initrd-lvm" + compressed="gz" + + for n in $names ; do + # make sure we haven't already found it + if [ -z "$initrdName" ] ; then + if [ -f "$directory/$n$version" ] ; then + initrdName="$n$version" + break + else + for c in $compressed ; do + if [ -f "$directory/$n$version.$c" ] ; then + initrdName="$n$version.$c" + break + fi + done + fi + else + break + fi + done + + # return the result + echo $initrdName +} + +FindXenHypervisorVersions () +{ + version=$1 + + if [ -f "/var/lib/linux-image-$version/xen-versions" ]; then + ret="$(cat /var/lib/linux-image-$version/xen-versions)" + fi + + echo $ret +} + +get_kernel_opt() +{ + kernel_version=$1 + + version=$(echo $kernel_version | sed 's/^[^0-9]*//') + version=$(echo $version | sed 's/[-\+\.]/_/g') + if [ -n "$version" ] ; then + while [ -n "$version" ] ; do + currentOpt="$(eval "echo \${kopt_$version}")" + if [ -n "$currentOpt" ] ; then + break + fi + version=$(echo $version | sed 's/_\?[^_]*$//') + done + fi + + if [ -z "$currentOpt" ] ; then + currentOpt=$kopt + fi + + echo $currentOpt +} + +write_kernel_entry() +{ + local kernel_version; kernel_version=$1; shift + local recovery_desc; recovery_desc=$1; shift + local lock_alternative; lock_alternative=$1; shift + local grub_root_device; grub_root_device=$1; shift + local kernel; kernel=$1; shift + local kernel_options; kernel_options=$1; shift + local recovery_suffix; recovery_suffix=$1; shift + local initrd; initrd=$1; shift + local savedefault; savedefault=$1; shift + local lockold; lockold=$1; shift + local hypervisor + if [ -n "$1" ]; then + # Hypervisor. + hypervisor=$1; shift + local hypervisor_image; hypervisor_image=$1; shift + local hypervisor_version; hypervisor_version=$1; shift + local hypervisor_options; hypervisor_options=$1; shift + fi + + echo -n "title " >> $buffer + + if [ -n "$hypervisor" ]; then + echo -n "$hypervisor $hypervisor_version / " >> $buffer + fi + + echo -n "$title" >> $buffer + if [ -n "$kernel_version" ]; then + echo -n ", kernel $kernel_version" >> $buffer + fi + if [ -n "$recovery_desc" ]; then + echo -n " $recovery_desc" >> $buffer + fi + echo >> $buffer + + # lock the alternative options + if test x"$lock_alternative" = x"true" ; then + echo "lock" >> $buffer + fi + # lock the old entries + if test x"$lockold" = x"true" ; then + echo "lock" >> $buffer + fi + + echo "root $grub_root_device" >> $buffer + + echo -n "kernel " >> $buffer + if [ -n "$hypervisor" ]; then + echo -n "$hypervisor_image" >> $buffer + if [ -n "$hypervisor_options" ]; then + echo -n " $hypervisor_options" >> $buffer + fi + echo >> $buffer + echo -n "module " >> $buffer + fi + echo -n "$kernel" >> $buffer + if [ -n "$kernel_options" ]; then + echo -n " $kernel_options" >> $buffer + fi + if [ -n "$recovery_desc" ]; then + echo -n " $recovery_suffix" >> $buffer + fi + echo >> $buffer + + if [ -n "$initrd" ]; then + if [ -n "$hypervisor" ]; then + echo -n "module " >> $buffer + else + echo -n "initrd " >> $buffer + fi + echo "$initrd" >> $buffer + fi + + if test x"$savedefault" = x"true" ; then + echo "savedefault" >> $buffer + fi + echo >> $buffer +} + + +echo -n "Testing for an existing GRUB $menu_file_basename file ... " >&2 + +# Test if our menu file exists +if [ -f "$menu_file" ] ; then + menu="$menu_file" + rm -f $newtemplate + unset newtemplate + echo "found: $menu_file" >&2 + cp -f "$menu_file" "$menu_file~" +else + # if not ask user if they want us to create one + menu="$menu_file" + echo >&2 + echo >&2 + if [ "-y" = "$command_line_arguments" ] ; then + echo "Warning: ignoring deprecated -y option." >&2 + fi + echo >&2 + echo "Generating $menu_file" >&2 + cat "$newtemplate" > $menu_file + rm -f $newtemplate + unset newtemplate +fi + +# Extract the kernel options to use +kopt=$(GetMenuOpt "kopt" "$kopt") + +# Set the kernel 2.6 option only for fresh install +test -z "$(GetMenuOpt "kopt" "")" && kopt_2_6="root=$linux_root_device ro" + +# Extract options for specific kernels +opts="$(ExtractMenuOpts "\(kopt_[[:alnum:]_]\+\)")" +test -z "$opts" || eval "$opts" +CustomKopts=$(GetMenuOpts "\(kopt_[[:alnum:]_]\+\)") + +# Extract the grub root +grub_root_device=$(GetMenuOpt "groot" "$grub_root_device") + +# Extract the old recovery value +alternative=$(GetMenuOpt "recovery" "$alternative") + +# Extract the alternative value +alternative=$(GetMenuOpt "alternative" "$alternative") + +# Extract the lockalternative value +lockalternative=$(GetMenuOpt "lockalternative" "$lockalternative") + +# Extract the additional default options +defoptions=$(GetMenuOpt "defoptions" "$defoptions") + +# Extract the lockold value +lockold=$(GetMenuOpt "lockold" "$lockold") + +# Extract Xen hypervisor options +xenhopt=$(GetMenuOpt "xenhopt" "$xenhopt") + +# Extract Xen Linux kernel options +xenkopt=$(GetMenuOpt "xenkopt" "$xenkopt") + +# Extract the howmany value +howmany=$(GetMenuOpt "howmany" "$howmany") + +# Extract the memtest86 value +memtest86=$(GetMenuOpt "memtest86" "$memtest86") + + +# Extract the updatedefaultentry option +updatedefaultentry=$(GetMenuOpt "updatedefaultentry" "$updatedefaultentry") + +# Extract the savedefault option +savedefault=$(GetMenuOpt "savedefault" "$savedefault") + +# Generate the menu options we want to insert +buffer=$(tempfile) +echo $start >> $buffer +echo "## lines between the AUTOMAGIC KERNELS LIST markers will be modified" >> $buffer +echo "## by the debian update-grub script except for the default options below" >> $buffer +echo >> $buffer +echo "## DO NOT UNCOMMENT THEM, Just edit them to your needs" >> $buffer +echo >> $buffer +echo "## ## Start Default Options ##" >> $buffer + +echo "## default kernel options" >> $buffer +echo "## default kernel options for automagic boot options" >> $buffer +echo "## If you want special options for specific kernels use kopt_x_y_z" >> $buffer +echo "## where x.y.z is kernel version. Minor versions can be omitted." >> $buffer +echo "## e.g. kopt=root=/dev/hda1 ro" >> $buffer +echo "## kopt_2_6_8=root=/dev/hdc1 ro" >> $buffer +echo "## kopt_2_6_8_2_686=root=/dev/hdc2 ro" >> $buffer +echo "# kopt=$kopt" >> $buffer +if [ -n "$CustomKopts" ] ; then + echo "$CustomKopts" >> $buffer +elif [ -n "$kopt_2_6" ] && [ "$kopt" != "$kopt_2_6" ]; then + echo "# kopt_2_6=$kopt_2_6" >> $buffer +fi +echo >> $buffer + +echo "## default grub root device" >> $buffer +echo "## e.g. groot=(hd0,0)" >> $buffer +echo "# groot=$grub_root_device" >> $buffer +echo >> $buffer + +echo "## should update-grub create alternative automagic boot options" >> $buffer +echo "## e.g. alternative=true" >> $buffer +echo "## alternative=false" >> $buffer +echo "# alternative=$alternative" >> $buffer +echo >> $buffer + +echo "## should update-grub lock alternative automagic boot options" >> $buffer +echo "## e.g. lockalternative=true" >> $buffer +echo "## lockalternative=false" >> $buffer +echo "# lockalternative=$lockalternative" >> $buffer +echo >> $buffer + +echo "## additional options to use with the default boot option, but not with the" >> $buffer +echo "## alternatives" >> $buffer +echo "## e.g. defoptions=vga=791 resume=/dev/hda5" >> $buffer +echo "# defoptions=$defoptions" >> $buffer +echo >> $buffer + +echo "## should update-grub lock old automagic boot options" >> $buffer +echo "## e.g. lockold=false" >> $buffer +echo "## lockold=true" >> $buffer +echo "# lockold=$lockold" >> $buffer +echo >> $buffer + +echo "## Xen hypervisor options to use with the default Xen boot option" >> $buffer +echo "# xenhopt=$xenhopt" >> $buffer +echo >> $buffer + +echo "## Xen Linux kernel options to use with the default Xen boot option" >> $buffer +echo "# xenkopt=$xenkopt" >> $buffer +echo >> $buffer + +echo "## altoption boot targets option" >> $buffer +echo "## multiple altoptions lines are allowed" >> $buffer +echo "## e.g. altoptions=(extra menu suffix) extra boot options" >> $buffer +echo "## altoptions=(single-user) single" >> $buffer + +if ! grep -q "^# altoptions" $menu ; then + echo "# altoptions=$altoptions" >> $buffer +else + grep "^# altoptions" $menu >> $buffer +fi +echo >> $buffer + +echo "## controls how many kernels should be put into the $menu_file_basename" >> $buffer +echo "## only counts the first occurence of a kernel, not the" >> $buffer +echo "## alternative kernel options" >> $buffer +echo "## e.g. howmany=all" >> $buffer +echo "## howmany=7" >> $buffer +echo "# howmany=$howmany" >> $buffer +echo >> $buffer + + +echo "## should update-grub create memtest86 boot option" >> $buffer +echo "## e.g. memtest86=true" >> $buffer +echo "## memtest86=false" >> $buffer +echo "# memtest86=$memtest86" >> $buffer +echo >> $buffer + +echo "## should update-grub adjust the value of the default booted system" >> $buffer +echo "## can be true or false" >> $buffer +echo "# updatedefaultentry=$updatedefaultentry" >> $buffer +echo >> $buffer + +echo "## should update-grub add savedefault to the default options" >> $buffer +echo "## can be true or false" >> $buffer +echo "# savedefault=$savedefault" >> $buffer +echo >> $buffer + +echo "## ## End Default Options ##" >> $buffer +echo >> $buffer + +echo -n "Searching for splash image ... " >&2 +current_splash=`grep '^splashimage=' ${menu_file} || true` +grub_dir_rel=`make_system_path_relative_to_its_root $grub_dir` +splashimage_path="splashimage=${grub_root_device}/${grub_dir_rel##${kernel_dir}}/splash.xpm.gz" +if [ `sed -e "/^$start/,/^$end/d" $menu_file | grep -c '^splashimage='` != "0" ] ; then + #checks for splashscreen defined outside the autoupdated part + splashimage=$(grep '^splashimage=' ${menu_file}) + echo "found: ${splashimage##*=}" >&2 + echo >&2 +elif [ -f "${grub_dir}/splash.xpm.gz" ] && [ "$current_splash" = "" ]; then + echo "found: /boot/grub/splash.xpm.gz" >&2 + echo "$splashimage_path" >> $buffer + echo >> $buffer +elif [ -f "${grub_dir}/splash.xpm.gz" ] && [ "$current_splash" = "$splashimage_path" ]; then + echo "found: /boot/grub/splash.xpm.gz" >&2 + echo "$splashimage_path" >> $buffer + echo >> $buffer +elif [ "$current_splash" != "" ] && [ "$current_splash" != "$splashimage_path" ]; then + echo "found but preserving previous setting: $(grep '^splashimage=' ${menu_file})" >&2 + echo "$current_splash" >> $buffer + echo >> $buffer +else + echo "none found, skipping ..." >&2 +fi + +xen0Kernels="" +# First kernels with xen0 support. +for ver in `grep -l CONFIG_XEN=y /boot/config* | sed -e s%/boot/config-%%`; do + if ! grep -q CONFIG_XEN_PRIVILEGED_GUEST=y /boot/config-$ver ; then + continue + fi + # ver is a kernel version + kern="/boot/vmlinuz-$ver" + if [ -r $kern ] ; then + newerKernels="" + for i in $xen0Kernels ; do + res=$(CompareVersions "$kern" "$i") + if [ "$kern" != "" ] && [ "$res" -gt 0 ] ; then + newerKernels="$newerKernels $kern $i" + kern="" + else + newerKernels="$newerKernels $i" + fi + done + if [ "$kern" != "" ] ; then + newerKernels="$newerKernels $kern" + fi + xen0Kernels="$newerKernels" + fi +done + +sortedKernels="" +for kern in $(/bin/ls -1vr /boot | grep -v "dpkg-*" | grep "^vmlinuz-") ; do + kern="/boot/$kern" + newerKernels="" + for i in $sortedKernels ; do + res=$(CompareVersions "$kern" "$i") + if [ "$kern" != "" ] && [ "$res" -gt 0 ] ; then + newerKernels="$newerKernels $kern $i" + kern="" + else + newerKernels="$newerKernels $i" + fi + done + if [ "$kern" != "" ] ; then + newerKernels="$newerKernels $kern" + fi + sortedKernels="$newerKernels" +done + +if test -f "/boot/vmlinuz.old" ; then + sortedKernels="/boot/vmlinuz.old $sortedKernels" +fi +if test -f "/boot/vmlinuz" ; then + sortedKernels="/boot/vmlinuz $sortedKernels" +fi + +hypervisors="" +for hyp in /boot/xen-*.gz; do + if [ ! -h "$hyp" ] && [ -f "$hyp" ]; then + hypervisors="$hypervisors `basename "$hyp"`" + fi +done + +#Finding the value the default line +use_grub_set_default="false" +if test "$updatedefaultentry" = "true" ; then + defaultEntryNumber=$(sed -ne 's/^[[:blank:]]*default[[:blank:]]*\(.*\).*/\1/p' $menu) + + if [ "$defaultEntryNumber" = "saved" ] ; then + defaultEntryNumber=$(sed 'q' "$grub_dir/default") + use_grub_set_default="true" + fi + + if test -n "$defaultEntryNumber"; then + defaultEntryNumberPlusOne=$(expr $defaultEntryNumber \+ 1); + defaultEntry=$(grep "^[[:blank:]]*title" $menu | sed -ne "${defaultEntryNumberPlusOne}p" | sed -ne ";s/^[[:blank:]]*title[[:blank:]]*//p") + defaultEntry=$(echo $defaultEntry | sed -e "s/[[:blank:]]*$//") # don't trust trailing blanks + else + notChangeDefault="yes" + fi +else + notChangeDefault="yes" +fi + +## heres where we start writing out the kernel entries +counter=0 + +grub2name="${kernel_dir}/grub/core.img" +if [ "$LET_US_TRY_GRUB_2" = "true" ] \ + && test -f /boot/grub/core.img ; then + echo "Found GRUB 2: $grub2name" >&2 + cat >> $buffer << EOF +title Chainload into GRUB 2 +root $grub_root_device +kernel $grub2name + +title `echo ───────────────────────────────────────────────────────────────────── | iconv -f utf-8 -t cp437` +root + +title When you have verified GRUB 2 works, you can use this command to +root + +title complete the upgrade: upgrade-from-grub-legacy +root + +title `echo ───────────────────────────────────────────────────────────────────── | iconv -f utf-8 -t cp437` +root + +EOF +fi + + +# Xen entries first. +for kern in $xen0Kernels ; do + if test ! x"$howmany" = x"all" ; then + if [ $counter -gt $howmany ] ; then + break + fi + fi + + kernelName=$(basename $kern) + kernelVersion=$(echo $kernelName | sed -e 's/vmlinuz//') + + initrdName=$(FindInitrdName "/boot" "$kernelVersion") + initrd="" + + kernel=$kernel_dir/$kernelName + if [ -n "$initrdName" ] ; then + initrd=$kernel_dir/$initrdName + fi + + kernelVersion=$(echo $kernelVersion | sed -e 's/^-//') + currentOpt=$(get_kernel_opt $kernelVersion) + + hypervisorVersions=$(FindXenHypervisorVersions "$kernelVersion") + + found= + for hypervisorVersion in $hypervisorVersions; do + hypervisor="$kernel_dir/xen-$hypervisorVersion.gz" + if [ -e "$hypervisor" ]; then + found=1 + + echo "Found Xen hypervisor $hypervisorVersion, kernel: $kernel" >&2 + + write_kernel_entry "$kernelVersion" '' '' "$grub_root_device" \ + "$kernel" "$currentOpt $xenkopt" '' "$initrd" "$savedefault" '' \ + Xen "$hypervisor" "$hypervisorVersion" "$xenhopt" + counter=$(($counter + 1)) + fi + done + + if [ -z $found ]; then + for hypervisor in $hypervisors; do + hypVersion=`basename "$hypervisor" .gz | sed s%xen-%%` + + echo "Found Xen hypervisor $hypVersion, kernel: $kernel" >&2 + + write_kernel_entry "$kernelVersion" '' '' "$grub_root_device" \ + "$kernel" "$currentOpt $xenkopt" '' "$initrd" "$savedefault" '' \ + Xen "$kernel_dir/$hypervisor" "$hypVersion" "$xenhopt" + counter=$(($counter + 1)) + done + fi +done + +for kern in $sortedKernels ; do + counter=$(($counter + 1)) + if test ! x"$howmany" = x"all" ; then + if [ $counter -gt $howmany ] ; then + break + fi + fi + kernelName=$(basename $kern) + kernelVersion=$(echo $kernelName | sed -e 's/vmlinuz//') + initrdName=$(FindInitrdName "/boot" "$kernelVersion") + initrd="" + + kernel=$kernel_dir/$kernelName + if [ -n "$initrdName" ] ; then + initrd=$kernel_dir/$initrdName + fi + + echo "Found kernel: $kernel" >&2 + + if [ "$kernelName" = "vmlinuz" ]; then + if [ -L "/boot/$kernelName" ]; then + kernelVersion=`readlink -f "/boot/$kernelName"` + kernelVersion=$(echo $kernelVersion | sed -e 's/.*vmlinuz-//') + kernelVersion="$kernelVersion Default" + else + kernelVersion="Default" + fi + fi + if [ "$kernelName" = "vmlinuz.old" ]; then + if [ -L "/boot/$kernelName" ]; then + kernelVersion=`readlink -f "/boot/$kernelName"` + kernelVersion=$(echo $kernelVersion | sed -e 's/.*vmlinuz-//') + kernelVersion="$kernelVersion Previous" + else + kernelVersion="Previous" + fi + fi + kernelVersion=$(echo $kernelVersion | sed -e 's/^-//') + + currentOpt=$(get_kernel_opt $kernelVersion) + + do_lockold=$lockold + # do not lockold for the first entry + [ $counter -eq 1 ] && do_lockold=false + + write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" "$kernel" \ + "$currentOpt $defoptions" "" "$initrd" "$savedefault" "$do_lockold" + + # insert the alternative boot options + if test ! x"$alternative" = x"false" ; then + # for each altoptions line do this stuff + sed -ne 's/# altoptions=\(.*\)/\1/p' $buffer | while read line; do + descr=$(echo $line | sed -ne 's/\(([^)]*)\)[[:space:]]\(.*\)/\1/p') + suffix=$(echo $line | sed -ne 's/\(([^)]*)\)[[:space:]]\(.*\)/\2/p') + + test x"$lockalternative" = x"true" && do_lockold=false + write_kernel_entry "$kernelVersion" "$descr" "$lockalternative" \ + "$grub_root_device" "$kernel" "$currentOpt" "$suffix" "$initrd" \ + "$savedefault" "$do_lockold" + + done + fi +done + +memtest86names="memtest86 memtest86+" + +if test ! x"$memtest86" = x"false" ; then + for name in $memtest86names ; do + if test -f "/boot/$name.bin" ; then + kernelVersion="$name" + kernel="$kernel_dir/$name.bin" + currentOpt= + initrd= + + echo "Found kernel: $kernel" >&2 + + write_kernel_entry "$kernelVersion" "" "" "$grub_root_device" \ + "$kernel" "$currentOpt" "" "$initrd" "false" "" + fi + done +fi + +echo $end >> $buffer + +echo -n "Updating $menu ... " >&2 +# Insert the new options into the menu +if ! grep -q "^$start" $menu ; then + cat $buffer >> $menu + rm -f $buffer +else + umask 077 + sed -e "/^$start/,/^$end/{ + /^$start/r $buffer + d + } + " $menu > $menu.new + cat $menu.new > $menu + rm -f $buffer $menu.new +fi + +# Function to update the default value +set_default_value() { + if [ "$use_grub_set_default" = "true" ] ; then + if [ -f /usr/lib/grub-legacy/grub-set-default ] ; then + /usr/lib/grub-legacy/grub-set-default $1 + else + grub-set-default $1 + fi + else + value="$1" + newmenu=$(tempfile) + sed -e "s/^[[:blank:]]*default[[:blank:]]*[[:digit:]]*\(.*\)/default ${value}\1/;b" $menu > $newmenu + cat $newmenu > $menu + rm -f $newmenu + unset newmenu + fi +} + +#Updating the default number +if [ "$LET_US_TRY_GRUB_2" = "true" ] && test -f /boot/grub/core.img ; then + set_default_value "0" +elif test -z "$notChangeDefault"; then + newDefaultNumberPlusOne=$(grep "^[[:blank:]]*title[[:blank:]]*" $menu | grep -n "${defaultEntry}" | cut -f1 -d ":" | sed -ne "1p") + if test -z "$newDefaultNumberPlusOne"; then + echo "Previous default entry removed, resetting to 0">&2 + set_default_value "0" + elif test -z "$defaultEntry"; then + echo "Value of default value matches no entry, resetting to 0" >&2 + set_default_value "0" + else + if test "$newDefaultNumberPlusOne" = "1"; then + newDefaultNumber="0" + else + newDefaultNumber=$(expr $newDefaultNumberPlusOne - 1) + fi + echo "Updating the default booting kernel">&2 + set_default_value "$newDefaultNumber" + fi +fi + +echo "done" >&2 +echo >&2 --- grub2-1.99.orig/debian/legacy/upgrade-from-grub-legacy +++ grub2-1.99/debian/legacy/upgrade-from-grub-legacy @@ -0,0 +1,42 @@ +#!/bin/bash -e + +if test ! -f /boot/grub/core.img ; then + echo -e "\ncore.img doesn't exist, trying to create it.\n" >&2 + grub-install --no-floppy --grub-setup=/bin/true "(hd0)" > /dev/null +fi + +echo RESET grub-pc/install_devices | debconf-communicate >/dev/null + +# Pretend we're upgrading grub-pc. This will make our postinst DTRT. +UPGRADE_FROM_GRUB_LEGACY=1 \ + /var/lib/dpkg/info/grub-pc.postinst configure dummy-version + +if test ! -f /boot/grub/grub.cfg ; then + echo -e "\nCalling update-grub to generate grub.cfg\n" >&2 + update-grub || cat << EOF +Failed to generate /boot/grub/grub.cfg but GRUB2 has been already installed to +your MBR. +THIS MEANS YOU HAVE CURRENTLY AN UNBOOTABLE SYSTEM. +Either fix the error from update-grub and run $0 again +or install old grub again and run grub-install from it to have again +grub-legacy in your MBR. +EOF +fi + +# These never contain any valuable information, and they aren't useful for +# boot anymore, since we just overwrote MBR/PBR. +rm -f /boot/grub/{{xfs,reiserfs,e2fs,fat,jfs,minix}_stage1_5,stage{1,2}} +# Remove marker file used to indicate that grub-install was run rather than +# this script. Since stage2 has been removed, we don't need this any more. +rm -f /boot/grub/grub2-installed + +cat << EOF + +GRUB Legacy has been removed, but its configuration files have been preserved, +since this script cannot determine if they contain valuable information. If +you would like to remove the configuration files as well, use the following +command: + + rm -f /boot/grub/menu.lst* + +EOF --- grub2-1.99.orig/debian/apport/source_grub2.py +++ grub2-1.99/debian/apport/source_grub2.py @@ -0,0 +1,65 @@ +'''apport package hook for grub2 + +Author: Jean-Baptiste Lallement + +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. See http://www.gnu.org/copyleft/gpl.html for +the full text of the license. +''' +from apport.hookutils import * +import os + +def check_shell_syntax(path): + ''' Check the syntax of a shell script ''' + try: + subprocess.check_call(['/bin/sh','-n', path], stderr=open(os.devnull,'w')) + except subprocess.CalledProcessError: + return False + return True + +def _attach_file_filtered(report, path, key=None): + '''filter out password from grub configuration''' + if not key: + key = path_to_key(path) + + if os.path.exists(path): + with open(path,'r') as f: + filtered = [l if not l.startswith('password') + else '### PASSWORD LINE REMOVED ###' + for l in f.readlines()] + report[key] = ''.join(filtered) + +def add_info(report): + if report['ProblemType'] == 'Package': + # To detect if root fs is a loop device + attach_file(report, '/proc/cmdline','ProcCmdLine') + _attach_file_filtered(report, '/etc/default/grub','EtcDefaultGrub') + + invalid_grub_script = [] + if not check_shell_syntax('/etc/default/grub'): + invalid_grub_script.append('/etc/default/grub') + + # Check scripts in /etc/grub.d since some users directly change + # configuration there + grubdir='/etc/grub.d' + for f in os.listdir(grubdir): + fullpath=os.path.join(grubdir, f) + if f != 'README' and os.access(fullpath, os.X_OK) \ + and not check_shell_syntax(fullpath): + invalid_grub_script.append(fullpath) + attach_file(report, fullpath) + + # TODO: Add some UI to ask if the user modified the invalid script + # and if he still wants to report it + if invalid_grub_script: + report['InvalidGrubScript'] = ' '.join(invalid_grub_script) + +if __name__ == '__main__': + r = {} + r['ProblemType'] = 'Package' + add_info(r) + for k, v in r.iteritems(): + print '%s: "%s"' % (k, v) + print "========================================" --- grub2-1.99.orig/debian/kernel/zz-update-grub +++ grub2-1.99/debian/kernel/zz-update-grub @@ -0,0 +1,19 @@ +#! /bin/sh +set -e + +which update-grub >/dev/null 2>&1 || exit 0 + +set -- $DEB_MAINT_PARAMS +mode="${1#\'}" +mode="${mode%\'}" +case $0:$mode in + # Only run on postinst configure and postrm remove, to avoid wasting + # time by calling update-grub multiple times on upgrade and removal. + # Also run if we have no DEB_MAINT_PARAMS, in order to work with old + # kernel packages. + */postinst.d/*:|*/postinst.d/*:configure|*/postrm.d/*:|*/postrm.d/*:remove) + exec update-grub + ;; +esac + +exit 0 --- grub2-1.99.orig/debian/default/grub +++ grub2-1.99/debian/default/grub @@ -0,0 +1,32 @@ +# If you change this file, run 'update-grub' afterwards to update +# /boot/grub/grub.cfg. +# For full documentation of the options in this file, see: +# info -f grub -n 'Simple configuration' + +GRUB_DEFAULT=0 +GRUB_TIMEOUT=5 +GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` +GRUB_CMDLINE_LINUX_DEFAULT="quiet" +GRUB_CMDLINE_LINUX="" + +# Uncomment to enable BadRAM filtering, modify to suit your needs +# This works with Linux (no patch required) and with any kernel that obtains +# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) +#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" + +# Uncomment to disable graphical terminal (grub-pc only) +#GRUB_TERMINAL=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `vbeinfo' +#GRUB_GFXMODE=640x480 + +# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +#GRUB_DISABLE_RECOVERY="true" + +# Uncomment to get a beep at grub start +#GRUB_INIT_TUNE="480 440 1" --- grub2-1.99.orig/debian/default/grub.md5sum +++ grub2-1.99/debian/default/grub.md5sum @@ -0,0 +1,2 @@ +dfad90339e4227d432636ed7d4483744 experimental_1.96+20081129-1 +e916b60d7de71969dd7bad5a809fb9dc lenny_1.96+20080724-16