Transfer Files From Mac External Hard Drive To PC - macos

Our wedding videographer gave us our wedding video (all 200GB of it) on an external hard drive formatted for Mac.
My wife and I each have PCs and we have 2 external hard drives formatted for PCs. We have a Mac that's half dead, but we could use it for group sharing or something, but it doesn't have any internal space to store the large files.
Is there any way to get the files from this external hard drive onto one of our PCs?

Not exactly a programming problem, but anyhow...
OSX uses HFS plus, not NTFS so a quick google search and you'll see that there are products available for what you want: -
http://www.pcadvisor.co.uk/how-to/windows/3369574/how-read-mac-os-hfs-drives-in-windows-for-free/

Related

DOS Boot Sees Long File Names with USB, and 8.3 FNs with Modular Bay

I use different Windows drive partitions for the OS (C:) and software
development projects (D:), so I can easily backup projects and data,
separately from OS restores.
I have an external FAT32 SATA disk that is setup for booting to DOS
level, so I can use Ghost to backup OS images, and restore them later.
The Ghost images were created in "split" mode, so there are multiple
images, that have long file names, like this:
DellWork-01.001
DellWork-01.002
DellWork-01.003
DellWork-01.GHO
When I use the external drive with a USB adapter, DOS/Ghost creates
and reads the long file names just fine.
However, when I use the same external FAT32 SATA drive with a
"Modular Bay" caddy plugged into the CD slot, DOS/Ghost sees short
file names, like this...
DELLWO~1.001
DELLWO~1.002
DELLWO~2.003 (the short names sometimes have a different number)
DELLWO~1.GHO
...making all the Ghost snapshots not usable. Unless of course, I
rename them all using the DOS 8.3 file naming convention. Example:
DELLWO01.001
DELLWO01.002
DELLWO01.003
DELLWO01.GHO
So the question is:
Why does DOS see 8.3 file names when using the FAT32 SATA drive
in the Modular Bay, yet DOS sees long file names when using the
same FAT32 SATA drive with a USB adapter?
Other info... At DOS Level:
Ghost sees the internal target NTFS drive with long file names.
If I put the external source FAT32 drive in the internal HD slot,
DOS also sees short file names.
Thanks all!
-Joe
Computer Specs:
Dell Latitude E6500
BIOS: A24
CPU : Intel Core 2 Duo 2.66 GHz
OS : XP Pro 2002, SP3
RAM : 3.48 GB
Ghost Version: 11
Target restore drive format: NTFS
External SATA drive format : FAT32
Extra information:
Thanks, I was thinking the same thing after I posted this. Not sure if DOS actually gets invoked, and I don't know what gives it long file name support.
Grub loads a boot menu, which seems to call Ghost directly (? not sure), or through a version of DOS I'm not aware of.
Anyway, I have since found that on a different E6500, Ghost sees a "1.1" drive (without a drive letter), which shows long file names. And, Ghost sees C:, which shows short file names (both references are to the same drive partition). This 1.1 drive is not visible on the original computer, just C: with short names.
So I compared the BIOS on the two computers, and found that if I set the SATA operation on the original computer to "AHCI" mode, Ghost then sees both 1.1 (long) and C: (short).
I also found a program on the boot disc called "DOSLFN.com", which loads a TSR and turns on LFN support.
Thanks, I was thinking the same thing after I posted this. Not sure if DOS actually gets invoked, and I don't know what gives it long file name support.
Grub loads a boot menu, which seems to call Ghost directly (? not sure), or through a version of DOS I'm not aware of.
Anyway, I have since found that on a different E6500, Ghost sees a "1.1" drive (without a drive letter), which shows long file names. And, Ghost sees C:, which shows short file names (both references are to the same drive partition). This 1.1 drive is not visible on the original computer, just C: with short names.
So I compared the BIOS on the two computers, and found that if I set the SATA operation on the original computer to "AHCI" mode, Ghost then sees both 1.1 (long) and C: (short).
I also found a program on the boot disc called "DOSLFN.com", which loads a TSR and turns on LFN support.

Copying file to multiple destinations

