Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp9252974ybi; Wed, 10 Jul 2019 07:12:35 -0700 (PDT) X-Google-Smtp-Source: APXvYqyK2MvHoHW/++0JVK9i7xY3UJLK8tCODh3evMOfXfyorgsTHJw9Rwyz3nYE54hvlGwr4WOW X-Received: by 2002:a17:902:9a49:: with SMTP id x9mr39425755plv.282.1562767954928; Wed, 10 Jul 2019 07:12:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562767954; cv=none; d=google.com; s=arc-20160816; b=Mu2lRe2u84E4QyvRQco7kC9AOqOWeKOXiTt5B7s/GOOhrPZ8dqs8sQglqAttP7SjVG j6z74Zf/X9UG7uVzI0wfXWu0jODHo7L5Jhmz/NNr5FOPWi0AS4K0Fba0QqNa3ZhOboX7 zc6tLMoo/8z8T2MJJ0NCqITZkN7tDp7FkAbUrJUcc1aXeF5PqTENnM6s6/x/sAVJbepx iNPINdwMNWAZrJgRChIUOGyeaf6A28fovNFa4kaGV6lk7ohMfmDENU5iGgugrZaSzFBP Q3wfzSlRLK7jZ9wFz4/AtnjufMQIso2ykNBoWeo0y7oXkVhM0JLgatX4aFnDSbuqatV1 cfMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:references:cc:to:subject:from:dkim-signature; bh=x+gc9GZtHp422tQIfawx4zs0fYbybr4yBJpSkctzV1g=; b=W4BOM/dUojxSU+/WZ/3DPhNBNwmib2TwstIcEobue6YzpioUtb8chj7UQB+7oy5a66 Wvu1c62+r7DNUAyOvgvqQLUioi7c3oFG4XTVyCJIqPPmztMqeoU1zk8JHua/ng/Gmh8w 7aD116rh1S/r586F/UkDHf6hnkkeSmsoWTScjRYUrEb9S6hWiSl8/prBbEmh22W/kaR6 5vJAg9FdR+nY2mciyU90pQ0pFFyCuKAob1ke1gNKUPMw+gVuvLHcV5xeiVGD4GCbXLL+ oSaS5WP0FZ3ZNGVfAXI6hU99UNTTNqcMiU9/NATQQWhhv/3/vnphSXca1Jd/poFJuzPt U4Vg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@digidescorp.com header.s=google header.b=c6tGrN62; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y198si2355765pfb.98.2019.07.10.07.12.19; Wed, 10 Jul 2019 07:12:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@digidescorp.com header.s=google header.b=c6tGrN62; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727447AbfGJNYN (ORCPT + 99 others); Wed, 10 Jul 2019 09:24:13 -0400 Received: from mail-io1-f65.google.com ([209.85.166.65]:43138 "EHLO mail-io1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727229AbfGJNYM (ORCPT ); Wed, 10 Jul 2019 09:24:12 -0400 Received: by mail-io1-f65.google.com with SMTP id k20so4594875ios.10 for ; Wed, 10 Jul 2019 06:24:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=digidescorp.com; s=google; h=from:subject:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=x+gc9GZtHp422tQIfawx4zs0fYbybr4yBJpSkctzV1g=; b=c6tGrN626dGm/p0X1AMQX4LFqgrGjf6QtN8qn97tfRy7GPaqeRdrMoklTq9N5WmLP6 AAz8gk6grD/OfwWPobVsSJ1t1AjzBi9/7sllazpEyFMqIJRjA+/ZUFMHxYgYR2Eu+7Pr QJYWMYxCXP3f9yiaBoX9RaG75pJDXbh9qAD5U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=x+gc9GZtHp422tQIfawx4zs0fYbybr4yBJpSkctzV1g=; b=OGGfHMnA9oXB6QuxC+66/XI2WtLV84+Fr2QMwKCeqe2vrTeCRHXtc+pJWCH85gS5cJ fWgSCIE/GglHMWivZ4GS50yf4jbA80ySSF7cEhqC82RoQqXcsidHSr3pwtFcx8ZS/Ky1 10UBKjkrt2i2/jm37arkRZ6CFAs3fBv2BZRWsNdqivI/ddY2wxw95umgJDxfh18wMu6N HAvA5lTLsvc8T2n3hfPuY2GusFY8VXrQqd02LLU87pxtHJ0AYi2Vgw/ofO7ejANPrpI9 DrmxqIhK7/Nnag9Z6XCFtT8QLm0fixEnz7+n7HMFprK01cBGGp84EEpUi2TjWGmtxmpd ldKg== X-Gm-Message-State: APjAAAUhmq133ZvuIIX9+QFtfB8WZwfpHgghppmzhKfc7LlTpPN+lYr8 t6EOQRp6r6c7GNvPfA94wmfXW9ZIvtE= X-Received: by 2002:a02:ce37:: with SMTP id v23mr34346376jar.2.1562765050853; Wed, 10 Jul 2019 06:24:10 -0700 (PDT) Received: from [10.10.7.141] ([50.73.98.161]) by smtp.googlemail.com with ESMTPSA id j14sm1700858ioa.78.2019.07.10.06.24.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 10 Jul 2019 06:24:10 -0700 (PDT) From: Steve Magnani Subject: Re: [RFC] udf: 2.01 interoperability issues with Windows 10 To: =?UTF-8?Q?Pali_Roh=c3=a1r?= Cc: Jan Kara , =?UTF-8?Q?Vojt=c4=9bch_Vladyka?= , linux-fsdevel@vger.kernel.org, "linux-kernel@vger.kernel.org" References: <96e1ea00-ac12-015d-5c54-80a83f08b898@digidescorp.com> <20190709185638.pcgdbdqoqgur6id3@pali> <958ea915-3568-8f5a-581c-e5f0a673d30f@digidescorp.com> <20190709210457.kzjnigu6fwgxxq27@pali> Message-ID: <2994ee3a-9e38-0ed0-652a-e85de704f8d1@digidescorp.com> Date: Wed, 10 Jul 2019 08:24:09 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <20190709210457.kzjnigu6fwgxxq27@pali> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 7/9/19 4:04 PM, Pali Rohár wrote: > On Tuesday 09 July 2019 15:14:38 Steve Magnani wrote: >> On 7/9/19 1:56 PM, Pali Rohár wrote: >>> Can grub2 recognize such disks? >> I'm not sure what you're asking here. The physical interface to this drive is USB, > It is USB mass storage device? If yes, then grub2 should be able to > normally use. Read its content, etc... You can use "ls" grub command to > list content of disk with supported filesystem. Yes, Mass Storage Bulk-Only Transport. > >> and it's not designed for general-purpose storage (or booting). That said, if you >> have some grub2 commands you want me to run against this drive/partition let me know. > There is also some way for using grub's fs implementation to read disk > images. It is primary used by grub's automated tests. I do not know > right now how to use, I need to look grub documentation. But I have > already used it during implementation of UDF UUID in grub. Grub is not recognizing my USB drive, i.e. 'ls' does not show usb0 as an option. I tried 'insmod usb' but that made no difference. Maybe grub does not support my USB 3.0 host controller, I will retry on a USB2 port when I have a chance. >>> Also can you check if libparted from git master branch can recognize >>> such disk? In following commit I added support for recognizing UDF >>> filesystem in libparted, it is only in git master branch, not released: >>> >>> http://git.savannah.gnu.org/cgit/parted.git/commit/?id=8740cfcff3ea839dd6dc8650dec0a466e9870625 >> Build failed: >> In file included from pt-tools.c:114:0: >> pt-tools.c: In function 'pt_limit_lookup': >> pt-limit.gperf:78:1: error: function might be candidate for attribute 'pure' [-Werror=suggest-attribute=pure] >> >> If you send me some other SHA to try I can attempt a rebuild. > Try to use top of master branch. That mentioned commit is already in git > master. > > And if it still produce that error, compile without -Werror flag (or add > -Wno-error). I had to configure with CFLAGS=-Wno-error. It does not recognize Windows-formatted 4K-sector media: Disk /dev/sdb: 17.6TB Sector size (logical/physical): 4096B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 17.6TB 17.6TB primary It does recognize mkudffs-formatted media. > >>> ISSUE 2: Inability of Windows chkdsk to analyze 4K-sector media >>> formatted by mkudffs. >>> This is really bad :-( >>> >>>> It would be possible to work around this by tweaking mkudffs to >>>> insert dummy BOOT2 components in between the BEA/NSR/TEA: >>>> >>>> 0000: 00 42 45 41 30 31 01 00 00 00 00 00 00 00 00 00 .BEA01.......... >>>> 0800: 00 42 4f 4f 54 32 01 00 00 00 00 00 00 00 00 00 .BOOT2.......... >>>> 1000: 00 4e 53 52 30 33 01 00 00 00 00 00 00 00 00 00 .NSR03.......... >>>> 1800: 00 42 4f 4f 54 32 01 00 00 00 00 00 00 00 00 00 .BOOT2.......... >>>> 2000: 00 54 45 41 30 31 01 00 00 00 00 00 00 00 00 00 .TEA01.......... >>>> >>>> That would introduce a slight ECMA-167 nonconformity, but Linux >>>> does not object and Windows actually performs better. I would >>>> have to tweak udffsck though since I believe this could confuse >>>> its automatic detection of medium block size. >>> I would like to avoid this hack. If chkdsk is unable to detect such >>> filesystem, it is really a good idea to let it do try doing filesystem >>> checks and recovery? You are saying that udfs.sys can recognize such >>> disk and mount it. I think this should be enough. >> Fair enough, but it's also reasonable to assume the bugginess is >> limited to the VRS corner case. AFAIK that's the only place in ECMA-167 >> where there is a difference in layout specific to 4K sectors. >> With the BOOT2 band-aid chkdsk is able to analyze filesystems on 4Kn media. > Main problem with this hack is that it breaks detection of valid UDF > filesystems which use VRS for block size detection. I do not know which > implementation may use VRS for block size detection, but I do not see > anything wrong in this approach. I went through this with udffsck. The VRS is not very helpful in determining block size because the only time the block size can be determined conclusively is when the interval between VRS components is > 2048 bytes. With an interval of 2048 bytes, the only conclusion that can be drawn is that blocks are no larger than 2048 bytes. >> I use chkdsk frequently to double-check UDF generation firmware > Vojtěch wrote in his thesis that MS's chkdsk sometimes put UDF > filesystem into more broken state as before. Yes, I have personally experienced this. I don't have chkdsk do repairs any more. In my case the problem may be that chkdsk poorly handles the cascading corruption that resulted from this: https://lkml.org/lkml/2019/2/8/740 >> I am writing, and also udffsck work-in-progress. > Have you used some Vojtěch's parts? Or are you writing it from scratch? > A udffsck discussion should probably continue in another thread. Here let me just say that I have been enhancing Vojtěch's code, in this fork: https://github.com/smagnani/udftools ...as time permits. Since winter ended the time I have available for this has plummeted, so progress is very slow. But this recent kernel driver patch grew out of work to make sure that udffsck handles the UDF "file tail" properly: https://lkml.org/lkml/2019/6/4/551 https://lkml.org/lkml/2019/6/30/181 ------------------------------------------------------------------------ Steven J. Magnani "I claim this network for MARS! www.digidescorp.com Earthling, return my space modulator!" #include