_____________________________________ FREEBSD-UPDATE AND CORRUPT METADATA Nicolas Herry _____________________________________ 2017/11/05 1 freebsd-update and corrupt metadata ===================================== I was updating my laptop from FreeBSD 11.0 to FreeBSD 11.1 today, something I should have done already sometime ago, but let's forget about that. While doing so, doing the usual `freebsd-update -r 11.1-RELEASE upgrade' would give the following: ,---- | root@priest:/root # freebsd-update -r 11.1-RELEASE upgrade | Looking up update.FreeBSD.org mirrors... 3 mirrors found. | Fetching metadata signature for 11.0-RELEASE from update5.freebsd.org... done. | Fetching metadata index... done. | Fetching 1 metadata files... gunzip: (stdin): unexpected end of file metadata is corrupt. `---- Usually, this means that something went wrong while downloading the file, and trying again is likely to solve the issue. All you have to do then is remove the faulty metadata file first, and type the same command: ,---- | root@priest:/root # rm /var/db/freebsd-update/65ce95e4589bd0481b57091a9e476361c713dbb67a77136318cef1b7489c6b7a.gz | root@priest:/root # freebsd-update -r 11.1-RELEASE upgrade `---- This solves the issue 99% of the time. However, in my case, it did not, and I kept getting the same error again and again. What this is means is that the distant file is at fault, and that `freebsd-update' is downloading this very file each and every time. All it takes in this case is to instruct the command to select a different mirror. First, look into the file `serverlist_tried' which server (or mirror) you have been working with: ,---- | root@priest:/root # cat /var/db/freebsd-update/serverlist_tried | 1 50 update5.freebsd.org `---- Next, open `serverlist' to see what the alternatives are: ,---- | root@priest:/root # cat /var/db/freebsd-update/serverlist | 1 35 update4.freebsd.org | 1 40 update6.freebsd.org | 1 50 update5.freebsd.org `---- Now, remove the faulty file, and ask `freebsd-update' to use another mirror: ,---- | root@priest:/root # rm /var/db/freebsd-update/65ce95e4589bd0481b57091a9e476361c713dbb67a77136318cef1b7489c6b7a.gz | root@priest:/root # freebsd-update -s update4.freebsd.org -r 11.1-RELEASE upgrade `---- The upgrade should go flawlessly from then on.