439 lines
21 KiB
Plaintext
439 lines
21 KiB
Plaintext
RescueBRU System - Rescue CD Backup & Restore Utility Rod Wright
|
||
CHANGELOG
|
||
########################################################################
|
||
General changes:
|
||
------------------------------------------------------------------------
|
||
02/11/2016 - 7.2.1 - Changed default startup mode from text mode to
|
||
graphical (Xorg) mode. Fixed some things that were missing from the boot
|
||
menu and re-ordered options to make more sense. Created a /mnt/usb
|
||
directory so some procedures would work correctly. Updated the RescueBRU
|
||
User Guide to reflect changes.
|
||
|
||
06/27/2018 - 7.2.2 - Updated System Rescue CD version to 5.2.2 to
|
||
provide kernel support for newer hardware.
|
||
|
||
03/19/2021 - 7.2.3 - No changes.
|
||
|
||
09/21/2021 - 7.2.4 - No changes.
|
||
|
||
01/19/2024 - 7.2.5 - Changed scripts in /etc/init.d to prevent dhcpcd
|
||
from running automatically at boot. This makes RescueBRU play nice in
|
||
networks with other DHCP servers by not unnecessarily grabbing up leases
|
||
unnecessarily. We will let rescuebru.sh acquire addresses later under
|
||
its own control.
|
||
|
||
########################################################################
|
||
rescuebru.sh:
|
||
------------------------------------------------------------------------
|
||
05/06/08 - 1.0 - Initial Release
|
||
|
||
05/09/08 - 1.1 - Added prompting for MBRs and partitions. Added
|
||
Help. Added media creation.
|
||
|
||
05/16/08 - 1.2 - Fixed bug where partition array was not being
|
||
created correctly when multiple drives were present. Added error
|
||
detection on backup and restore. Added backup media capacity
|
||
detection and warning. Added backup and restore of extended
|
||
partition information. Updated help files.
|
||
|
||
05/24/08 - 2.0 - Added support for HP CISS controller devices. Added
|
||
NFS media support.
|
||
|
||
06/05/08 - 2.1 - Added support for Adaptec I2O SCSI controller
|
||
devices. Improved client IP address deconfliction. Added support to
|
||
restore linux swap partitions. Fixed unreliable detection of
|
||
extended partitions.
|
||
|
||
06/10/08 - 2.2 - Added "-M" (--no-mbr) to PI_BACKUP_ARGS for
|
||
partimage since it was causing trouble with Adaptec I2O controller,
|
||
and we back up MBRs separately anyway.
|
||
|
||
06/12/08 - 2.3 - Added "--force" option to arguments for sfdisk
|
||
restoration to prevent failure caused by restoring existing table.
|
||
|
||
07/01/08 - 2.4 - Added line to kill off netplugd before we start,
|
||
since we don't need it and it interferes with server detection on
|
||
some machines. Added support for backing up to a local directory.
|
||
|
||
07/02/08 - 2.5 - Added a 5 second sleep after setting up a network
|
||
interface to give any network switches time to recognize and route
|
||
us properly.
|
||
|
||
07/23/08 - 2.6 - Improved Local media type for general use. Added
|
||
integration with new rbruserver script. Fixed main menu to catch
|
||
garbage user input.
|
||
|
||
08/13/08 - 3.0 - Upgraded sysresccd to version 1.0.4. Improved exit
|
||
options. Now you can exit to shell, exit and reboot, or exit and
|
||
power off. Added operation logging so it's easy to tell if something
|
||
failed. Added backup method menu. Standard is dd/sfdisk/partimage.
|
||
Verbatim is dd of whole drive, compressed and split into 2G files.
|
||
|
||
05/13/09 - 3.1 - Fixed net_setup function to stop testing interfaces
|
||
after it finds a working one. Create /var/lib/nfs/state file so nfs
|
||
startup script won't complain. Removed Adaptec i2o specific code
|
||
since sysresccd version 1.0.4 names the devices correctly. NOTE:
|
||
BACKUPS DONE WITH VERSIONS OF RESCUEBRU PRIOR TO 3.0 THAT CONTAIN
|
||
I2O DEVICES CANNOT BE RESTORED WITH VERSIONS 3.0 OR LATER. REDO
|
||
THOSE BACKUPS! Fixed bug where a failure to find a server loops you
|
||
back through the net setup code again. Removed prompts to save log
|
||
file when rebooting or powering down since anything saved in the
|
||
ramdisk will disappear anyway. Added option to view log files on
|
||
backup media.
|
||
|
||
10/22/09 - 4.0 - Added progress indicating for verbatim
|
||
backups/restores. Removed arbitrary limit to number of clients
|
||
(since it was easy to fool anyway). Added conv=sync,noerror to dd
|
||
arguments in vbbackup function to ignore disk errors and replace bad
|
||
blocks with nulls. Shortened timeouts in the network code to speed
|
||
things up a bit. Changed network interface scanning to start with
|
||
short timeouts and gradually increase them so we can work with slow
|
||
NICs, but not take too long on fast ones. Added a prompt for the
|
||
initial IP address so that multiple users can work on the same
|
||
network without IP collisions. Removed the backup media and backup
|
||
method submenus and replaced them with simple prompts to make them
|
||
less unwieldy. Moved the restore and backup processes out of the
|
||
main menu and into functions. Fixed bug that caused incorrect
|
||
behavior when "quit" was supplied as an image name. Removed prompt
|
||
to save temporary log file on exit to shell. Save temporary log by
|
||
default. Removed prompting to save a log with the backup. It's a
|
||
good idea to save the logs and sometimes it was accidentally not
|
||
saved. Fixed bug in logview function that caused weird behavior on
|
||
subsequent calls of the function. Don't delete existing backup
|
||
before starting new one, so if something goes wrong, we're not
|
||
screwed. When prompting for IP addresses, after the backup server
|
||
address, only prompt for the host byte to make entries easier.
|
||
|
||
2/16/10 - 4.1 - At end of backup, copy new backup over old one
|
||
before displaying log to avoid long delays. Detect and abort on NFS
|
||
share mount failure. In function net_setup(), ping more during
|
||
"determine ip" phase to accommodate slower hardware. In function
|
||
mbrrestore(), removed untrue statement that associated partitions
|
||
couldn't be restored. At beginning of function net_setup(), unmount
|
||
any stale NFS mounts and take down any interfaces that are already
|
||
up. Put "then" and "do" on the same line as their starting
|
||
statements so auto-indent works properly in IDE. Fixed bug where
|
||
status file wasn't getting written if $remote_dir was different than
|
||
$MEDIA_MNT_DIR. In function net_setup(), improve interface scanning
|
||
to increase the number of pings in each step and decrease the number
|
||
of steps since some slower NICs were still not coming up. In
|
||
function net_setup, changed sleeps and pings wherever link is
|
||
brought up to sleep and ping longer based on the timeout required to
|
||
find the server. This should prevent NFS mounts from failing on slow
|
||
NICs. Modified function partbackup() to save UUID info to image file
|
||
for linux swap partitions. Included static binary mkswap-uuid to
|
||
enable setting UUID on swap partitions. Modified function
|
||
partrestore() to set UUID when restoring swap if UUID info is
|
||
available, otherwise let mkswap generate one. This prevents swap
|
||
mount failure on distributions (like Ubuntu) that mount swap based
|
||
on UUID instead of device name.
|
||
|
||
2/25/10 - 5.0 - Updated System Rescue CD to version 1.3.5. Stripped
|
||
unneeded packages to get iso size down enough to run docache by
|
||
default. Added docache and lowmem as boot parameters. Edited
|
||
/bin/bashlogin and f1boot.msg to reflect new versions/dates. Added
|
||
code to mbrbackup(), partbackup(), and vbbackup() functions to save
|
||
output of fdisk -l for each drive for comparison on restore. Added
|
||
code to driveselect() and partselect() funtions to compare sizes of
|
||
original and current drives and issue warnings as required.
|
||
|
||
6/11/10 - 5.1 - Moved CHANGELOG off to a separate file since it was
|
||
getting so huge. Found that Adaptec i2o support is a moving target.
|
||
With the current kernel, it's back to /dev/i2o/hdXX. Put the i2o
|
||
specific code that I pulled out for version 3.1 back in. IF YOU HAVE
|
||
BACKUPS OF MACHINES USING ADAPTEC I2O CONTROLLERS THAT WERE DONE
|
||
SINCE VERSION 4.0, YOU WILL NEED TO MANUALLY RENAME THE FILES IN
|
||
THOSE BACKUPS TO REFLECT THE NEW DEVICE NAMES, OR JUST DO NEW
|
||
BACKUPS! Added option to select what you want to do after a
|
||
successful backup or restore (return to menu, reboot, or shut down).
|
||
Reworked dobackup() and dorestore() to remove excessive loop
|
||
nesting. Fixed bug where new backups log files were getting dumped
|
||
into the $IMAGE_PATH directory. Added the ability to abort network
|
||
scanning after the normal scan so you don't have to wait for the
|
||
long and extra long scans to complete to get back to the menu.
|
||
|
||
9/9/10 - 6.0 - Updated System Rescue CD to version 1.5.8. Set up
|
||
boot menu and autoruns to eliminate typing commands at shell
|
||
prompts. Fixed bug in rescuebru.sh netscan_timeout() where pressing
|
||
a didn't abort scan. Added scripts to rename backups when the
|
||
Adaptec i2o driver changes device names. If you get errors when
|
||
trying to restore like "device not found", run the appropriate
|
||
script on the server to fix things. Added PXE boot server
|
||
capability to rbruserver.
|
||
|
||
1/6/11 - 6.1 - Updated System Rescue CD to version 1.6.4 to get
|
||
updated tg3 driver. In rescuebru.sh, updated vbbackup() and
|
||
vbrestore() to use pv for progress indication.
|
||
|
||
11/29/11 - 6.2 - Swap partitions created with old versions of mkswap
|
||
didn't have UUIDs, so on backup, the file generated by blkid didn't
|
||
contain UUID. This caused failure on restore. Fixed the swap
|
||
creation in rescuebru.sh:partrestore() to detect this condition and
|
||
do the right thing. If aborting network scanning once, was unable to
|
||
abort it in subsequent passes. In rescuebru.sh, fixed
|
||
netscan_timeout() to unset the $nsa loop control variable at start.
|
||
Fixed some typos in isolinux.cfg.
|
||
|
||
7/3/12 - 6.3 - Added flush_input() function to drop spurious user
|
||
input between prompts. Added y_or_n() function to standardize,
|
||
simplify, and validate yes or no prompting. Removed mkswap-uuid
|
||
since new mkswap implements UUID setting. Removed ddprog since we
|
||
don't use it any more. Renamed backup methods to reflect what they
|
||
actually do. Added inline help for media type and backup method
|
||
selections. Added fsarchiver backup method. Fixed bug where USB
|
||
backup media wasn't being excluded from drive/partition selection
|
||
prompting. Fixed bug where the initial boot menu wasn't starting the
|
||
pxeboot server when option 7 was selected. Modified the build tools
|
||
to put a copy of /root/rescuebru in the root of the ISO file system
|
||
so you could see the scripts without having to boot the CD.
|
||
|
||
9/14/12 - 6.3.1 - Added check_route() function to work around slow
|
||
behavior of certain Cisco switches in setting up routes.
|
||
|
||
1/16/13 - 7.0 - Added function to display selected actions before
|
||
beginning an operation and prompt for confirmation. Also check for a
|
||
backup where nothing is selected. Previously, this would succeed,
|
||
resulting in a backup of nothing potentially overwriting an existing
|
||
backup. Added clone.sh and blank.sh command line utilities.
|
||
Integrated those two utilities into the RescueBRU menu structure.
|
||
Moved functions that have a common usage among various RescueBRU
|
||
components to a separate functions.sh file. Integrated CHANGELOGs
|
||
from the multiple utilities into this file. Fixed bug where
|
||
arguments passed in from rbruserver were not being parsed correctly
|
||
resulting in the local RAID devices not being excluded. Changed name
|
||
of functions vbbackup(), vbrestore() to ddgzbackup(), ddgzrestore()
|
||
to match the new method naming scheme. Save S.M.A.R.T. data for
|
||
drives during backup so that useful drive info may be obtained. When
|
||
backing up, save drive sizes in separate files instead of trying to
|
||
extract it from the fdisk -l output. Save partition size information
|
||
as well as drive size information. When creating directory for
|
||
backup, if directory already exists, and user elects not to
|
||
overwrite, the getimagename() function is called again instead of
|
||
just aborting out and having the user start all over. Enabled
|
||
pausing of various operations. Automatically eject the CD after
|
||
booting to rescuebru or rescuebru in xorg options. Completely
|
||
revamped the menu layout of rescuebru. Moved all program settings
|
||
(media type, backup method, and action after successful operation)
|
||
to a Settings submenu. Created a Disk Utilities submenu for cloning,
|
||
blanking, badblocks testing, and media setup. Changed the constant
|
||
menu options (help, exit) to letters to prevent having to renumber
|
||
them if new options are added in the future. Reorganized funtions to
|
||
make them easier to maintain. Standardized all menu code to case
|
||
statements using regular expressions instead of unwieldy "if then
|
||
elif then" statements with cumbersome test constructs. Updated all
|
||
help documentation to reflect changes.
|
||
|
||
1/2/2015 - 7.1.0 - Complete rewrite of rescuebru.sh. Implemented
|
||
dialog based user interface. Network configuration is now automatic
|
||
using DHCP. Changed the standard IP addressing scheme to 10.111.x.y.
|
||
Added ability to save notes and version numbers with a backup. If
|
||
overwriting a previous backup, preserve notes/logs from the existing
|
||
backup. If a notes template is present on the server, loads that
|
||
into the note edit dialog. Added image management functionality
|
||
(copy/delete/rename) that was previously only available in the
|
||
server. Backup method is now determined automatically by default for
|
||
each partition individually based on the contents. Fixed numerous
|
||
bugs. Removed scsi-i2o conversion scripts because the systems they
|
||
were written to support are no longer available to test against. If
|
||
the problem returns (can only happen with a new SystemRescueCD
|
||
version), the suggestion is just to do new backups of the affected
|
||
systems. Updated help files.
|
||
|
||
2/19/2015 - 7.1.1 - Critical bugfix and minor feature release. Fixed
|
||
bug in do_restore() where size warning code caused abort for backups
|
||
done of HP CISS devices. Added ability to specify compression levels
|
||
of backups. Changed hotkeys for help options in menus from "H" to
|
||
"?" to avoid conflicts with other menu options. Fixed bug where
|
||
smartctl output was not being parsed correctly resulting in messages
|
||
like "Previous device was: (blank)" during restore.
|
||
|
||
3/10/2015 - 7.2.0 - Updated SystemRescueCD to version 4.5.1 to make
|
||
use of new megaraid driver device support. Added support for GPT
|
||
partition tables. Added support for booting machines with UEFI BIOS.
|
||
|
||
2/11/2016 - 7.2.1 - Xorg mode is now the default mode and includes a
|
||
backup media capacity monitoring window. Modified the xrescuebru.sh
|
||
script to disable screen blanking. Validate the version input text
|
||
to prevent failure to display available backups. Fixed bug where
|
||
auto_net_setup would report no carrier where it did in face exist.
|
||
|
||
06/27/2018 - 7.2.2 - No changes.
|
||
|
||
03/19/2021 - 7.2.3 - Added support for NVMe devices.
|
||
|
||
9/21/2021 - 7.2.4 - Fixed bug in getimages() function where gpt
|
||
partition table images of NVMe devices were not being offered as
|
||
selections to restore, resulting in failed restores with new drives.
|
||
|
||
01/19/2024 - 7.2.5 - Added option to the settings menu to set the backup
|
||
server type. The options are “RescueBRU Server” (the default) and
|
||
“any DHCP server”. Also changed the auto_net_setup() function to only
|
||
attempt to get a DHCP address based on the backup server type selected
|
||
in settings. This is to prevent attempts to get an IP address from any
|
||
available DHCP server in the event that getting one from a RescueBRU
|
||
server fails. This makes RescueBRU play nice on networks that have DHCP
|
||
servers by not grabbing up leases unnecessarily. If you need to use
|
||
RescueBRU with the NFS storage type, but you don’t have a dedicated
|
||
RescueBRU Server running, you’ll need to go into settings and explicitly
|
||
enable promiscuous DHCP by changing the backup server type. Added an
|
||
option to the settings menu to specify the remote NFS share name in case
|
||
we are using a non RescueBRU NFS server but still use the auto net
|
||
setup type to get our address.
|
||
|
||
########################################################################
|
||
rbruserver.sh:
|
||
----------------------------------------------------------------------
|
||
07/23/08 - 1.0 - Initial Release
|
||
|
||
08/12/08 - 1.1 - Added code to server_start to clean up stale client
|
||
mark files.
|
||
|
||
08/27/08 - 1.2 - Incorporated improvements to mainmenu()
|
||
|
||
04/30/09 - 1.3 - Added code to intelligently determine RAID array
|
||
members instead of hardcoding them.
|
||
|
||
05/14/09 - 1.4 - Added code to create /var/lib/nfs/state file so nfs
|
||
startup script won't complain. Added capability to view log files.
|
||
Improved exit options so they match rescuebru and are not confusing.
|
||
Added raidtest function to show RAID status on startup and with a
|
||
menu option.
|
||
|
||
10/21/09 - 1.5 - Changed raidtest function to use mdadm instead of
|
||
just cat'ing and parsing /proc/mdstat. Start server by default on
|
||
program start. Fixed bug in logview function that caused weird
|
||
behavior on subsequent calls of the function. Added ability to show
|
||
connected clients and their status.
|
||
|
||
9/7/10 - 2.0 - Add ability to start PXE boot script to act as a boot
|
||
server.
|
||
|
||
12/20/10 - 2.1 - Fixed bug in server_start that prevented network
|
||
from being brought back up after a user stop/start.
|
||
|
||
1/17/13 - 3.0 - Fixed bug where only the RAID partitions and not the
|
||
entire drive devices were being passed to rescuebru when local
|
||
backup/restore was selected. Removed functions that are duplicated
|
||
in functions.sh. Moved change information to the commom CHANGELOG
|
||
file. Consolidated the three image manipulation functions,
|
||
image_copy(), image_rename(), and image_delete() into a single
|
||
function, image_mod(). Cleaned up code structure. Changed the main
|
||
menu exit options to letters to prevent having to renumber them if
|
||
new options are added in the future. Combined image copy, rename,
|
||
and delete options into an image management submenu.
|
||
|
||
1/2/2015 - 7.1.0 - Advanced the version number to match that of
|
||
other scripts. Major rewrite of rbruserver.sh. Implemented dialog
|
||
based user interface. Network addressing is provided to clients
|
||
using DHCP. Server now uses all available interfaces in the machine,
|
||
and serves IP addresses and NFS on all. By default, only provides
|
||
DHCP responses to clients identifying themselves as "rescuebru". If
|
||
PXE boot server is running, provides responses to all clients by
|
||
necessity. Fixed bug where PXE boot server would send the server
|
||
version of the configuration instead of the client version. Added
|
||
capability to define a template for backup notes to guide users
|
||
about what information to be entered in a note. Increased RAID
|
||
stripe cache size to the max to improve RAID write performance.
|
||
|
||
2/19/2015 - 7.1.1 - Advanced the version number.
|
||
|
||
3/10/2015 - 7.2.0 - Updated SystemRescueCD to version 4.5.1 to make
|
||
use of new megaraid driver device support. Added command to kill
|
||
dhcpcd at startup since we don't need to ask somebody for an IP
|
||
address if we're a server. Added support for booting machines with
|
||
UEFI BIOS.
|
||
|
||
2/11/2016 - 7.2.1 - Server now runs in Xorg mode. Implemented a
|
||
RAID set capacity display. Implemented a fault monitoring display
|
||
and indication using the blue UID light on the server machine to
|
||
indicate a fault.
|
||
|
||
06/27/2018 - 7.2.2 - No changes.
|
||
|
||
03/19/2021 - 7.2.3 - Added support for NVMe devices.
|
||
|
||
9/21/2021 - 7.2.4 - No changes
|
||
|
||
01/19/2024 - 7.2.5 - No changes.
|
||
|
||
########################################################################
|
||
clone.sh:
|
||
------------------------------------------------------------------------
|
||
11/28/12 - 1.0 - Initial Release
|
||
|
||
1/2/2015 - 7.1.0 - Advanced the version number to match that of
|
||
other scripts.
|
||
|
||
2/19/2015 - 7.1.1 - Advanced the version number.
|
||
|
||
3/10/2015 - 7.2.0 - Updated SystemRescueCD to version 4.5.1 to make
|
||
use of new megaraid driver device support.
|
||
|
||
2/11/2016 - 7.2.1 - Changed the input and output block sizes used by
|
||
the dd command from the default (512 byte) to 4096 byte to increase
|
||
clone speed.
|
||
|
||
06/27/2018 - 7.2.2 - No changes.
|
||
|
||
03/19/2021 - 7.2.3 - No changes.
|
||
|
||
09/21/2021 - 7.2.4 - No changes.
|
||
|
||
01/19/2024 - 7.2.5 - No changes.
|
||
|
||
########################################################################
|
||
blank.sh:
|
||
------------------------------------------------------------------------
|
||
11/28/12 - 1.0 - Initial Release
|
||
|
||
1/2/2015 - 7.1.0 - Advanced the version number to match that of
|
||
other scripts.
|
||
|
||
2/19/2015 - 7.1.1 - Advanced the version number.
|
||
|
||
3/10/2015 - 7.2.0 - Updated SystemRescueCD to version 4.5.1 to make
|
||
use of new megaraid driver device support.
|
||
|
||
2/11/2016 - 7.2.1 - Changed the input and output block sizes used by
|
||
the dd command from the default (512 byte) to 4096 byte to increase
|
||
clone speed.
|
||
|
||
06/27/2018 - 7.2.2 - No changes.
|
||
|
||
03/19/2021 - 7.2.3 - No changes.
|
||
|
||
09/21/2021 - 7.2.4 - No changes.
|
||
|
||
01/19/2024 - 7.2.5 - No changes.
|
||
|
||
########################################################################
|
||
functions.sh:
|
||
------------------------------------------------------------------------
|
||
12/5/12 - 1.0 - Initial Release
|
||
|
||
1/2/2015 - 7.1.0 - Advanced the version number to match that of
|
||
other scripts. Updated existing functions to use the dialog based
|
||
user interface.
|
||
|
||
2/19/2015 - 7.1.1 - Advanced the version number.
|
||
|
||
3/10/2015 - 7.2.0 - Updated SystemRescueCD to version 4.5.1 to make
|
||
use of new megaraid driver device support. Added --time-style
|
||
parameter to the ls command in the showimages() and buildimagelist()
|
||
functions due to a change in the default time style in the newer
|
||
version of ls.
|
||
|
||
2/11/2016 - 7.2.1 - No changes.
|
||
|
||
06/27/2018 - 7.2.2 - No changes.
|
||
|
||
03/19/2021 - 7.2.3 - No changes.
|
||
|
||
09/21/2021 - 7.2.4 - No changes.
|
||
|
||
01/19/2024 - 7.2.5 - Modified the validate_text() function to validate
|
||
either a name (of say, a backup or version number) or a path (which
|
||
would need to include forward slashes). Fixed bug in getnewname() where
|
||
"NEW_IMAGE_NAME" or "lost+found" would incorrectly be accepted as the
|
||
backup image name.
|