Added: drakx/trunk/rescue/.perl_checker
===================================================================
--- drakx/trunk/rescue/.perl_checker (rev 0)
+++ drakx/trunk/rescue/.perl_checker 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,39 @@
+bytes
+constant
+AutoLoader
+Carp::Heavy
+Compress::Zlib
+Config::IniFiles
+Convert::ASN1
+Cwd
+Date::Manip
+Digest::MD5
+Encode
+encoding
+feature
+File::Basename
+File::Find
+File::FnMatch
+File::GlobMapper
+File::Path
+File::Temp
+Gtk2::Gdk::Keysyms
+IO::Compress::Gzip
+IO::Handle
+IO::Socket::SSL
+IO::Socket::UNIX
+IO::Uncompress::Gunzip
+Net::DBus::Binding::Introspector
+Net::DBus::Binding::Iterator
+Net::DBus::Test::MockIterator
+Net::LDAP
+Net::LDAP::Constant
+Net::LDAP::Control
+Net::LDAP::Filter
+Net::LDAP::Schema
+Net::LDAP::Util
+Scalar::Util
+String::ShellQuote
+Term::ReadKey
+Text::ParseWords
+Time::ZoneInfo
Added: drakx/trunk/rescue/Makefile
===================================================================
--- drakx/trunk/rescue/Makefile (rev 0)
+++ drakx/trunk/rescue/Makefile 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,26 @@
+include ../Makefile.config
+
+VERSION=1.21
+PRODUCT=drakx-installer-rescue
+
+RESCUE = rescue.sqfs
+
+all: $(RESCUE)
+
+install: $(RESCUE)
+ cp -f $< $(STAGE2_DEST)
+
+$(RESCUE): list.xml drvinst guessmounts lsparts rescue-doc make_rescue_img
+ DISTRIB_DESCR=$(DISTRIB_DESCR) ./make_rescue_img
+
+tar:
+ rm -rf $(PRODUCT)*.tar* $(PRODUCT)-$(VERSION)
+ mkdir -p $(PRODUCT)-$(VERSION)/tools
+ svn export -q -rBASE . $(PRODUCT)-$(VERSION)/rescue
+ cp ../Makefile.config $(PRODUCT)-$(VERSION)/
+ cp ../tools/install-xml-file-list $(PRODUCT)-$(VERSION)/tools
+ tar cfj $(PRODUCT)-$(VERSION).tar.bz2 $(PRODUCT)-$(VERSION)
+ rm -rf $(PRODUCT)-$(VERSION)
+
+clean:
+ rm -f $(RESCUE) kernel_read_part
Property changes on: drakx/trunk/rescue/Makefile
___________________________________________________________________
Added: svn:eol-style
+ native
Added: drakx/trunk/rescue/NEWS
===================================================================
--- drakx/trunk/rescue/NEWS (rev 0)
+++ drakx/trunk/rescue/NEWS 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,102 @@
+- include /etc/netconfig (needed by mount.nfs)
+
+Version 1.18 - 13 April 2010, by Olivier "blino" Blin
+
+- image restore script: use blkid instead of deprecated vol_id
+
+Version 1.17 - 12 April 2010, by Olivier "blino" Blin
+
+- Handle LVM (#44723)
+- image restore script: handle hybrid images (by matching main device)
+
+Version 1.16 - 9 October 2009, by Olivier "blino" Blin
+
+- work both with squashfs 3 and 4
+- image restore script (from Paulo Ricardo Zanoni):
+ o re-read partition table after writing image
+ o do not extend / to the end of the disk, it overlaps with swap
+ partition
+- do not make de-latin1 keymap a symlink/include loop (#45109)
+- use extipl from /usr/lib/extipl on x86_64 too
+ (to fix restore_ms_boot, hardcoding this path)
+
+Version 1.15 - 3 September 2009, by Thierry Vignaud
+
+- add back dumpe2fs
+- run /oem-rescue.sh if oem option is present on cmdline
+- allow to specify main partition in the restore config file
+ (MAIN_PART_NUMBER), if there is a restore partition at beginning of
+ disk
+- load ext4 module (#48816)
+- use blkid instead of vol_id which we no longer ship
+
+Version 1.14 - 27 May 2009, by Olivier "blino" Blin
+
+- adapt to new extipl location in x86_64
+- adapt to new magic.mgc location
+
+Version 1.13 - 27 May 2009, by Olivier "blino" Blin
+
+- include various commands
+- image restore script:
+ o better estimate of image dump progression
+ o fix detecting multiple partitions to avoid win32 detection
+ o fix guessing extension when filename contains a dot
+
+Version 1.12 - 20 February 2009, by Olivier "blino" Blin
+
+- image restore script:
+ o add swap partition
+ o use a minimum size for disks to be detected (Caio)
+ o resize Windows partitions if needed (Caio)
+- Flash rescue:
+ o add support for Flash 2009
+ o try to load squashfs-lzma too
+ o handle path to lzma distrib loopbacks
+- fix build:
+ o do not include dead parsehdlist
+ o do not include dead rpm helpers
+
+Version 1.11 - 25 September 2008, by Olivier "blino" Blin
+
+- add image restoration scripts ("restore" command line parameter)
+
+Version 1.10 - 25 April 2008, by Olivier "blino" Blin
+
+- fix "Mounting other partitions from fstab" which use UUID=xxx
+- fix build with latest file package, which only includes the
+ precompiled magic file
+
+Version 1.9 - 10 March 2008, by Olivier "blino" Blin
+
+- handle ntfs-3g in fstab
+- add missing modalias files (#38690)
+
+Version 1.8 - 28 February 2008, by Olivier "blino" Blin
+
+- support new modules location (#38207)
+- adapt to perl 5.10
+- fix build (fix a workaround in partimage_whole_disk)
+
+Version 1.7 - 25 September 2007, by Pascal "Pixel" Rigaux
+
+- add mount.nfs binary (since mount doesn't handle nfs fs anymore)
+
+Version 1.6 - 8 August 2007, by Pascal "Pixel" Rigaux
+
+- adapt to new libldetect together with drakx-installer-images 1.13
+- loadkeys file:
+ o handle new "kbd" rpm which have .map files instead of .kmap
+ o don't skip fr_CH-latin1
+ o handle "fr_CH"-like short names
+- remove rescuept (use testdisk instead, which is much nicer)
+
+Version 1.5 - 9 July 2007, by Pascal "Pixel" Rigaux
+
+- add /etc/mke2fs.conf in order to format ext3fs with 4k blocks (#27377)
+- add "mkfs.ext3" which is no more equivalent to "mkfs.ext2 -J"
+ (eg: dir_index & resize_inode features)
+
+Version 1.4 - 4 April 2007, by Pascal "Pixel" Rigaux
+
+- zcat and gunzip can't be symlinks anymore, they are scripts
Added: drakx/trunk/rescue/aliases
===================================================================
--- drakx/trunk/rescue/aliases (rev 0)
+++ drakx/trunk/rescue/aliases 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,2 @@
+/bin/vi vim-minimal
+/lib/modules /modules
Added: drakx/trunk/rescue/devices.pl
===================================================================
--- drakx/trunk/rescue/devices.pl (rev 0)
+++ drakx/trunk/rescue/devices.pl 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,55 @@
+#!/usr/bin/perl
+
+@ARGV == 1 && chdir $ARGV[0] or die "usage: devices.pl <dir>\n";
+
+foreach (<DATA>) {
+ chomp;
+ my ($typ, $maj, $min, @l) = split;
+ foreach (@l) {
+ my @l2 = do {
+ if (my ($prefix, $ini, $end) = /(.*)(\d+)-(\d+)$/) {
+ map { "$prefix$_" } $ini .. $end;
+ } else {
+ $_;
+ }
+ };
+ foreach (@l2) {
+ my $cmd = "mknod-m600 $_ $typ $maj " . $min++;
+ system($cmd) == 0 or die "$cmd failed\n";
+ }
+ }
+}
+
+__DATA__
+c 5 1 console
+b 2 0 fd0-1
+c 1 2 kmem
+b 7 0 loop0-15
+c 1 1 mem
+c 1 3 null
+c 1 4 port
+b 1 1 ram
+b 1 0 ram0-19
+b 1 0 ramdisk
+c 1 8 random
+b 11 0 scd0-7
+c 0 0 stderr
+c 0 0 stdin
+c 0 0 stdout
+c 5 0 tty
+c 4 0 tty0-9
+c 4 64 ttyS0-3
+c 1 9 urandom
+c 1 5 zero
+b 3 0 hda hda1-16
+b 3 64 hdb hdb1-16
+b 22 0 hdc hdc1-16
+b 22 64 hdd hdd1-16
+b 33 0 hde hde1-16
+b 33 64 hdf hdf1-16
+b 34 0 hdg hdg1-16
+b 34 64 hdh hdh1-16
+b 8 0 sda sda1-15 sdb sdb1-15 sdc sdc1-15 sdd sdd1-15 sde sde1-15 sdf sdf1-15 sdg sdg1-15 sdh sdh1-15
+b 9 0 md0-15
+c 10 144 nvram
+c 9 0 st0-15
Added: drakx/trunk/rescue/dirs
===================================================================
--- drakx/trunk/rescue/dirs (rev 0)
+++ drakx/trunk/rescue/dirs 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,6 @@
+/lib
+/tmp
+/modules
+/proc
+/dev
+/dev/pts
Added: drakx/trunk/rescue/diskdrake-resize
===================================================================
--- drakx/trunk/rescue/diskdrake-resize (rev 0)
+++ drakx/trunk/rescue/diskdrake-resize 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+
+use lib qw(/usr/lib/libDrakX);
+
+use devices;
+use log;
+use resize_fat::main;
+use diskdrake::resize_ntfs;
+use diskdrake::resize_ext2;
+
+my ($device, $fs_type, $size) = @ARGV
+ or die "usage: $0 <device> <fs type> <size>\n";
+
+my %fs_pkgs = (
+ vfat => 'resize_fat::main',
+ ntfs => 'diskdrake::resize_ntfs',
+ ext2 => 'diskdrake::resize_ext2',
+ ext3 => 'diskdrake::resize_ext2',
+);
+
+my $resize_pkg = $fs_pkgs{$fs_type}
+ or die "no support for $fs_type type\n";
+
+log::l("resizing $device to $size");
+
+my $resize = $resize_pkg->new($device, devices::make($device))
+ or die "unable to initialize resize\n";
+$resize->resize($size);
Property changes on: drakx/trunk/rescue/diskdrake-resize
___________________________________________________________________
Added: svn:executable
+ *
Added: drakx/trunk/rescue/drvinst
===================================================================
--- drakx/trunk/rescue/drvinst (rev 0)
+++ drakx/trunk/rescue/drvinst 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+#
+# Guillaume Cottenceau
+#
+# Copyright 2000-2005 Mandriva
+#
+# This software may be freely redistributed under the terms of the GNU
+# public license.
+#
+# 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.
+#
+
+use lib qw(/usr/lib/libDrakX);
+use common;
+use detect_devices;
+
+$ARGV[0] =~ /^--?h/ and die "usage: drivers_install [drivertype1 [drivertype2 ...]]\n";
+my @types = @ARGV;
+
+sub install_module_raw {
+ my ($driver, $o_descr) = @_;
+ print STDERR "Installing driver $driver", $o_descr ? " (for \"$o_descr\")" : '', "\n";
+ system("/sbin/modprobe", $driver) and print "\tfailed\n";
+}
+
+my $already_usb;
+sub install_module {
+ my ($driver, $descr) = @_;
+ install_module_raw($driver, $descr);
+ if (!$already_usb && $driver =~ /usb/) {
+ $already_usb = 1;
+ install_module_raw('usbkbd');
+ install_module_raw('keybdev');
+ }
+}
+
+#- start
+foreach my $card (detect_devices::pci_probe()) {
+ $card->{driver} eq 'unknown' || $card->{driver} =~ /:/ and next;
+ $card->{media_type} eq "DISPLAY_VGA" and next;
+
+ if (!@ARGV || find { $card->{media_type} =~ /$_/i } @types) {
+ install_module($card->{driver}, $card->{description});
+ }
+}
Property changes on: drakx/trunk/rescue/drvinst
___________________________________________________________________
Added: svn:executable
+ *
Added: drakx/trunk/rescue/guessmounts
===================================================================
--- drakx/trunk/rescue/guessmounts (rev 0)
+++ drakx/trunk/rescue/guessmounts 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,100 @@
+#!/usr/bin/perl
+#
+# Guillaume Cottenceau
+#
+# Copyright 2001-2005 Mandriva
+#
+# This software may be freely redistributed under the terms of the GNU
+# public license.
+#
+# 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.
+#
+
+use lib qw(/usr/lib/libDrakX);
+use common;
+use fs;
+use fs::proc_partitions;
+use fs::type;
+use lvm;
+use run_program;
+
+my @proc_mounts = fs::read_fstab('', '/proc/mounts');
+
+my $target = '/mnt';
+
+if (fs::get::mntpoint2part($target, \@proc_mounts)) {
+ print STDERR "$target is already mounted (according to /proc/mounts)\n";
+ exit 0;
+}
+
+system('drvinst', 'STORAGE');
+
+print STDERR "\nPlease wait, trying to find your root device...\n";
+
+mkdir_p($target);
+
+lvm::detect_during_install();
+
+my @parts = map {
+ $_->{device} = delete $_->{dev};
+ put_in_hash($_, fs::type::type_subpart_from_magic($_));
+} fs::proc_partitions::read_raw();
+my ($raid_parts, $normal_parts) = partition { isRawRAID($_) } @parts;
+
+if (@$raid_parts) {
+ require raid;
+ raid::detect_during_install_once(@$raid_parts);
+ my $raids = raid::get_existing(@$raid_parts);
+ push @$normal_parts, @$raids;
+}
+
+my @fstab;
+my $root;
+
+foreach (@$normal_parts) {
+ my $dev = devices::make($_->{device});
+
+ my $fs = find {
+ system("mount -t $_ $dev $target 2>/dev/null") == 0;
+ } fs::type::true_local_fs_types() or next;
+
+ if (my $release_file = common::release_file($target)) {
+ print STDERR "=> found a %s root partition on $dev\n=> type $fs, version `",
+ chomp_(cat_("$target$release_file")), "'\n";
+ @fstab = fs::read_fstab($target, '/etc/fstab');
+ $root = $dev;
+ last;
+ } else {
+ system('umount', $target) == 0 or die "error unmounting $target\n";
+ }
+}
+
+if ($root) {
+ print STDERR "\nMounting other partitions from fstab on $target...\n";
+ foreach (@fstab) {
+ my ($valued_options, $options) = fs::mount_options::unpack($_);
+
+ next if
+ !$_->{fs_type} || $_->{device} eq 'none'
+ || $valued_options->{noauto}
+ || $_->{mntpoint} eq '/'
+ || member($_->{fs_type}, 'swap', 'nfs', 'ntfs', 'ntfs-3g');
+
+ delete $valued_options->{'iocharset='};
+ delete $valued_options->{'codepage='};
+ fs::mount_options::pack($_, $valued_options, $options); #- vfat opts, we don't have the modules in rescue
+
+ my $where = "$target$_->{mntpoint}";
+ my $dev = fs::wild_device::from_part('', $_);
+ mkdir_p($where);
+ print STDERR "\t$dev on $where type $_->{fs_type} options $_->{options}\n";
+ system("mount -t $_->{fs_type} $dev $where -o $_->{options}");
+ system("cp -f /etc/mtab $target/etc/mtab"); #- to allow a nice chrooted "mount" or "df"
+ }
+ print STDERR "\nYour system is ready on $target.\n\n";
+} else {
+ die "Could not find your root device :-(.\n";
+}
+
Property changes on: drakx/trunk/rescue/guessmounts
___________________________________________________________________
Added: svn:executable
+ *
Added: drakx/trunk/rescue/install_bootloader
===================================================================
--- drakx/trunk/rescue/install_bootloader (rev 0)
+++ drakx/trunk/rescue/install_bootloader 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,69 @@
+#!/usr/bin/perl
+#
+# Guillaume Cottenceau
+#
+# Copyright 2001-2005 Mandriva
+#
+# This software may be freely redistributed under the terms of the GNU
+# public license.
+#
+# 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.
+#
+
+use lib qw(/usr/lib/libDrakX);
+use common;
+use bootloader;
+use fs;
+
+if ($ARGV[0] eq '--auto') {
+ $auto = shift @ARGV;
+}
+
+$::prefix = '/mnt';
+
+my $release = common::mandrake_release($::prefix) ||
+ do {
+ system('guessmounts') == 0 or die 'guessmounts failed';
+ common::mandrake_release($::prefix);
+ };
+
+if ($release) {
+ $release =~ /Mageia|Mandriva/ or die "release file doesn't contain '%s', exiting.\n";
+} elsif (fs::get::mntpoint2part($::prefix, [ fs::read_fstab('', '/proc/mounts') ])) {
+ die "unknown distribution mounted in $::prefix\n";
+} else {
+ die "Your root device isn't mounted on $::prefix\n";
+}
+
+my @main_methods = bootloader::configured_main_methods();
+
+my $main_method;
+if (@main_methods == 0) {
+ die "Cannot find a configured boot loader\n";
+} elsif (@main_methods == 1) {
+ ($main_method) = @main_methods;
+} else {
+ while (1) {
+ print "Configuration files for Boot Loaders ", join(' and ', @main_methods), " were found.\n";
+ print "Which one one should be installed? ";
+ chomp($main_method = <STDIN>);
+ if (member($main_method, @main_methods)) {
+ last;
+ } else {
+ print "bad choice\n";
+ }
+ }
+}
+
+my $install = $bootloader::{'install_raw_' . $main_method} or die "unknown bootloader method install_raw_$main_method\n";
+
+print "About to re-install Boot Loader $main_method of following %s distribution:\n\t",
+ $release, "\n";
+if (!$auto) {
+ print "=> ok? <press Enter to continue, 'n' and Enter to cancel> ";
+ <STDIN> =~ /^n/i and exit 0;
+}
+
+$install->();
Property changes on: drakx/trunk/rescue/install_bootloader
___________________________________________________________________
Added: svn:executable
+ *
Added: drakx/trunk/rescue/list.xml
===================================================================
--- drakx/trunk/rescue/list.xml (rev 0)
+++ drakx/trunk/rescue/list.xml 2011-02-09 23:30:32 UTC (rev 502)
@@ -0,0 +1,348 @@
+<list no-arch-libraries="on">
+
+<from expand="binary">
+ bash sh
+
+ false true
+ pwd reset
+
+ ls
+ cp ln mkdir mknod mv rm rmdir
+ chmod chown
+ dd touch
+
+ cat less
+ tail head tee
+ sort split cut
+ grep
+
+ cmp diff
+ find
+ file md5sum
+
+ gzip zcat gunzip
+ bzip2 bunzip2 bzcat
+
+ df du
+
+ packdrake
+ cpio ftp tar
+ rsync
+ ssh scp
+ telnet
+ host
+
+ date
+ dmesg
+ chroot
+ sleep
+ sync
+
+ eject
+ mount mount.nfs umount
+ losetup
+
+ ldconfig
+ mingetty init
+ reboot halt shutdown
+ kill killall5 ps strace
+ sed tr
+ strings
+
+ loadkeys tset stty
+
+ ping hostname ifconfig route
+
+ fdformat badblocks
+ mkswap swapoff swapon
+ e2fsck fsck.ext2 fsck.ext3 fsck.ext4
+ mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4
+ dumpe2fs tune2fs resize2fs debugfs
+
+ mkfs.reiserfs resize_reiserfs reiserfstune reiserfsck
+ mkfs.xfs xfs_admin xfs_repair fsck.xfs
+ mkfs.ntfs mkdosfs dosfslabel mkntfs ntfsresize ntfslabel
+ <if ARCH="i.86|x86_64">
+ mkfs.jfs fsck.jfs jfs_tune
+ </if>
+ quotacheck
+ cryptsetup dmsetup
+
+ <if ARCH="ppc">
+ hformat
+ </if>
+
+ <if-not ARCH="ppc">
+ fdisk gpart
+ testdisk photorec
+ </if-not>
+
+ <if-not ARCH="ppc|sparc">
+ sfdisk
+ </if-not>
+
+ <if ARCH="ppc">
+ pdisk
+ </if>
+ dump dump.ext2 restore restore.ext2 dump.ext3 restore.ext3 dump.xfs restore.xfs
+ parted partimage
+
+ mdadm lvm2
+ mdmon kpartx
+ dmevent_tool
+ dmeventd
+ <if ARCH="i.86|x86_64|ia64">
+ dmraid
+ </if>
+
+ lsmod
+ insmod
+ rmmod
+
+ setserial
+ mt stinit
+
+ lspci lspcidrake
+
+ rpm
+ rpm2cpio rpmdb
+ rpmquery rpmverify
+
+ vim-minimal hexedit
+
+ perl
+ uniq
+ wget
+
+ awk clear dialog wc
+ setterm
+
+ <if ARCH="i.86|x86_64|ia64">
+ dmidecode
+ </if>
+
+ <if ARCH="i.86|x86_64">
+ grub grub-install
+ </if>
+ <if ARCH="ia64">
+ efibootmgr
+ </if>
+ <if ARCH="ppc">
+ ybin
+ mkofboot ofpath
+ nvsetenv
+ </if>
+ <if ARCH="sparc">
+ silo
+ </if>
+</from>
+
+<from>
+ /usr/lib/kbd/keymaps/include
+ <if ARCH="i.86|x86_64">
+ /usr/lib/kbd/keymaps/i386/include
+ /usr/lib/kbd/keymaps/i386/azerty/be-latin1.map.gz <!-- this one is needed by be2-latin1 -->
+ </if>
+ /usr/share/misc/magic.mgc
+ /usr/share/terminfo/l/linux
+ /usr/share/pci.ids
+ /var/run/utmp
+
+ <if ARCH="i.86|x86_64">
+ <from dir="/lib/grub/ARCH-mageia" expand="glob">
+ stage1
+ stage2
+ *_stage1_5
+ </from>
+ /usr/lib/extipl/aldebaran.bin
+ </if>
+
+ <if ARCH="ppc">
+ /usr/lib/yaboot/ofboot
+ /usr/lib/yaboot/yaboot
+ </if>
+
+ <from expand="command">
+ perl -Mkeyboard -I/usr/lib/libDrakX -le 'print foreach keyboard::loadkeys_files()'
+ </from>
+
+ <if set="LANGUAGE_fr_FR">
+ /usr/lib/gconv/gconv-modules
+ /usr/lib/gconv/ISO8859-15.so
+ /usr/share/locale/ISO-8859-15
+ /usr/share/locale/fr_FR
+ /usr/share/locale/fr/LC_MESSAGES/partimage.mo
+ </if>
+ <if set="LANGUAGE_pt_BR">
+ /usr/lib/gconv/gconv-modules
+ /usr/lib/gconv/ISO8859-15.so
+ /usr/share/locale/ISO-8859-15
+ /usr/share/locale/pt_BR
+ /usr/share/locale/pt/LC_MESSAGES/partimage.mo
+ </if>
+ <!-- needed by mlabel used during Flash upgrades -->
+ /usr/lib/gconv/IBM850.so
+
+
+ /sbin/mount.ntfs-3g <!-- can not be expanded as binary, not executable for all users -->
+ /sbin/blkid
+</from>
+
+<from dir="/usr/lib/rpm" expand="glob">
+ <mode copy="keep-links">
+ rpmrc
@@ Diff output truncated at 20000 characters. @@