Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:Update
rear1172a.32115
rear1172a-gpt_sync_mbr.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File rear1172a-gpt_sync_mbr.patch of Package rear1172a.32115
diff -rp -U8 rear-1.17.2.SLE12-SP1-btrfs/usr/share/rear/layout/prepare/GNU/Linux/10_include_partition_code.sh rear-1.17.2.SLE12-SP1-btrfs.gpt_sync_mbr/usr/share/rear/layout/prepare/GNU/Linux/10_include_partition_code.sh --- rear-1.17.2.SLE12-SP1-btrfs/usr/share/rear/layout/prepare/GNU/Linux/10_include_partition_code.sh 2015-06-08 09:50:38.000000000 +0200 +++ rear-1.17.2.SLE12-SP1-btrfs.gpt_sync_mbr/usr/share/rear/layout/prepare/GNU/Linux/10_include_partition_code.sh 2015-11-03 14:51:36.000000000 +0100 @@ -100,33 +100,36 @@ create_partitions() { Log "No partitions on device $device." return 0 fi if [[ -z "$label" ]] ; then label="gpt" ### msdos label types are detected earlier. fi + # For 'gpt_sync_mbr' labeled disks create_partitions was called e.g. as + # create_partitions /dev/sda gpt_sync_mbr + # so that $label is not empty but still set to 'gpt_sync_mbr' here. cat >> "$LAYOUT_CODE" <<EOF LogPrint "Creating partitions for disk $device ($label)" my_udevsettle parted -s $device mklabel $label >&2 my_udevsettle EOF local block_size device_size sysfs_name if [[ -b $device ]] ; then sysfs_name=$(get_sysfs_name "$device") if [[ "$sysfs_name" ]] && [[ -d "/sys/block/$sysfs_name" ]] ; then block_size=$( get_block_size "$sysfs_name" ) device_size=$( get_disk_size "$sysfs_name" ) ### GPT disks need 33 LBA blocks at the end of the disk - if [[ "$label" == "gpt" ]] ; then + if [[ "$label" == "gpt" || "$label" == "gpt_sync_mbr" ]] ; then device_size=$(( device_size - 33*block_size )) if [[ "$MIGRATION_MODE" ]] ; then Log "Size reductions of GPT partitions probably needed." fi fi fi fi @@ -218,17 +221,17 @@ EOF ( echo "my_udevsettle" echo "parted -s $device set $number $flag on >&2" echo "my_udevsettle" ) >> $LAYOUT_CODE done # Explicitly name GPT partitions. - if [[ "$label" = "gpt" ]] && [[ "$name" != "rear-noname" ]] ; then + if [[ "$label" = "gpt" || "$label" == "gpt_sync_mbr" ]] && [[ "$name" != "rear-noname" ]] ; then ( echo "my_udevsettle" echo "parted -s $device name $number '\"$name\"' >&2" echo "my_udevsettle" ) >> $LAYOUT_CODE fi done < <(grep "^part $device " $LAYOUT_FILE) diff -rp -U8 rear-1.17.2.SLE12-SP1-btrfs/usr/share/rear/layout/save/GNU/Linux/20_partition_layout.sh rear-1.17.2.SLE12-SP1-btrfs.gpt_sync_mbr/usr/share/rear/layout/save/GNU/Linux/20_partition_layout.sh --- rear-1.17.2.SLE12-SP1-btrfs/usr/share/rear/layout/save/GNU/Linux/20_partition_layout.sh 2015-08-03 14:14:39.000000000 +0200 +++ rear-1.17.2.SLE12-SP1-btrfs.gpt_sync_mbr/usr/share/rear/layout/save/GNU/Linux/20_partition_layout.sh 2015-10-28 14:16:13.000000000 +0100 @@ -108,17 +108,17 @@ extract_partitions() { ### set to primary until flags are known declare type="primary" sed -i /^$partition_nr\ /s/$/\ primary/ $TMP_DIR/partitions fi done < $TMP_DIR/partitions-data fi ### find partition name for gpt disks. - if [[ "$disk_label" = "gpt" ]] ; then + if [[ "$disk_label" = "gpt" || "$disk_label" == "gpt_sync_mbr" ]] ; then if [[ "$FEATURE_PARTED_MACHINEREADABLE" ]] ; then while read partition_nr size start junk ; do type=$(grep "^$partition_nr:" $TMP_DIR/parted | cut -d ":" -f "6") if [[ -z "$type" ]] ; then type="rear-noname" fi type=$(echo "$type" | sed -e 's/ /0x20/g') # replace spaces with 0x20 in name field sed -i /^$partition_nr\ /s/$/\ $type/ $TMP_DIR/partitions @@ -251,15 +251,19 @@ Log "Saving disk partitions." for disk in /sys/block/* ; do blockd=${disk#/sys/block/} if [[ $blockd = hd* || $blockd = sd* || $blockd = cciss* || $blockd = vd* || $blockd = xvd* ]] ; then devname=$(get_device_name $disk) devsize=$(get_disk_size ${disk#/sys/block/}) disktype=$(parted -s $devname print | grep -E "Partition Table|Disk label" | cut -d ":" -f "2" | tr -d " ") + echo "# Disk $devname" + echo "# Format: disk <devname> <size(bytes)> <partition label type>" echo "disk $devname $devsize $disktype" + echo "# Partitions on $devname" + echo "# Format: part <device> <partition size(bytes)> <partition start(bytes)> <partition type|name> <flags> /dev/<partition>" extract_partitions "$devname" fi done ) >> $DISKLAYOUT_FILE
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor