Почему мои тождественно подготовленные карты с интерфейсом USB отличаются по одному байту?

Это действительно зависит от malloc реализация. Это может предварительно выделить больший непрерывный блок памяти и затем сделать некоторое волшебство сверху его - например, выделить меньшие блоки памяти от различных частей большого блока в зависимости от требуемых размеров. Такой больший блок может, конечно, быть выделен через mmap.

Можно проверить, например, источник jemalloc, чтобы понять, как это может работать.

15
27.12.2014, 14:35
2 ответа

Я боролся с той же проблемой. Для работы поиска NetBIOS отредактируйте строку /etc/nsswitch.conf и добавьте «wins» в строку «hosts:».

Пример:

hosts: files dns wins

Затем отредактируйте файл /etc/samba/smb.conf и добавьте/отредактируйте строку wins server = , чтобы добавить WINS-сервер. К вашему сведению, Samba не будет работать как сервер и клиент, поэтому, если у вас есть wins support = yes , вам потребуется отключить его или настроить для работы с OpenConnect.

-121--61388-

Я поместил ваши примерные данные в файл ./file как

cat >file <<\IN
# all of your example
IN 

Затем я сделал следующее:

sed -n 's|\([^ ]*\) *{.*|/\1 {/,/}/w file.\1.par|p' file | 
sed -e 's/  */ /g;s/^ //;s/ $//;/./!d;/{/!y/ /\n/' -f - file

Который использует один процесс sed для очистки данных в инфиле и редактирования его instream в работоспособный сценарий sed для второго процесса sed

Сценарий, который выполняется, выглядит как...

/1_01 {/,/}/w file.1_01.par
/1_02 {/,/}/w file.1_02.par
/1_03 {/,/}/w file.1_03.par
/1_04 {/,/}/w file.1_04.par

... но он выполняется только после второго sed для каждой строки в файле ...

... -e 's/  */ /g;s/^ //;s/ $//;/./!d;/{/!y/ /\n/' ...

... который сначала сжимает любую последовательность мест в один космос, удаляет ведущий или конечный космос, если они остаются, удаляет пустые строки полностью из вывода и в последний раз преобразует все места в символ \n ewline для каждой строки, который не соответствует {.

Поэтому для каждого номера строки, который соответствует (заголовку раздела) * {. * второй sed w , обнуляет его и все последующие строки до следующего } включительно при вводе в файл . (заголовок раздела) , в то время как исходный инфиль остается неизменным.

После бега я сделал это...

cat <./file.1_01.par

... и...

1_01 { ; quite good spirals 
reset=2000
type=mandel
passes=1
corners=-0.6014129278/-0.5990935452/0.427747516/0.429487053
params=0/0
float=y
maxiter=1000
inside=0
outside=15
distest=1/10/320/200
}

Чтобы запустить его, просто скопируйте/вставьте эти два ... строки в терминале и замените имя файла на соответствующее.

У меня также был переход по ссылке в вашем вопросе...

sed -n 's|.\([^ ]*\) {.*|/\1 {/,/^}$/w \1.par|p' <<-IN |\ 
sed -e 's/.//;/{/!y/ /\n/' -f - all.par
    $(curl -s 'http://www.calresco.org/pic3/calres3.par' |
    tr -s '\r\n ' '\n  ' |tee all.par)
IN

Которые разделяют все функции .par на свои собственные файлы и обрабатывают линейные окончания DOS:

ls -C
a46.par       bugeyed.par  flocks.par    iconw2b.par   manchaos.par  swirl5.par
aciddrop.par  burr.par     galaxy.par    juliland.par  mandelzm.par  trific.par
all.par       complex.par  highrise.par  lace.par      redgiant.par
angfish.par   eyeeye.par   iconvolc.par  lavaflow.par  scythe.par

Они все названы для имени функции.

cat galaxy.par

galaxy {;Chris Lucas
reset=1950
type=julia
center-mag=+0.03023290053994965/+0.26628255550711930/42.69126/1/67.5
params=-0.1582146627566066/0.6550294654497986
float=y
maxiter=30000
colors=000000GFF<28>x11z00z10<29>zx0zz0zz1<29>zzxzzzzzz<61>zV1zU0zU0zT0<\
28>z10z00z00y00<30>c00b11a11`22_22<25>FFF
}
-121--83247-

Пока я не знаю, почему один сбой (плохая палка? ), обычным подозрением на различия в «идентично» созданных файловых системах, будь то ISO9660 или иначе, являются метки времени , например, для времени создания. Или случайная метка файловой системы по умолчанию . Если вам нужны одинаковые данные на обоих, dd хорошее изображение на другой палке и проверьте их контрольные суммы (md5sum или другие; любой сделает).

О, и предположение из названия вашего вопроса не держится. Различается не только один байт. cmp сообщает только о том, что сначала отличается, а затем выходит.

30
27.01.2020, 19:49

По всей вероятности, они не отличаются только одним байтом. Это только первый разный байт. Беги CMP -L dev / sdb / dev / sdc , чтобы переписать все различия.

Первые 512 байтов палки - это загрузочный сектор . Offset 441 (440 Если вы начнете нумерация в 0) - это местоположение подписи , которая должна уникально идентифицировать диск (для преимуществ Windows - я не помню, как видеть уход в Linux). Ожидается, что они будут отличаться. Это файлы на палочке, которые должны быть идентичными, а не на дисковые метки (или файлы »метки времени, кстати, кстати).

Убедитесь, что палка, которая вылетает, имеет правильный файл содержимого. Это может быть физически повреждено.

22
27.01.2020, 19:49

Теги

Похожие вопросы