Cómo copiar un directorio grande en un disco duro externo Linux


1

He formateado un disco duro externo de 3TB como ext4 usando fdisk (en realidad gnu fdisk), lo monté en / media / external y estoy tratando de copiar todo mi directorio de inicio.

Mi primer intento pensé que fue exitoso, pero después de un tiempo cuando el proceso se detuvo, no pude ingresar al directorio de inicio copiado. cd parecía fallar:

sudo: cd: command not found

Entonces pensé que podría haber algún límite para cp y luego intenté nuevamente usar tar.

cd /from-stuff/
tar cf – . | (cd /to-stuff; tar xvf -)

Medí el tamaño de mi directorio de inicio en ~ 100G. Cuando en mi directorio de inicio, ejecuté:

du -ch | grep total

Lo he montado como:

sudo mount -t ext4 /dev/sdd1 /media/external

Tenga en cuenta que no pude montar lo /dev/sddque aparece sudo fdisk -lmientras que / dev / sdd1 no.

Al formatear hice la configuración más predeterminada, 1 partición, por defecto todo lo demás. Confirmé ese formateo correctamente al no tener ningún 'error de tabla de particiones no válido'. Soy nuevo en esto, así que tengan paciencia. ¿Puedo haber elegido accidentalmente GUID? pero no sé cómo verificar eso o volver a formatearlo a lo que sea necesario.

¿Hay algo deslumbrante que hice incorrectamente? ¿Alguien puede ofrecer una secuencia fdisk para asegurarse de que todo sea una partición básica formateada como ext4?

Aquí está mi documentación sobre lo que hice para formatear. Por favor aclare / aumente si puede. Puede haber habido un intento fallido antes de esto:

sudo fdisk /dev/sdb # this will pull up an interactive menu
n       # create a new partition
p       # create a primary partition
[enter] # use default value of 1 for the partition number
[enter] # use default value of 256 for first sector
[enter] # use default value for last sector
w       # write these settings and leave the interactive menu

# make the file system
sudo mkfs.ext4 /dev/sdb1

sudo cdNo tiene ningún sentido. ¿Cuál sería el punto de un proceso que cambió su propio directorio de trabajo actual y luego terminó?
David Schwartz el

Respuestas:


0
  • acerca de sudo: cd: command not found

    Ese es normal. cd es un shell incorporado. Esto no significa que el directorio de destino no exista. Pruebe "su - root" si necesita ser root para ir a ese directorio, y luego cd al destino.

  • sobre el hecho / dev / sdd no se puede montar

    / dev / sdd es un disco SD completo (incluida su tabla partitino maestra, todo, incluso el espacio no particionado). No es una partición. / dev / sdd1 es su primera partición. Y cuidado: muestra que desea montar / dev / sdd1, pero muestra un fdisk en / dev / sdb1 (¡otro disco! / Dev / sdb es diferente de / dev / sdd)

  • si esa nueva unidad va a hacer copias de seguridad: debería, en lugar de usar tar | (cd dest; tar), que copia todo cada vez (y no eliminará los archivos / directorios de destino si se eliminan en la fuente), debe mirar el comando rsync. Especialmente a nivel local (pero también al copiar en una ubicación remota, ya que rsync solo copiará las partes modificadas de cada archivo modificado, no la totalidad del archivo). Pero cuidado con su uso: rsync puede ser complicado al principio. No use la opción "--delete" antes de leer mucho al respecto, podría borrar los archivos de origen o de destino si no tienen coincidencia en el otro lado ... vea las diferentes formas de especificar los directorios de origen / destino, a veces agregará el "/" final, a veces no, según cómo desee que actúe rsync.


1
Gracias a todos por las respuestas. No puedo votar a ninguno de ellos porque todavía no tengo reputación
tarabyte

gracias por las advertencias Para aclarar la publicación original, estaban en diferentes computadoras. formateé en una netbook y monté en otra torre para que / dev / sdd vs. / dev / sdb estuviera a salvo
tarabyte

0

Supongo que su problema es que fdisk no hace discos grandes. Ha sido reemplazado por parted.

Es similar a fdisk, recién actualizado para la tecnología más nueva. Asumiendo que el disco es / dev / sdb (verifique con sudo parted -l):

  1. sudo parted /dev/sdb
  2. mklabel (tipo gpt)
  3. mkpart (las respuestas predeterminadas hacen una partición de tamaño máximo)
  4. q salir separado
  5. sudo mkfs.ext4 /dev/sdb1 para hacer el sistema de archivos.

Después de eso debería ser solo una cuestión de sudo mount /dev/sdb1 /media/external. Sería una buena idea asegurarse de poseer primero el directorio consudo chown tarabyte.tarabyte /media/external

Usualmente uso rsyncpara copias grandes, incluso locales. Tiene mejor salida y se reanuda fácilmente si hay interrupciones.

rsync -avh --progress /from-stuff /to-stuff

Ver man rsyncpara más información.


Actualicé a gnu-fdisk para manejar el límite de 2 TB, supongo que tenía fdisk. Sin embargo, intentaré
separarme

presionar enter cuando se le solicite el inicio predeterminado no funciona. ¿Cómo se supone que debo saber qué número debo colocar aquí?
tarabyte

Oh si. Usualmente uso 1, por 1 megabyte. Lo alinea correctamente. Lo siento por eso.
ssmy
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.