Среда рабочего стола — привязка адреса веб-почты к «предпочтительному почтовому приложению»

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

https://bootlin.com/blog/find-root-device/

For the / mount point, you are just told that it corresponds to /dev/root, which is not the real device you are looking for.

Of course, you can look at the kernel command line and see on which initial root filesystem Linux was instructed to boot (root parameter):

$ cat /proc/cmdline mem=512M console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait

However, this doesn’t mean that what you see is the current root device. Many Linux systems boot on intermediate root filesystems (like initramdisks and initramfs), which are just used to access the final one.

Это указывает на то, что вещь в /proc/cmdline не обязательно является фактическим конечным корнем устройства, на котором он действительно живет.

Это от людей из Busybox, которые, как я полагаю, знают, о чем говорят, когда дело доходит до загрузки.

https://www.linuxquestions.org/questions/slackware-14/slackware-current-dev-root-688189/page2.html

Второй полезный ресурс, который я нашел, это очень старая ветка Slackware по вопросу /dev/root, из возраста этой ветки мы можем видеть, что всегда присутствовали все варианты, но я считаю, что «большинство» дистрибутивов были используя метод символической ссылки, но это был простой переключатель компиляции ядра, он мог сделать один или не сделать, если я правильно понял плакаты, то есть переключить его в одну сторону, а readlink /dev/root сообщает реальное имя устройства, переключите его на другой, и это не так.

Поскольку основной темой этой ветки было то, как избавиться от /dev/root, им нужно было понять, что это такое на самом деле, что из себя представляет и т. д., а это значит, что им нужно было понять, как от него избавиться..

скрежетал хорошо объяснил:

/dev/root is a generic device which can be used in the fstab. One can also use 'rootfs'. Doing this offers some advantage in that it allows yout to be less specific. What I mean is, if the root partition is on an external drive, it may not always show up as the same device and successfully mounting it as / would require changing the fstab to match the correct device. By using /dev/root it will always match whatever device is specified in the kernel boot paramters from lilo or grub.

/dev/root has always been present as a virtual mount point, even if you never saw it. So has rootfs (compare this to the special virtual devices like proc and tmpfs which have no preceeding /dev)

/dev/root is a virtual device like 'proc' or /dev/tcp'. There is no device node in /dev for these things -it's already in the kernel as a virtual device.

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

Я полагаю, что некоторые из предложенных здесь решений будут «часто» работать, и, вероятно, я так и поступлю, но они не являются истинным решением проблемы, которую, как заметил автор busybox, реализовать значительно сложнее. очень крепким образом.

[ОБНОВЛЕНИЕ :} После получения некоторых пользовательских тестовых данных я использую метод монтирования, который, по крайней мере, в некоторых случаях кажется приемлемым. Строка /proc/cmdline не пригодилась, потому что вариантов слишком много. В первом примере вы видите старый метод. Это встречается все реже и реже, потому что его настоятельно не рекомендуется использовать (исходный синтаксис типа /dev/sdx[0 -9] ), поскольку эти пути могут динамически изменяться (поменять порядок дисков, вставить новый диск и т. д., и вдруг /dev/sda1 становится /dev/sdb1 ).

root=/dev/sda1
root=UUID=5a25cf4a-9772-40cd-b527-62848d4bdfda
root=LABEL=random string
root=PARTUUID=a2079bfb-02

VS очень чистый и простой для анализа:

mount
/dev/sda1 on / type ext4 (rw,noatime,data=ordered)

В случае с cmdline, вы увидите, единственный вариант, который является правильным «ответом» в теории, — это первый, устаревший вариант, поскольку вы не должны ссылаться root на движущуюся цель, такую ​​как /dev/sdxy

Следующие два требуют дальнейших действий по получению символической ссылки из этой строки либо в /dev/disk/по -uuid, либо в /dev/disk/по -метке

Последнее требует, как я полагаю, использования parted -l, чтобы найти, на что указывает этот parted id.

