Недавно я установил VMWare Workstation для Linux на мою машину с Ubuntu, и в процессе установки я столкнулся с особой проблемой. Сам установщик - это своего рода архив, который связан с make-файлом. Этот make-файл устанавливает все необходимые компоненты, и, судя по логам, компилирует некоторые модули и проверяет CRC скопированных файлов.

Этот установщик должен быть запущен примерно так:

sudo sh ./VMware-Workstation-Full-9.0.1-894247.x86_64.bundle

Но я сделал это с другой стороны в первый раз:

chmod uga+x VMware-Workstation-Full-9.0.1-894247.x86_64.bundle
sudo ./VMware-Workstation-Full-9.0.1-894247.x86_64.bundle

И после этого установка не удалась, со следующими сообщениями:

[2012-12-06 15:07:18,348] [vmware-tools-windows 9.2.2] Failed to copy file from windows.iso to /usr/lib/vmware/isoimages/windows.iso
Traceback (most recent call last):
  File "/tmp/vmis.KNkJ7S/install/vmware-installer/vmis/core/component.py", line 193, in doit
    data = fileobj.read(10485760) # Read 10 MB at once.  Not too large to fill
  File "/tmp/vmis.KNkJ7S/install/vmware-installer/python/lib/gzip.py", line 227, in read
    self._read(readsize)
  File "/tmp/vmis.KNkJ7S/install/vmware-installer/python/lib/gzip.py", line 292, in _read
    self._read_eof()
  File "/tmp/vmis.KNkJ7S/install/vmware-installer/python/lib/gzip.py", line 311, in _read_eof
    raise IOError, "CRC check failed"
IOError: CRC check failed
[2012-12-06 15:07:18,365] [vmware-tools-windows 9.2.2] Installation failed, rolling back installation.

Я думал, что это может быть потому, что загруженный файл был поврежден, потому что его контрольные суммы с использованием MD5 и SHA1 отличались от тех, которые указаны на сайте загрузки. После удаления файла, его повторной загрузки и запуска так, как он должен быть запущен, все прошло нормально.

Так что мой вопрос здесь просто из любопытства. Может быть, установка флага исполняемого файла привела к сбою проверки CRC?

1 ответ1

1

Нет, когда вы устанавливаете флаг исполняемого файла, изменяется только файловый индекс, в котором хранится эта информация.

Содержимое файла остается неизменным, как и контрольная сумма.

Вы говорите, что контрольная сумма MD5/SHA1 вашего файла и на сайте отличалась, поэтому да, загруженный файл был поврежден. Файл, вероятно, был загружен только частично, что объясняет, почему он изначально работал, но зависал при распаковке.

(Вы можете проверить это сами с помощью простого эксперимента:

# ls -l /bin/gawk
-rwxr-xr-x 1 root root 267648 Aug 19  2011 /bin/gawk
# sha1sum /bin/gawk
d8fcc0aae41635dedb449523989af47f290fe22a  /bin/gawk

Режим 755, контрольная сумма d8fcc0aae41635dedb449523989af47f290fe22a .

# stat /bin/gawk
(...)
Change: 2012-11-07 17:24:49.000000000 +0100

stat Change показывает, что индекс был последний раз изменен месяц назад.

Теперь я меняю режим файла:

# date
Thu Dec  6 16:07:48 CET 2012
# chmod 644 /bin/gawk
# sha1sum /bin/gawk
d8fcc0aae41635dedb449523989af47f290fe22a  /bin/gawk
# stat /bin/gawk
(...)
Change: 2012-12-06 16:07:48.000000000 +0100

Индекс изменился (сравните с выводом date ), но контрольная сумма не изменилась.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .