Summary: | неправильно отмонтируются сменные носители при init 6 | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Yura Kalinichenko <yuk> | ||||
Component: | service | Assignee: | placeholder <placeholder> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P2 | CC: | dottedmag, evg, glebfm, ldv, legion, placeholder, prividen, vvk | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Yura Kalinichenko
2008-09-13 13:13:55 MSD
Казалось бы, при чём тут hal-mount-subfs. Пользователь радостно делает метку диска с пробелом, ядро радостно рисует в /proc/mounts вместо пробела \040, функция UnmountFilesystems из /etc/init.d/functions радостно не озабачивается заменять \040 взад на пробел, а umount совершенно радостно обламывается найти точку монтирования с \040 вместо пробела. А виноват в этой радостной вакханалии, конечно же, hal-mount-subfs. Хотите, оторву возможность делать пробелы в маунтпойнтах? Нервы надо лечить. [root@hsh40 /]# rpm -qf /etc/init.d/functions service-0.5.14-alt1 Вот туда и перевешаем, раз уж майнтайнер не умеет пользоваться кнопкой "переназначить на другой компонент". (In reply to comment #1) > Казалось бы, при чём тут hal-mount-subfs. > Пользователь радостно делает метку диска с пробелом, ядро радостно рисует в > /proc/mounts вместо пробела \040, функция UnmountFilesystems из /etc/init.d/functions радостно не > озабачивается заменять \040 взад на пробел, а umount совершенно радостно > обламывается найти точку монтирования с \040 вместо пробела. > А виноват в этой радостной вакханалии, конечно же, hal-mount-subfs. Ну на чем увидел - на то и повесил, глубоко не копал. Метку сам не делал - такой флешку наградил производитель. > > Хотите, оторву возможность делать пробелы в маунтпойнтах? > Возможно, при конструировании маунтпоинта имеет смысл заменять пробелы на '_' ? (In reply to comment #3) > > Хотите, оторву возможность делать пробелы в маунтпойнтах? > Возможно, при конструировании маунтпоинта имеет смысл заменять пробелы на > '_' ? Не надо городить workaround'ы. (In reply to comment #2) > Нервы надо лечить. Всенепременно. > [root@hsh40 /]# rpm -qf /etc/init.d/functions > service-0.5.14-alt1 > > Вот туда и перевешаем, раз уж майнтайнер не умеет пользоваться кнопкой > "переназначить на другой компонент". Спасибо, я не совсем был уверен, на что именно вешать. (In reply to comment #1) > Казалось бы, при чём тут hal-mount-subfs. > Пользователь радостно делает метку диска с пробелом, ядро радостно рисует в > /proc/mounts вместо пробела \040, функция UnmountFilesystems из /etc/init.d/functions радостно не > озабачивается заменять \040 взад на пробел, а umount совершенно радостно > обламывается найти точку монтирования с \040 вместо пробела. В glibc/misc/mntent_r.c есть специальная функция decode_name, которая обучена заменять \040, \011, \012, \134 и \\ на соответствующие расквоченные символы. Ищутся добровольцы, которые портируют её с C на awk. (In reply to comment #6) > В glibc/misc/mntent_r.c есть специальная функция decode_name, > которая обучена заменять \040, \011, \012, \134 и \\ на соответствующие расквоченные > символы. > > Ищутся добровольцы, которые портируют её с C на awk. > А чем плох `echo -en ` ? (In reply to comment #7) > (In reply to comment #6) > > > В glibc/misc/mntent_r.c есть специальная функция decode_name, > > которая обучена заменять \040, \011, \012, \134 и \\ на соответствующие расквоченные > > символы. > > > > Ищутся добровольцы, которые портируют её с C на awk. Или на sed. :) > А чем плох `echo -en ` ? Тем, что он может заменить больше, чем это делает getmntent(3). Created attachment 3024 [details]
sh/gawk decode_name()
Вот такой скрипт у меня работает. Из примера видно, что лишнего не меняет.
Как дела? (В ответ на комментарий №7) > (In reply to comment #6) > > > В glibc/misc/mntent_r.c есть специальная функция decode_name, > > которая обучена заменять \040, \011, \012, \134 и \\ на соответствующие расквоченные > > символы. > > > > Ищутся добровольцы, которые портируют её с C на awk. > > > > А чем плох `echo -en ` ? Свежепопавшееся: $ echo -e "/media/ALT\040Linux\0405.9.9\040Centaurus\040beta\040(" |xxd 0000000: 2f6d 6564 6961 2f41 4c54 204c 696e 7578 /media/ALT Linux 0000010: 052e 392e 3920 4365 6e74 6175 7275 7320 ..9.9 Centaurus 0000020: 6265 7461 2028 0a printf такое декодирует нормально вроде. Есть ли подводные камушки? (In reply to comment #8) > (In reply to comment #7) > > (In reply to comment #6) > > > > > В glibc/misc/mntent_r.c есть специальная функция decode_name, > > > которая обучена заменять \040, \011, \012, \134 и \\ на соответствующие расквоченные > > > символы. > > > > > > Ищутся добровольцы, которые портируют её с C на awk. > > Или на sed. :) sed -e 's/\\040/ /g' -e 's/\\011/\t/g' -e 's/\\012/\n/g' -e 's/\\134/\\/g' -e 's/\\\\/\\/g' service-0.5.22-alt1 -> sisyphus: * Thu Jan 26 2012 Dmitry V. Levin <ldv@altlinux> 0.5.22-alt1 - start-stop-daemon: implemented support of /proc/%d/exe pointing to names with " (deleted)" prefix. - minilogd: changed to create /dev/log socket world writable (closes: #12564). - init.d/functions (UnmountFilesystems): implemented mountpoints decoding to match getmntent(3) behaviour (closes: #17118). - init.d/functions (start_daemon): + added --background option (closes: #26529); + added --check option. - service.8: imported from Fedora (closes: #22166). |