Transferencia de archivos "grandes" fuera de la máquina MS-DOS 5.0 (sin quitar HDD)

55

Como parte de algún tipo de registro legal, los abogados de negocios de mi padre han solicitado una copia de la base de datos de clientes de una computadora de trabajo. El problema central es que esta computadora de trabajo es una cosa de AOpen de alrededor de 1988, que ejecuta lo que parece ser una versión modificada de DOS 5.0.

Soy muy débil con el MS-DOS real y el hardware más antiguo en general, pero después de un poco de confusión finalmente encontré el archivo que necesitaba el abogado. El problema es que la "base de datos" del cliente (léase: archivo de texto delimitado por espacios) es de ~ 3 MB. Esto es demasiado grande para un disquete, y los datos están en un solo archivo, lo que, para mi conocimiento muy limitado del DOS real, me impediría dividirlo con los programas integrados en la computadora.

Al revisar la parte posterior de la computadora, noté 1 puerto serie incorporado, un puerto paralelo en una ranura de expansión y, de manera inexplicable, una NIC con un conector demasiado grande para ser RJ-11. No probé si en realidad era un RJ-45, ya que no tenía un cable de Ethernet a mano en ese momento. Sin embargo, los dos archivos de programa que habría utilizado (según mi investigación) para usar el serial no se encuentran en ninguna parte de la computadora. Además, no tengo la menor idea de lo que haría para aprovechar la NIC.

Además, para complicar los problemas, simplemente extraer el HDD debe relegarse a un último recurso, ya que la computadora (que es más antigua que yo) se usa para las operaciones comerciales diarias y tendría que desconectarse durante aproximadamente 1 día debido a la distancia entre la computadora y yo, que el "cliente" no quiere particularmente.

Entonces, el quid de mi pregunta es, con mi habilidad casi inexistente en DOS (accidentalmente corrompí una de las "bases de datos", y habría estado en mal estado si no hubiera hecho una copia de seguridad de antemano), ¿hay una manera simple? ¿Puedo aprovechar los recursos mencionados anteriormente (o algo más que no sé sobre DOS) para sacar este archivo de 3 megas de la computadora sin extraer el HDD?

Fuego Tarken
fuente
13
La solución más fácil sería tomar la última copia de seguridad completa. No me digas que este archivo de misión crítica no está siendo respaldado y vive en una máquina que pertenece a una casa de retiro.
emory
14
¡+1 por usar una dosetiqueta correctamente!
un CVn
13
tbh esto debería ser una llamada de atención. Si no pueden ahorrar la computadora por un corto tiempo porque está en uso diario, ¿qué van a hacer cuando se caiga y pierda todos sus datos? Cuanto más tiempo lo dejen, más probable es que esto ocurra. Aproveche la oportunidad para impulsarlos a actualizar y hacer copias de seguridad periódicas (que luego se pueden copiar y enviar fácilmente al abogado)
JamesRyan
3
Me siento mal por el pobre tipo que usa un dosbox de 1980 como su estación de trabajo diaria
crasic
2
"La computadora (que es más antigua que yo) se usa para las operaciones comerciales diarias": esta frase me hizo temblar.
Ese tipo brasileño

Respuestas:

53

Intenta usar PKZip. Es una antigua utilidad de DOS que proporcionó algunas de las primeras capacidades de archivos zip. Debería poder descargarlo en http://wiki.oldos.org/Downloads/MSDOS . Si la base de datos es un archivo de texto, PKZip debería permitirle comprimir lo suficiente como para acceder a un disquete o, de lo contrario, debería permitir la expansión de varios discos. En ese punto, su problema principal es pasar del disquete a una computadora más moderna. No recuerdo la sintaxis de PKZip, pero sí recuerdo que tiene una muy buena ayuda incorporada para mostrarle exactamente cómo comprimir y descomprimir archivos. Recomiendo la versión 2.04g de las descargas, ya que fue considerada universalmente como la mejor versión durante muchos años.

