Win7x64 : Golden Image : partitions problems ... again
-
@Sebastian-Roth Perhaps we could use something like
parted -l /dev/sda | grep boot | awk '{print $1}'
(making use of the partition flags to find the correct partition, since flags should always be in English in FOS, this should work across the board)
Which will return the partition number for the boot partition (for both linux and windows even)
All these tools are already present in the inits.
Can also use similar commands to find other special cases
Microsoft reserved partition (Windows 10 UEFI installations, typically third partition)
parted -l /dev/sda | grep msftres | awk '{print $1}'
Hidden âBasic data partitionâ (Windows 10 UEFI installations, typically first partition)
parted -l /dev/sda | grep hidden | awk '{print $1}'
Linux swap
parted -l /dev/sda | grep swap | awk '{print $1}'
Linux LVM
parted -l /dev/sda | grep lvm | awk '{print $1}'
The only edge cases coming to mind are Windows XP and such maybe. They might set the boot flag on the only partition.
But it shouldnât be hard to detect if thereâs only one partition in which case skip the remaining logic because it would be pointless to check.
-
@Sebastian-Roth said in Win7x64 : Golden Image : partitions problems ... again:
@Jonathan-Cool Holy crap (sorry)! Thanks heaps for testing both
blkid
commands, the one Quazz posted and the one I did. I would have never expected those to return such different results!! As we use theblkid -po udev
syntax in the scripts (ref) we are back in the race. Mind trying this script:#!/bin/bash ## This file serves as a starting point to call your custom pre-imaging/post init loading scripts. ## <SCRIPTNAME> should be changed to the script you're planning to use. ## Syntax of post init scripts are #. ${postinitpath}<SCRIPTNAME> sed -i -e "s#\[Rr\]\[Ee\]\[Ss\]\[Ee\]\[Rr\]\[Vv\]\[Ee\]\[Dd\]#\[Rr\]\[ĂĂ©\]\[Ss\]\[Ee\]\[Rr\]\[Vv\]\[ĂĂ©\]#gi" /bin/fog.upload sed -i -e "s#\[Rr\]\[Ee\]\[Ss\]\[Ee\]\[Rr\]\[Vv\]\[Ee\]\[Dd\]#\[Rr\]\[ĂĂ©\]\[Ss\]\[Ee\]\[Rr\]\[Vv\]\[ĂĂ©\]#gi" /usr/share/fog/lib/funcs.sh
Again, boot up the client in debug mode and run:
grep Vv /usr/share/fog/lib/funcs.sh grep Vv /bin/fog.upload blkid -po udev /dev/sda1 | grep LABEL
If those match you can go ahead and capture the image (issue command
fog
on the console and step through).Hm, itâs seem not match âŠ
my fog.postinit :
#!/bin/bash ## This file serves as a starting point to call your custom pre-imaging/post init loading scripts. ## <SCRIPTNAME> should be changed to the script you're planning to use. ## Syntax of post init scripts are #. ${postinitpath}<SCRIPTNAME> sed -i -e "s#[Rr][Ee][Ss][Ee][Rr][Vv][Ee][Dd]#[Rr][ĂĂ©][Ss][Ee][Rr][Vv][ĂĂ©]#gi" /bin/fog.upload sed -i -e "s#[Rr][Ee][Ss][Ee][Rr][Vv][Ee][Dd]#[Rr][ĂĂ©][Ss][Ee][Rr][Vv][ĂĂ©]#gi" /usr/share/fog/lib/funcs.sh
The results on my VM - Debug Upload Task : https://drive.google.com/file/d/1vAlGXD-PKZgv_Kwve9NIsSkWqobHyOR2/view?usp=sharing
-
Holy shit, i forgot to run âfogâ and ctrl+c ⊠i will be back soon with the real results âŠ
-
Back with the results ⊠: https://drive.google.com/file/d/1Kf9DscMwdhU7VCRf5Y-L7rL86qXQc1wP/view?usp=sharing
-
@Jonathan-Cool Looks like the sed didnât quite work as intended.
Try this:
sed -i -e "s#\\[Rr\\]\\[Ee\\]\\[Ss\\]\\[Ee\\]\\[Rr\\]\\[Vv\\]\\[Ee\\]\\[Dd\\]#[Rr][ĂĂ©][Ss][Ee][Rr][Vv][ĂĂ©]#gi" /bin/fog.upload sed -i -e "s#\\[Rr\\]\\[Ee\\]\\[Ss\\]\\[Ee\\]\\[Rr\\]\\[Vv\\]\\[Ee\\]\\[Dd\\]#[Rr][ĂĂ©][Ss][Ee][Rr][Vv][ĂĂ©]#gi" /usr/share/fog/lib/funcs.sh
edit: hold up, I see whatâs going on here. The forum is removing the backslashes that are supposed to escape the brackets
edit2: there we go, this one should work, I think
-
Iâm back with bad news âŠ
my fog.postinit :
#!/bin/bash ## .... #. ${postinitpath}<SCRIPTNAME> sed -i -e "s#\[Rr\]\[Ee\]\[Ss\]\[Ee\]\[Rr\]\[Vv\]\[Ee\]\[Dd\]#[Rr][ĂĂ©][Ss][Ee][Rr][Vv][ĂĂ©]#gi" /bin/fog.upload sed -i -e "s#\[Rr\]\[Ee\]\[Ss\]\[Ee\]\[Rr\]\[Vv\]\[Ee\]\[Dd\]#[Rr][ĂĂ©][Ss][Ee][Rr][Vv][ĂĂ©]#gi" /usr/share/fog/lib/funcs.sh
Upload Debug Task : Seem to be good this time ⊠https://drive.google.com/file/d/1cv2Lerb5MGFQlwkvHO1jKcfoa8580KWv/view?usp=sharing
After a deploy on o7050, same problem : Reserved Partition : 78Gb âŠ
Maybe i can try a debug download task to see what the hell is going on ?
-
@Jonathan-Cool I would do a debug deploy. Then at the command prompt ensure that both fog.upload and funcs.sh have been properly patched.
-
@Jonathan-Cool Ok, so the label should match now at the very least.
Did you recapture the image since implementing the latest sed?
If so, what do your d1 files look like for this image?
-
Hi,
Iâm back ⊠i typed the same commands on client during a DL Debug Task ⊠: same results : (with SSH)[Fri Sep 28 root@fogclient ~]# fog * Running post init scripts.........................Done * Press [Enter] key to continue ^C [Fri Sep 28 root@fogclient ~]# grep Vv /usr/share/fog/lib/funcs.sh if [[ $label =~ [Rr][Ee][Cc][Oo][Vv][Ee][Rr][Yy] ]]; then if [[ $label =~ [Rr][ĂĂ©][Ss][Ee][Rr][Vv][ĂĂ©] || $label =~ [Rr][ĂĂ©][Ss][ĂĂ©][Rr][Vv][ĂĂ©] ]]; then [Fri Sep 28 root@fogclient ~]# grep Vv /bin/fog.upload *[Rr][Ee][Cc][Oo][Vv][Ee][Rr][Yy]*|*[Rr][ĂĂ©][Ss][Ee][Rr][Vv][ĂĂ©]*) [Fri Sep 28 root@fogclient ~]# blkid -po udev /dev/sda1 | grep LABEL ID_FS_LABEL=RĂ©servĂ©_au_systĂšme ID_FS_LABEL_ENC=RĂ©servĂ©\x20au\x20systĂšme [Fri Sep 28 root@fogclient ~]#
The patch seem to be applied as you can see ⊠" if [[ $label =~ [Rr][ĂĂ©][Ss][Ee][Rr][Vv][ĂĂ©]"
@Quazz Sorry, iâm not sure if i understood the question about this file ⊠i take a screenshot of the folder of my Golden Img :
https://drive.google.com/file/d/1iN8YbEsgOsCSu622R9qG4JzRE9xjXo1B/view?usp=sharinga
But, yes, i recapture the image before lastest sed -
@Jonathan-Cool Can you share the contents of d1.fixed_size_partitions d1.partitions and d1.minimum.partitions
-
Yes i can !
d1.fixed_size_partitions :
:2
d1.partitions :
label: dos label-id: 0xc91a5cff device: /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 204800, type=7, bootable /dev/sda2 : start= 206848, size= 335335424, type=7
d1.minimum.partitions :
label: dos label-id: 0xc91a5cff device: /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 52316, type=7, bootable /dev/sda2 : start= 206848, size= 335335424, type=7
What do you think about that ?
-
@Jonathan-Cool Itâs very strange. The regex should definitely match now, yet it marks the wrong partition as fixed_size for some reason.
Iâve looked over the code and canât immediatly find anything desperately wrong or incorrect for the time being.
The strange thing, imo, is that it marks the second partition as fixed, whereas weâd expect it to mark none as fixed if it were to fail (unless Iâm missing something in the code, but donât think so)
-
Maybe i choose wrong parameters when i created my VM with Virtual BOX the first time ? (details on the first topic) ?
-
@Jonathan-Cool Did you switch to a fixed size as I suggested in the previous thread?
Though, I donât see how that would cause this exact problem, to be honest.
Itâs very weird that you get :2 in fixed_size_partitions as I get an empty file on my W7 French installs instead. Did you assign a label to the drive per chance?
It seems like our efforts havenât quite made the difference I hoped yet. The regex matches in my bash tests, but doesnât seem to match in FOS in a real world scenario. Iâm rather baffled as to why that is, though.
-
@Quazz said in Win7x64 : Golden Image : partitions problems ... again:
Did you assign a label to the drive per chance?Yes, my drive is named âSystemâ into my Golden Image ⊠https://drive.google.com/file/d/0B48PuYLEHxQLUEU5clJOZC1Vb3c/view
Maybe this name is confusing FOG ?
-
@Jonathan-Cool Ideally it shouldnât cause any problems, but because the label system seems to be having some issues, it might be a good idea to remove it before capture at least.
That should leave you with an empty fixed_size_partitions file I thinkâŠ
Still doesnât answer why the system reserved isnât matching, it doesnât really make any sense to me off the top of my head.
-
I will try to remove this label on the C drive and recapture the image ⊠and try a new download on the optiplex 7050.
I will be back !
-
@Jonathan-Cool My âfuck this shitâ solution atm is the following if youâd like to try it
Note that this is experimental and can cause issues on systems with odd labels so use at own risk⊠but
sed -i -e "s#\\[Rr\\]\\[Ee\\]\\[Ss\\]\\[Ee\\]\\[Rr\\]\\[Vv\\]\\[Ee\\]\\[Dd\\]#[Rr]*[Ss][Ee][Rr][Vv]#gi" /bin/fog.upload sed -i -e "s#\\[Rr\\]\\[Ee\\]\\[Ss\\]\\[Ee\\]\\[Rr\\]\\[Vv\\]\\[Ee\\]\\[Dd\\]#[Rr]*[Ss][Ee][Rr][Vv]*#gi" /usr/share/fog/lib/funcs.sh
This seems to allow the regex to match at least, of course itâs far less precise now. Still donât know why it hates Ă© so much, but that seems to be the issue unfortunately.
Should also work on English and Dutch systems I think.
-
So after some testing, I think the main problem was the case pattern matching not being able to match for some reason in FOS. (works fine on my server, however)
Iâve updated my commit to change it to the if pattern matching instead (which I already tested actually works in FOS).
Donât know when/if it gets merged, but that should resolve issues for French Windows installs at least.
Pull request here: https://github.com/FOGProject/fos/pull/13
-
@Quazz
Hi.
I can try to remove my C label partition and see the result or itâs not necessary anymore ?
Same question for the last âsedâ you proposed âŠMaybe my best option is waiting the fix in a next release ⊠?