#!/bin/bash# --- Configuration ---
SOURCE_DEV="/dev/sr0"
MOUNT_POINT="/mnt/mac_legacy_cd"
DEST_DIR="$HOME/Desktop/mac_recovered_files"# 1. Ensure the system is readyecho"Checking for HFS support..."sudo modprobe hfs 2>/dev/null
sudo modprobe hfsplus 2>/dev/null
# Create directoriessudomkdir -p "$MOUNT_POINT"mkdir -p "$DEST_DIR"# 2. Attempt to mount# We try HFS first with MacRoman to UTF-8 translationecho"Attempting to mount $SOURCE_DEV..."sudo mount -t hfs -o ro,iocharset=utf8 "$SOURCE_DEV""$MOUNT_POINT" 2>/dev/null
if [ $? -ne 0 ]; thenecho"HFS mount failed, trying HFS+ (Mac OS Extended)..."sudo mount -t hfsplus -o ro "$SOURCE_DEV""$MOUNT_POINT"fi# 3. Verify mount and Copyif mountpoint -q "$MOUNT_POINT"; thenecho"Mount successful. Copying files to $DEST_DIR..."# -a: archive mode (preserves symlinks, permissions, times)# -v: verbose# -z: compress (not really needed for local, but good practice)# -P: show progress
rsync -avzP "$MOUNT_POINT/""$DEST_DIR/"echo"---"echo"Copy complete. Unmounting..."sudo umount "$MOUNT_POINT"echo"Done. You can find your files in $DEST_DIR"elseecho"Error: Could not mount the disc. Ensure the CD is inserted and $SOURCE_DEV is the correct path."exit 1
fi
#!/bin/bash # --- Configuration --- SOURCE_DEV="/dev/sr0" MOUNT_POINT="/mnt/mac_legacy_cd" DEST_DIR="$HOME/Desktop/mac_recovered_files" # 1. Ensure the system is ready echo "Checking for HFS support..." sudo modprobe hfs 2>/dev/null sudo modprobe hfsplus 2>/dev/null # Create directories sudo mkdir -p "$MOUNT_POINT" mkdir -p "$DEST_DIR" # 2. Attempt to mount # We try HFS first with MacRoman to UTF-8 translation echo "Attempting to mount $SOURCE_DEV..." sudo mount -t hfs -o ro,iocharset=utf8 "$SOURCE_DEV" "$MOUNT_POINT" 2>/dev/null if [ $? -ne 0 ]; then echo "HFS mount failed, trying HFS+ (Mac OS Extended)..." sudo mount -t hfsplus -o ro "$SOURCE_DEV" "$MOUNT_POINT" fi # 3. Verify mount and Copy if mountpoint -q "$MOUNT_POINT"; then echo "Mount successful. Copying files to $DEST_DIR..." # -a: archive mode (preserves symlinks, permissions, times) # -v: verbose # -z: compress (not really needed for local, but good practice) # -P: show progress rsync -avzP "$MOUNT_POINT/" "$DEST_DIR/" echo "---" echo "Copy complete. Unmounting..." sudo umount "$MOUNT_POINT" echo "Done. You can find your files in $DEST_DIR" else echo "Error: Could not mount the disc. Ensure the CD is inserted and $SOURCE_DEV is the correct path." exit 1 fi