The original documentation on this topic can be found [[http://www.minix3.org/doc/datxchng.html|on this html doc page on the site]]. ====== Exchanging files with USB sticks ====== USB mass storage support will be mainline soon for the Beaglebones. Not for the beagleboard or x86 targets for the foreseeable future. The next section describe preparing a stick to exchange files between Minix and Linux. In the first example, the stick is prepared on Minix. In the second example, the stick is prepared on Linux. "In both cases a new partition table is written onto it, thereby destroying all data previously on it." ===== From Minix to Linux ===== To prepare a USB stick on Minix to be read on Linux, we can use the Minix filesystem. We will show you in this example. Insert the USB stick in the Minix target and clear its partition table. Then start part. You will see something like this: Started driver /service/usb_storage with label usb_disk8 for device 8. New USB disk at /dev/usb_disk8. # dd if=/dev/zero of=/dev/usb_disk8 count=1 1+0 records in 1+0 records out # part /dev/usb_disk8 The part screen then looks like: # part /dev/usb_disk8 Size in kilobytes ----first---- --geolast-- ------sectors----- Device Cyl Head Sec Cyl Head Sec Base Size Kb /dev/usb_disk8 64 32 0 0 0 979 63 30 0 2007039 1003519 Num Sort Type 0* p0 81 MINIX 0 1 0 978 63 31 32 2004960 M:1002480 1 p1 00 None 0 0 0 0 0 -1 0 0 0 2 p2 00 None 0 0 0 0 0 -1 0 0 0 3 p3 00 None 0 0 0 0 0 -1 0 0 0 Type '+' or '-' to change, 'r' to read, '?' for more help, 'q' to exit Move the cursor to where the M: is written (I put it there just to specify the location) and press the 'm' key, for 'magic.' This will 'do the right thing' in most cases in part. In this case it will make a new partition for you in the desired slot with the MINIX type with the right offset and size to fill the whole stick. Then press 'w' to write the new table. You don't really need this partition for Minix, but other operating systems may be surprised to find just a single filesystem on a device without a partition table. The new device is addressed by /dev/usb_disk8p0. Then write a filesystem on it and create a file there: # mkfs.mfs /dev/usb_disk8p0 # mount /dev/usb_disk8p0 /mnt # echo hello world >/mnt/hello.txt # umount /dev/usb_disk8p0 Done! Now stick the stick into a Linux computer and mount it there: # mount /dev/sdb1 /mnt # cat /mnt/hello.txt hello world # umount /dev/sdb1 Success! ===== From Linux to Minix ===== This example will do the same thing but initialize the USB stick from Linux and use an ext2 filesystem. Again, first wipe the stick clean. We will use /dev/sdb as an example. "Please be CAREFUL to replace /dev/sdb in the following with the stick device name, as it will be destroyed" # dd if=/dev/zero of=/dev/sdb count=1 Partition the stick using gparted. # gparted /dev/sdb In parted, create a partition table by choosing the 'device' menu, 'create partition table,' select the 'msdos' partition type, then 'apply.' Then press '+' to create a partition. Select the ext2 filesystem type; ok, add it. Then click the checkmark in gparted to commit these operations. gparted will create the partition and format it with an ext2 filesystem. Mount it: # mount /dev/sdb1 /mnt # echo hello world >/mnt/hello.txt # umount /dev/sdb1 Done! Now, insert the stick in Minix. And mount the partition using ext2. You will see something like: Started driver /service/usb_storage with label usb_disk2 for device 2. New USB disk at /dev/usb_disk2. # mount /dev/usb_disk2p0 /mnt /dev/usb_disk2p0 is mounted on /mnt # ls -al /mnt total 56 drwxr-xr-x 3 root operator 4096 Aug 25 2014 . drwxr-xr-x 18 root operator 1408 Jan 1 00:22 .. -rw-r--r-- 1 root operator 12 Aug 25 2014 hello.txt drwx------ 2 root operator 16384 Aug 25 2014 lost+found # cat /mnt/hello.txt hello world There we go!