Это только те варианты, которые я знаю и видел, вполне могут быть и другие, например, GPTID.

Итак, решение, которое я использую, таково:

Сначала проверьте, является ли /dev/root символической ссылкой. Если это так, убедитесь, что это не /dev/disk/по -uuid или по метке -, если это так,вам нужно сделать второй шаг обработки, чтобы получить последний реальный путь. Зависит от инструмента, который вы используете.

Если у тебя ничего нет, иди на гору и посмотри, что там. В качестве последнего запасного случая, который я не использую, потому что аргументы против него, даже не обязательно являющиеся фактическим рассматриваемым разделом или устройством, достаточно хороши для меня, чтобы отклонить это решение для моей программы. mount не является полностью надежным решением, и я уверен, что при наличии достаточного количества примеров было бы легко найти случаи, когда это совсем не так, но я считаю, что эти два случая охватывают «большинство» пользователей, и это все, что мне нужно.

Самое красивое, чистое и надежное решение было бы для ядра просто всегда создавать символическую ссылку, которая никому и ничему не повредит, и называть ее хорошей, но это не так, как это сработало в реальной жизни. Мир..

Я не считаю ни одно из них «хорошим или надежным» решением, но вариант монтирования, кажется, удовлетворяет «достаточно хорошему», и если требуется действительно надежное решение, используйте материал, рекомендованный busybox.

1
24.01.2020, 13:01
1 ответ

Чтобы избежать всех хлопот, я настоятельно рекомендую добавить ваш почтовый ящик веб-почты как IMAP в почтовый клиент локально.

При этом существует несколько способов сделать это.

1 -Следуйте этому руководству на askubuntu

замена https://mail.google.com/mail?view=cm&tf=0&to=echo $1 | sed 's/mailto://'с вашим адресом веб-почты. например:http://webmail.com/composerpage?to=echo $1 | sed 's/mailto://'

Другой вопрос, может ли ваш адрес веб-почты обрабатывать аргумент toили нет. Я бы посмотрел документацию вашего клиента веб-почты или попытался вручную указать ?to=email@address.comв URL-адресе при посещении вашей веб-почты

.

Примечание:этот метод предполагает, что вы используете Thunderbird и Firefox в качестве почтового и веб-клиентов по умолчанию соответственно.

2 -Установка приложения в качестве исполняемого файла, установка этого приложения в качестве почтового клиента по умолчанию

Есть несколько способов сделать это, но, по моему опыту, проще всего использовать Nativefier , который использует электрон

.

пример команды, которую вы использовали бы для настройки приложения::

mkdir ~/app
nativefier -n webmail http://webmail.com/composerpage --internal-urls ".*?\.webmail.com\.*?" --basic-auth-username username --basic-auth-password password ~/app
  1. затем вы можете открыть свой почтовый клиент через его собственное приложение

  2. Затем вы можете изменить почтовый клиент по умолчанию в Firefox

  3. Нажмите кнопку меню и выберите options

    .
  4. На панели «Общие» перейдите в раздел «Приложения».

  5. Найдите тип содержимого mailto и выберите его.

  6. Щелкните столбец «Действие» в строке mailto, чтобы изменить действие.

  7. выберитеUse other...

  8. введите/home/<user>/app/webmail-linux-x64/webmail

К сожалению, этот метод не заполняет поле to.Вы можете создать приложение, используя электрон вручную, чтобы принять аргумент to

3 использование подключаемого модуля браузера для изменения функциональности mailto

Я могу найти только расширение для Chrome, которое похоже на трюк, но не могу поручиться за это :https://chrome.google.com/webstore/detail/mailto/gppbppehiogfokmpligejhaepeopajdf?hl=en-GB

обратите внимание, что использование стороннего -подключаемого модуля представляет угрозу безопасности, поэтому я бы по возможности избегал этого варианта.

0
27.01.2020, 23:55

Теги

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