Tom A
fuente
12
Incluso si no puede comprimirlo lo suficiente como para caber en un solo disquete, debería ser capaz de crear un conjunto de archivos zip de volumen distribuido.
daxlerod
2
si su texto puro, se debe comprimir bastante bien
Keltari
24
@Tarkenfire: ¡Todo en DOS no es texto sin formato! ¿Cómo existirían los programas, sin mencionar prácticamente todos los formatos de archivo binario?
Karan
1
Sacar los datos del disquete no debería ser demasiado difícil; Las unidades de disquete USB son bastante baratas.
Aaron Miller
55
Solo para actualizar, pkzip funcionó de maravilla; se comprime un archivo ~ 3000kb a 300kb alrededor, probablemente porque era un archivo de texto delimitado el espacio con 2700KB de espacio en blanco ...
Tarkenfire
17

¿La computadora tiene instalado QBasic ? Si es así, es posible que pueda escribir un divisor de archivos simple en él, algo como esto:

OPEN "database.dat" FOR BINARY AS #1

LET disk% = 1
LET todo& = LOF(1)

DO UNTIL todo& <= 0
    PRINT "Insert disk"; disk%; "into drive A: and press enter.";
    LINE INPUT ""; foo$

    LET file$ = "A:\chunk" + LTRIM$(RTRIM$(STR$(disk%))) + ".dat"
    OPEN file$ FOR BINARY AS #2

    LET done& = 0
    DO UNTIL done& >= 1300000 OR todo& <= 0
        LET buf$ = SPACE$(4096)
        IF todo& < LEN(buf$) THEN LET buf$ = SPACE$(todo&)
        GET #1, , buf$
        PUT #2, , buf$
        LET done& = done& + LEN(buf$)
        LET todo& = todo& - LEN(buf$)
    LOOP

    CLOSE #2
    LET disk% = disk% + 1
    BEEP
LOOP
CLOSE #1

Esto dividirá su base de datos en fragmentos de 1.3 MB, que deberían caber cómodamente en un disquete de 1.44 MB incluso después de tener en cuenta la sobrecarga de FAT.

Editar: Aquí hay una versión actualizada que usa E / S binaria, que se ejecuta mucho más rápido, no tiene problemas con los caracteres Ctrl-Z y maneja correctamente los archivos de entrada cuyo tamaño no es un múltiplo del tamaño del búfer. Lo probé en DOSBox y dividió correctamente un archivo de 3 MB de bytes aleatorios en fragmentos.

Ilmari Karonen
fuente
IIRC, los trozos se pueden volver a montar utilizando el indicador binario y la copia dos, por ejemplo copy /b foo_1.chunk + /b foo_2.chunk {...}. No puedo recordar si la versión Dos 5 de la copia tiene o no la bandera binaria ...
horatio
1
Además, si usted open for binaryy lee / escribe usando gety put, no tiene "problemas con los personajes mágicos"
horatio
@horatio: Gracias por el consejo. También resulta ser mucho más rápido (aunque sospecho que la diferencia puede ser insignificante al escribir en disquetes reales).
Ilmari Karonen
10

Son solo 3 megas, por lo que usar un PKZIP con expansión sería la solución más fácil, como han dicho otros. sin embargo

Si tuviera un problema de este tipo y la unidad de disquete NO funcionara, usar el puerto serie sería bastante fácil.

Para usar un puerto serie, necesita un programa de terminal DOS, y lo ejecutaría y luego usaría un protocolo como ZMODEM, para transferir el archivo a 115 kbps, lo que debería demorar menos de 5 minutos a 115200 kbps.

En su computadora portátil o en cualquier otra PC moderna, necesitaría un adaptador USB a serie, un cable de módem nulo y un programa de terminal que admita el mismo protocolo de transferencia de archivos. Estos cables deberían costarle alrededor de $ 5 cada uno en la mayoría de las tiendas de computadoras decentes.

El mejor programa de terminal de MS-DOS que he usado se llamaba Telix versión 3.12.

