Using Vice to emulate a Commodore 128 running CP/M works very well, but it isn't easy to get CP/M files directly onto and off a .D64/.D71 disk image. The easiest way to do this under Linux is to use ctools.
First you need to get the source files for ctools, for this we can use wget:
$ wget https://github.com/mist64/ctools/archive/master.zip
$ unzip master.zip
To build the executables:
$ cd ctools-master/src
$ make install
The executable files are now in ctools-master/bin. You will probably find it useful to copy them to somewhere like ~/bin to make them easier to access.
ctools is fairly straightforward to use and most of the time you will only use two of the programs: cformat and ctools.
Creating a Formatted CP/M Disk Image
cformat allows us to create CP/M disk images and I find it most useful to create double sided C128 disk images using the
To create a disk image called work.d71:
$ cformat -2 work.d71
Working With Files on the Image
Once we have a disk image we can transfer files, erase files, show the directory, etc using the ctools command.
To copy all the .txt files from the current directory onto the disk image, work.d71:
$ ctools work.d71 p *.txt
To display the files on the image:
$ ctools work.d71 d
To get all the .txt files from the disk image and put them in the current directory:
$ ctools work.d71 g "*.txt"
Video of ctools
ctools can be seen being used to transfer files to a .D71 disk image which is then read under an emulated C128 running CP/M on Vice below.