Is there a way to copy, at the same time, a single directory to multiple hard drives without the copy processes having each to read the source files? (Something like a Raid 1 perhaps)
In the specific, where I work we need to deploy (even multiple times a day) a folder containing around ~50gb of data from a PC (with Windows 7) to multiple others... using USB drives... (yup, usb drives, can't do anything about that). Often serially copying the files to each USB takes ages and it creates LONG dead times, especially for the last people to receive their copy.
Since the source PC in question has 8 USB 3.0 ports, would it be possible somehow to copy at the same time the source directory to USB drives in all 8 ports? (Of course without having 8 copy processes fighting for the limited read speed of the source hard drive... just readying each file and copying it to all destinations)
I tried searching for an answer but all I got were answers for linux or networked machines.
http://sourceforge.net/projects/n2ncopy/
I've searched it on google, i have never tryed the program

Script or program to read RAW data

I had a usb flash drive which had data and was using FAT32 file table, till yesterday!
I had been using it only in Windows. Now when I plugin the usb flash drive, Windows XP reports the file system as RAW and trying to access the drive asks to format the drive. I desperately need to get some data out from there (the backup is a few days old).
I've already used a dozen of programs under windows that claim to read RAW data, but none has worked yet. Is there any script, utility or program under FreeBSD or Windows that will aid me in getting that data back? If I plugin the usb drive to my FreeBSD box it only appears as /dev/da0, so I cannot mount it.
Apologies if I am not making sense, but is there any light at the end of the tunnel?
You can use dd to make a raw copy:
dd if=/device of=target_file
After that, you may want to google for "data carving", and use a program such as foremost.

Creating a program that runs on USB memory

I want to move my program to USB memory stick. It will run only on memory stick and would not be copied (written on C# and has nearly 3GB of database).
Where can I find a good source for that and/or how can I do that?
What you described can't reasonably be done. If a user can run the program, they can run it. It doesn't matter whether they loaded it from your USB stick or not. You can write it such that it assumes it's being run from the USB stick (with relative paths, per #Kos's comment) but that will in no way prevent people from copying it to their hard drives and running it. Since you don't know where a USB stick will be mounted ahead of time, you can't even use absolute paths.
Allow me to disagree with nmichaels, it is possible to check in C# if your running from removable storage or hard drive.
Check this thread: How to detect if any specific drive is a hard drive?
However, it would be too easy to reverse the thing and allow it to run on hard drives.
As an additional protection, you can read the USB drive serial and if it doesn't match, kill the program.
OR... you if want to be hardcore, use a specific USB drive model, and read the VID/PID, or the chip itself (check mass production tool).
In the end, if the program worths it, someone would still reverse it and break the protection scheme :)

How to tell which disk Windows Used to Boot

I'm need to find a method to programmatically determine which disk drive Windows is using to boot. In other words, I need a way from Windows to determine which drive the BIOS is using to boot the whole system.
Does Windows expose an interface to discover this? With how big the Windows API is, I'm hoping there is something buried in there that might do the trick.
Terry
p.s. Just reading the first sectors of the hard disk isn't reveling anything. On my dev box I have two hard disks, and when I look at the contents of the first couple of sectors on either of the hard disks I have a standard boiler plate MBR.
Edit to clarify a few things.
The way I want to identify the device is with a string which will identify a physical disk drive (as opposed to a logical disk drive). Physical disk drives are of the form "\\.\PHYSICALDRIVEx" where x is a number. On the other hand, a logical drive is identified by a string of the form, "\\.\x" where x is a drive letter.
Edit to discuss a few of the ideas that were thrown out.
Knowing which logical volume Windows used to boot doesn't help me here. Here is the reason. Assume that C: is using a mirrored RAID setup. Now, that means we have at least two physical drives. Now, I get the mapping from Logical Drive to Physical Drive and I discover that there are two physical drives used by that volume. Which one did Windows use to boot? Of course, this is assuming that the physical drive Windows used to boot is the same physical drive that contains the MBR.
Go into Control Panel
System and Security
Administrative Tools
Launch the System Configuration tool
If you have multiple copies of Windows installed, the one you are booted with will be named such as:
Windows 7 (F:\Windows)
Windows 7 (C:\Windows) : Current OS, Default OS
Unless C: is not the drive that windows booted from.Parse the %SystemRoot% variable, it contains the location of the windows folder (i.e. c:\windows).
You can use WMI to figure this out. The Win32_BootConfiguration class will tell you both the logical drive and the physical device from which Windows boots. Specifically, the Caption property will tell you which device you're booting from.
For example, in powershell, just type gwmi Win32_BootConfiguration to get your answer.
That depends on your definition of which disk drive Windows used to boot. I can think of 3 different answers on a standard BIOS system (who knows what an EFI system does):
The drive that contains the active MBR
The active partition, with NTLDR (the system partition)
The partition with Windows on it (the boot partition)
2 and 3 should be easy to find - I'm not so sure about 1. Though you can raw disk read to find an MBR, that doesn't mean it's the BIOS boot device this time or even next time (you could have multiple disks with MBRs).
You really can't even be sure that the PC was started from a hard drive - it's perfectly possible to boot Windows from a floppy. In that case, both 1 and 2 would technically be a floppy disk, though 3 would remain C:\Windows.
You might need to be a bit more specific in your requirements or goals.
You type diskpart, list disk and check disks for boot.
Ex:
dispart
list disk
select disk 0
detail disk
The disk with Boot volume is disk with windows installed:
There is no boot.ini on a machine with just Vista installed.
How do you want to identify the drive/partition: by the windows drive letter it is mapped to (eg. c:\, d:) or by how its hardware signature (which bus, etc).
For the simple case check out GetSystemDirectory
Try HKEY_LOCAL_MACHINE\SYSTEM\Setup\SystemPartition
You can try use simple command line. bcdedit is what you need, just run cmd as administrator and type bcdedit or bcdedit \v, this doesn't work on XP, but hope it is not an issue.
Anyway for XP you can take a look into boot.ini file.
a simpler way
search downloads in the start menu and click on downloads in the search results to see where it will take you the drive will be highlighted in the explorer.
On Windows 10.
Open "Computer Management"
Look for "Storage" in list "left top side of page"
select "Disk Management"
On section of page showing the list of disks and the partitions find the disk that has the partition assigned as drive C:
On that disk containing C: partition
Use the right mouse button to select the Square section containing The Disk Number, Type of drive and size in GB . When menu opens select the Properties.
A window will open showing what drive hardware was used.

Resources