Warren P
fuente
1
Telix fue un programa muy bueno, y también recuerdo haber usado Terminate. ¿Me pregunto si alguna vez usaste eso? A veces extraño a mis BBSes y módems USR favoritos. ¡Recuerda estar obsesionado con crear arte ASCII animado alguna vez!
Karan
8

PKZIP admite la expansión de varios disquetes, y Lenovo tiene una aplicación compatible con DOS llamada CHOPPER que también logrará esto.

http://support.lenovo.com/en_US/research/hints-or-tips/detail.page?LegacyDocID=DSHY-44QSCB

El conmutador pkzip para la expansión del disco (desde documentos):

-&[f|l|u Span disks [Format|format Low density|Unconditional format| ul|w|v] Unconditional Low density|Wipe disk|enable dos Verify| [s[drive]] Back up entire disk w/ subdirs (-rp) [drive to back up]]

JohnP
fuente
3

¿El abogado especificó explícitamente que la base de datos se proporcione en formato electrónico?
De lo contrario, y si este sistema de misión crítica tiene una impresora funcional (matriz de puntos) conectada, puede imprimir el archivo de texto usando el comando de impresión de DOS .
Por ejemplo:

imprimir c: \ file.txt / c / d: lpt1

Suponiendo una velocidad de la impresora de 100 lpm (~ 2.5 ppm) y 750 páginas de texto (cantidad estimada en un archivo de texto de 3Mb de acuerdo con esta calculadora ), debería poder producir una copia completa en aproximadamente 5 horas.

gm2
fuente
2

¿Quizás podría dividir el archivo de texto manualmente utilizando herramientas ya presentes en DOS y recombinarlas en la computadora de destino? Como todo es ASCII, debería ser mucho más fácil hacer esto que intentar dividir un archivo binario.

Nicholas Hill
fuente
3
Intenté con los dos editores que pude encontrar en el sistema, pero ambos arrojaron errores de "falta de memoria", supongo porque intentaron cargar el archivo de 3 MB en la memoria al mismo tiempo.
Tarkenfire
No usaría un editor, pero creo que algunos argumentos para XCOPY, MORE o tal vez incluso TYPE podrían permitirle dividir crudamente el archivo. (por supuesto, PKZIP es mucho más fácil y casi seguro que funciona, pero esto podría ser un intento divertido)
Javier
2

Antes de los días alardeados de chips USB ubicuos y una NIC en cada computadora, recuerdo conectar con cariño dos computadoras con cables seriales y paralelos para transferencias de datos a gran escala.

Tuve que buscar en Google el método más conveniente en la era actual, pero se parece un poco a lo que recuerdo.

File Maven es una utilidad de transferencia de archivos que le permite realizar transferencias a través de cable serial o paralelo. Probablemente ya no tenga nada más con un puerto serie, por lo que un adaptador de serie a usb le dará una conexión a la tecnología moderna.

Este cable puede necesitar un adaptador de cambio de sexo, no recuerdo qué parte tenía una PC.

Quiero levantarme y dar un gran aplauso al fabricante responsable del disco duro. El HDD de 25 años sigue funcionando. ¿Te imaginas que las unidades SATA de hoy sigan funcionando en 2038?

Árni St. Sigurðsson
fuente
1

Siempre puede encontrar una unidad Zip / Jaz de 25 pines en craigslist o ebay. Sin embargo, hay mejores métodos que este. :)

Keltari
fuente
1

¿Qué tal tratar de encontrar una versión anterior de Laplink, con el cliente como una nueva versión que se ejecuta en la PC en la que desea esos datos? Software disponible aquí: http://www.briggsoft.com/fmdos.htm

Cavemanharris
fuente
Las PC modernas ni siquiera tendrían un puerto serie, y mucho menos un puerto paralelo, pero supongo que con un adaptador USB a serie, laplink sería una buena idea. Una manera mucho más fácil de transferir el contenido de un disco duro completo o el contenido de una carpeta completa, que la idea de Telix + ZMODEM, pero ¿es este enfoque técnicamente LEGAL? "LapLink" la marca todavía existe, y tal vez no les gusta que la gente descargue sus cosas de DOS.
Warren P