Richard Owlett <rowl...@cloud85.net> writes: > On 05/07/2018 07:01 AM, Thomas Schmitt wrote: >> Hi, >> >> Richard Owlett wrote: >>> richard@debian-jan13:~$ stat / | fgrep Device >>> Device: 80eh/2062d Inode: 2 Links: 22 >>> richard@debian-jan13:~$ stat /media | fgrep Device >>> Device: 80eh/2062d Inode: 131073 Links: 5 >> >> "/media" was not the directory to examine. >> You need to examine the directory which you gave as second argument to cp. >> In your initial post of this thread the cp command is quoted as >> >> cp -ax / "/media/richard/MISC >> backups/dev_sda14/" >> >> (Dunno whether the line break in that mail is significant.) > > No the _apparent_ line break was an artifact of email quoting process. > I can't rerun the diagnostic at the moment - hardware fully occupied > with testing my proposed workaround, which works so far but progress > resembles molasses running uphill on Pluto in winter ;/ > > >> >> >>> I gather that "cp" is then an inappropriate tool. >> >> That's not decided yet. >> >> If your cp target directory had a different device number, then cp option -x >> did not what it is supposed to do. >> >> But if your target directory was not the mount point of the USB disk and >> not inside the filesystem of the USB disk, then you made a mistake by >> giving that directory as target. > > Understood. > >> >> >>> "tar" is inappropriate for my preferences - I was attempting to use "cp" as >>> there would be multiple files &/or directories as input *and* output. >> >> You could use multiple tar commands. >> (I doubt that you can talk cp into addressing more than one target.) > > Communication confusion. > My goal was to copy root and its sub-directory to a directory on > another physical device. >
Are you using an LVM volume as your root? Then mounting a snapshot at some location and copying from there is a good option. This is what I do for my own backups. If you're not using LVM volumes, you could still use bind mounts for this. Run: # mkdir -p /mnt/source # mount --bind -o ro / /mnt/source (The -o ro option is to make the /mnt/source mount read only. I understand you intend to use this as a backup source, so read-only access should be sufficient. If you change it to not be read-only, be cautious when changing things in /mnt/source, because it is the same filesystem as /) Now /mnt/source is exactly the root filesystem. Other filesystems mounted (such as /dev or /proc) would only be present as empty directories in /mnt/source. After you're done copying, remove the bind by running: # umount /mnt/source This way, you do not have to figure out an exclude list or instruct tools to stop at filesystem boundaries. Make sure you do verify the files and directories you need are included. If some of the required files are not part of the root filesystem, then bind-mount them at the proper location under /mnt/source as well. For example, if your /home is a different filesystem, and you need it to be part of your copying: # mkdir -p /mnt/source # mount --bind -o ro / /mnt/source # mount --bind -o ro /home /mnt/source/home Then unmounting after you finish copying will be in the reverse order: # umount /mnt/source/home # umount /mnt/source -- regards, kushal