Try the attached patch for amrestore and amfetchdump.
Jean-Louis
Jean-Francois Malouin wrote:
* Jean-Louis Martineau <martineau AT zmanda DOT com> [20070704 08:04]:
Jean-Francois Malouin wrote:
Following on my previous post: here's what I get
/opt/amanda/amanda2/sbin/amfetchdump -p -l stk_80-conf2 yorick
/data/ipl/ipl10
20070630 -o stk_80-conf2 | /usr/freeware/bin/tar -xvGpf -
"(null)", line 0: Must specify a value for stk_80-conf2.
You can remove the '-o stk_80-conf2' argument.
amfetchdump: time 2425.149: could not fsf /hw/tape/tps22d2nrnsv: No space
left on device
I don't understand the 'No space left on device' error.
Can you put the stk_40-conf2-000017 tape in the drive and run:
mt -f /hw/tape/tps22d2nrnsv rewind
amrestore /hw/tape/tps22d2nrnsv nohost
here's what I got:
amrestore: 1: skipping yorick._data_mril_mril5_bojana_images.20070630.0
amrestore: 2: skipping yorick._.20070630.1
amrestore: 3: skipping yorick._data_noel_noel1.20070630.0
amrestore: 4: skipping yorick.noel1_neda_03.20070630.1
amrestore: 5: skipping yorick._data_mril_mril5_tardif.20070630.2
amrestore: 6: skipping yorick._data_mril_mril5_leili.20070630.0
amrestore: 7: skipping yorick._data_mril_mril5_vivian.20070630.0
amrestore: 8: skipping yorick._data_mril_mril5_mferre.20070630.0
amrestore: 9: skipping yorick._data_mril_mril5_ives.20070630.0
amrestore: 10: skipping yorick._data_mril_mril5_jcampbel.20070630.1
amrestore: 11: skipping yorick._data_mril_mril5_vanela.20070630.0
amrestore: 12: skipping
yorick._data_mril_mril5_mgriffin_Experimental_data.20070630.1
amrestore: 13: skipping yorick._data_mril_mril5_bojana.20070630.1
amrestore: 14: skipping yorick._data_ipl_ipl10.20070630.0.0000001
amrestore: 15: skipping yorick._data_ipl_ipl10.20070630.0.0000002
amrestore: 16: skipping yorick._data_ipl_ipl10.20070630.0.0000003
amrestore: could not fsf /hw/tape/tps23d3nrnsv: No space left on device
jf
diff -u -r --show-c-function --new-file
--exclude-from=/home/martinea/src.orig/amanda.diff
--ignore-matching-lines='$Id:' amanda-2.5.2p1/restore-src/amrestore.c
amanda-2.5.2p1.restore/restore-src/amrestore.c
--- amanda-2.5.2p1/restore-src/amrestore.c 2007-05-04 07:39:06.000000000
-0400
+++ amanda-2.5.2p1.restore/restore-src/amrestore.c 2007-07-05
08:57:30.000000000 -0400
@@ -400,21 +400,6 @@ main(
if(isafile) {
close(tapedev);
} else {
- /*
- * See the notes above about advancing to the next file.
- */
- if(read_result == 0) {
- tapefd_close(tapedev);
- if((tapedev = tape_open(tapename, 0)) < 0) {
- error("could not open %s: %s", tapename, strerror(errno));
- /*NOTREACHED*/
- }
- } else {
- if(tapefd_fsf(tapedev, (off_t)1) < 0) {
- error("could not fsf %s: %s", tapename, strerror(errno));
- /*NOTREACHED*/
- }
- }
tapefd_close(tapedev);
}
diff -u -r --show-c-function --new-file
--exclude-from=/home/martinea/src.orig/amanda.diff
--ignore-matching-lines='$Id:' amanda-2.5.2p1/restore-src/restore.c
amanda-2.5.2p1.restore/restore-src/restore.c
--- amanda-2.5.2p1/restore-src/restore.c 2007-06-06 19:19:20.000000000
-0400
+++ amanda-2.5.2p1.restore/restore-src/restore.c 2007-07-05
09:00:37.000000000 -0400
@@ -1600,29 +1600,11 @@ search_a_tape(
}
} /* while we keep seeing headers */
- if (!isafile) {
- if (file->type == F_EMPTY) {
- aclose(tapefd);
- if((tapefd = tape_open(cur_tapedev, 0)) < 0) {
- send_message(prompt_out, flags, their_features,
- "could not open %s: %s",
- cur_tapedev, strerror(errno));
- error("could not open %s: %s",
- cur_tapedev, strerror(errno));
- /*NOTREACHED*/
- }
- } else {
- if (tapefd_fsf(tapefd, (off_t)1) < 0) {
- send_message(prompt_out, flags, their_features,
- "could not fsf %s: %s",
- cur_tapedev, strerror(errno));;
- error("could not fsf %s: %s",
- cur_tapedev, strerror(errno));
- /*NOTREACHED*/
- }
- }
+ if (isafile) {
+ close(tapefd);
+ } else {
+ tapefd_close(tapefd);
}
- tapefd_close(tapefd);
/* spit out our accumulated list of dumps, if we're inventorying */
if (logstream) {
|