{"id":39,"date":"2008-03-24T18:29:47","date_gmt":"2008-03-25T00:29:47","guid":{"rendered":"http:\/\/www.p14nd4.com\/blog\/2008\/03\/24\/vmware-server-hangs-on-mount-iso-browsing-smbmount\/"},"modified":"2025-11-03T21:21:32","modified_gmt":"2025-11-04T03:21:32","slug":"vmware-server-hangs-on-mount-iso-browsing-smbmount","status":"publish","type":"post","link":"http:\/\/www.p14nd4.com\/blog\/2008\/03\/24\/vmware-server-hangs-on-mount-iso-browsing-smbmount\/","title":{"rendered":"VMware Server Hangs on &#8216;Mount ISO&#8217; Browsing smbmount"},"content":{"rendered":"<p>Hahaha. So I&#8217;ll try to keep this brief, but I just wanted to post the problem I recently found with VMware Server (1.0.4, 1.0.5) on linux (perhaps others), and what I eventually found to be the cause and <q>workaround.<\/q><\/p>\n<h3>Problem<\/h3>\n<p>Running VMware server on linux, I edit virtual machine settings, open the CD-ROM device, select <q>Use ISO image<\/q>, and Browse. I navigate to my smbmount (actually a cifs mount line in my \/etc\/fstab), and VMware hangs for about three or four minutes before displaying the contents of the directory. The following lines are written to \/var\/log\/syslog:<\/p>\n<p><!--more--><\/p>\n<blockquote>\n<pre>Mar 24 16:54:30 nine kernel:  CIFS VFS: server not responding\nMar 24 16:54:30 nine kernel:  CIFS VFS: No response to cmd 47 mid 16\nMar 24 16:54:30 nine kernel:  CIFS VFS: Write2 ret -11, written = 0\nMar 24 16:55:30 nine kernel:  CIFS VFS: server not responding\nMar 24 16:55:30 nine kernel:  CIFS VFS: No response to cmd 47 mid 28\nMar 24 16:55:30 nine kernel:  CIFS VFS: Write2 ret -11, written = 0<\/pre>\n<\/blockquote>\n<h3>Tracking down the problem<\/h3>\n<p>I started by just googling these errors for a while, with no particular luck. The closest <q>solution<\/q> I found was someone getting errors like this, and eventually resolving them with a new <acronym title=\"Network Interface Card\">NIC<\/acronym> and\/or switch &#8230; some network problem. I was hopeful this might be my problem, since I <strong>was<\/strong> connecting at 100\/Half through an old <strong>hub<\/strong> (not switch) on all machines exhibiting the problem (though, they did have various types of NICs, so I didn&#8217;t think it was a driver bug). Unfortunately, even after I was able to get a switch instead of a hub, the problem persisted. The #samba <acronym title=\"Internet Relay Chat\">IRC<\/acronym> channel was no help, and I wasn&#8217;t ready to bother the developers.<\/p>\n<p>I put the problem aside for a few days, and gave it another shot on a clean state of mind. This time, I used <abbr title=\"list open files\">lsof<\/abbr> to figure out which <abbr title=\"process id\">pid<\/abbr> had an open handle on my smbmount. I then attached strace to the process and tried to open a directory, and was greeted with this little gem (comments added by me):<\/p>\n<p>[syntax,vmware-strace.c,c]<\/p>\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-highlight-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">C<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/* create .vmBigFileTest0 for LARGEFILE access *\/\nopen(\"\/blah\/blah\/.vmBigFileTest0\", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = 36\n\n\/* override the regular signal handler for 'exceeds file size' with an\n * 'ignore signal' handler\n *\/\nrt_sigaction(SIGXFSZ, {SIG_IGN}, {0x80c9f00, ~&#91;KILL STOP RTMIN RT_1&#93;, SA_RESTART}, 8) = 0\n\n\/* set the read\/write offset to 2 GiB *\/\n_llseek(36, 2147483648, &#91;2147483648&#93;, SEEK_SET) = 0\n\n\/* write a byte *\/\nwrite(36, \"\\245\", 1)                    = 1\n\n\/* close ... which also means flush buffers to 'disk.'\n * this call hangs for a long time\n *\/\nclose(36 &lt;unfinished ...>&lt;\/unfinished><\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/* create .vmBigFileTest0 for LARGEFILE access *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">open<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;\/blah\/blah\/.vmBigFileTest0&quot;<\/span><span style=\"color: #D4D4D4\">, O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, <\/span><span style=\"color: #B5CEA8\">0600<\/span><span style=\"color: #D4D4D4\">) = <\/span><span style=\"color: #B5CEA8\">36<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/* override the regular signal handler for &#39;exceeds file size&#39; with an<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"> * &#39;ignore signal&#39; handler<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"> *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">rt_sigaction<\/span><span style=\"color: #D4D4D4\">(SIGXFSZ, {SIG_IGN}, {<\/span><span style=\"color: #B5CEA8\">0x80c9f00<\/span><span style=\"color: #D4D4D4\">, ~&#91;KILL STOP RTMIN RT_1&#93;, SA_RESTART}, <\/span><span style=\"color: #B5CEA8\">8<\/span><span style=\"color: #D4D4D4\">) = <\/span><span style=\"color: #B5CEA8\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/* set the read\/write offset to 2 GiB *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">_llseek<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">36<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #B5CEA8\">2147483648<\/span><span style=\"color: #D4D4D4\">, &#91;<\/span><span style=\"color: #B5CEA8\">2147483648<\/span><span style=\"color: #D4D4D4\">&#93;, SEEK_SET) = <\/span><span style=\"color: #B5CEA8\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/* write a byte *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">write<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">36<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">\\245<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)                    = <\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/* close ... which also means flush buffers to &#39;disk.&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"> * this call hangs for a long time<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"> *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">close<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">36<\/span><span style=\"color: #D4D4D4\"> &lt;unfinished ...&gt;&lt;\/unfinished&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n<p>To summarize: VMware apparently thinks it&#8217;s necessary to check if the underlying filesystem of its ISO mount location has a 2 GiB (or smaller, I suppose) filesize limitation. While this is a very legitimate concern when browsing for the path to <em>create virtual disk files<\/em>, it strikes me as pretty irrelevant for mounting an ISO, which should be a read-only operation. To make matters worse, it doesn&#8217;t do this by checking the filesystem type in \/proc\/mounts or something quick and easy like that &#8230; it does this by effectively <strong>writing 2 GiB of data<\/strong>. (In fairness, their way is more reliable and future-proof, but come on&#8230;)<\/p>\n<h3>Solution<\/h3>\n<p>Once I saw what was going on, the <q>solution<\/q> to this problem was pretty trivial. I remounted my smbmount to be read-only, rather than read-write, which prevents VMware from getting the chance to try to write 2 GiB of data. In case you <em>really<\/em> don&#8217;t want to do any more research yourself, this means either passing the <span style=\"font-family: monospace;\">-o ro<\/span> option to the mount command, or adding <span style=\"font-family: monospace;\">ro<\/span> to the comma-separated options list of the fstab entry (right after the fs type entry &#8230; i.e. cifs).<\/p>","protected":false},"excerpt":{"rendered":"<p>Hahaha. So I&#8217;ll try to keep this brief, but I just wanted to post the problem I recently found with VMware Server (1.0.4, 1.0.5) on linux (perhaps others), and what I eventually found to be the cause and workaround. Problem Running VMware server on linux, I edit virtual machine settings, open the CD-ROM device, select [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-39","post","type-post","status-publish","format-standard","hentry","category-technical"],"_links":{"self":[{"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/posts\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/comments?post=39"}],"version-history":[{"count":2,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/posts\/39\/revisions"}],"predecessor-version":[{"id":343,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/posts\/39\/revisions\/343"}],"wp:attachment":[{"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/media?parent=39"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/categories?post=39"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.p14nd4.com\/blog\/wp-json\/wp\/v2\/tags?post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}